package gcom.gui.cadastro.imovel; import gcom.cadastro.imovel.AreaConstruidaFaixa; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroAreaConstruidaFaixa; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroImovelPerfil; import gcom.cadastro.imovel.FiltroPocoTipo; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.imovel.PocoTipo; import gcom.cadastro.imovel.Subcategoria; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class ExibirImovelCaracteristicasFiltrarAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("filtrarCaracteristicasImovel"); //obt�m a inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); ImovelOutrosCriteriosActionForm imovelOutrosCriteriosActionForm = (ImovelOutrosCriteriosActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); Collection<ImovelPerfil> collectionImovelPerfil = null; Collection<Categoria> collectionImovelCategoria= null; Collection<Subcategoria> collectionImovelSubcategoria = null; Collection<AreaConstruidaFaixa> collectionAreaConstuidaFaixa = null; Collection<PocoTipo> collectionTipoPoco = null; String parametroGerarRelatorio = (String)sessao.getAttribute("parametroGerarRelatorio"); if(imovelOutrosCriteriosActionForm.getCategoriaImovel() != null && !imovelOutrosCriteriosActionForm.getCategoriaImovel().trim().equalsIgnoreCase("" + ConstantesSistema.NUMERO_NAO_INFORMADO) && !imovelOutrosCriteriosActionForm.getCategoriaImovel().trim().equals("")){ FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.CATEGORIA_ID, imovelOutrosCriteriosActionForm.getCategoriaImovel())); filtroSubcategoria.setCampoOrderBy(FiltroSubCategoria.DESCRICAO); collectionImovelSubcategoria = fachada.pesquisar(filtroSubcategoria, Subcategoria.class.getName() ); sessao.setAttribute("collectionImovelSubcategoria", collectionImovelSubcategoria); } else if(imovelOutrosCriteriosActionForm.getSubcategoria() != null && !imovelOutrosCriteriosActionForm.getSubcategoria().trim().equalsIgnoreCase("" + ConstantesSistema.NUMERO_NAO_INFORMADO) && !imovelOutrosCriteriosActionForm.getSubcategoria().trim().equalsIgnoreCase("")){ FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.ID, imovelOutrosCriteriosActionForm.getSubcategoria())); filtroSubcategoria.setCampoOrderBy(FiltroSubCategoria.DESCRICAO); collectionImovelSubcategoria = fachada.pesquisar(filtroSubcategoria, Subcategoria.class.getName() ); Subcategoria subcategoria = collectionImovelSubcategoria.iterator().next(); FiltroCategoria filtroCategoria = new FiltroCategoria(); if(parametroGerarRelatorio.trim().equalsIgnoreCase("RelatorioTarifaSocial")){ filtroCategoria.adicionarParametro(new ParametroSimples(FiltroCategoria.CODIGO, Categoria.RESIDENCIAL)); } filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO); if(subcategoria.getCategoria() != null){ filtroCategoria.adicionarParametro(new ParametroSimples(FiltroCategoria.CODIGO, subcategoria.getCategoria().getId())); imovelOutrosCriteriosActionForm.setCategoriaImovel("" + subcategoria.getCategoria().getId()); } collectionImovelCategoria = fachada.pesquisar(filtroCategoria, Categoria.class.getName() ); filtroSubcategoria.limparListaParametros(); filtroSubcategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.CATEGORIA_ID, imovelOutrosCriteriosActionForm.getCategoriaImovel())); filtroSubcategoria.setCampoOrderBy(FiltroSubCategoria.DESCRICAO); collectionImovelSubcategoria = fachada.pesquisar(filtroSubcategoria, Subcategoria.class.getName() ); sessao.setAttribute("collectionImovelSubcategoria", collectionImovelSubcategoria); sessao.setAttribute("collectionImovelCategoria", collectionImovelCategoria); }else{ FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(); filtroImovelPerfil.setCampoOrderBy(FiltroImovelPerfil.DESCRICAO); if(parametroGerarRelatorio.trim().equalsIgnoreCase("RelatorioTarifaSocial")){ filtroImovelPerfil.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.ID, ImovelPerfil.TARIFA_SOCIAL)); } collectionImovelPerfil = fachada.pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName() ); if(collectionImovelPerfil == null || collectionImovelPerfil.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Perfil do Im�vel"); } FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO); if(parametroGerarRelatorio.trim().equalsIgnoreCase("RelatorioTarifaSocial")){ filtroCategoria.adicionarParametro(new ParametroSimples(FiltroCategoria.CODIGO, Categoria.RESIDENCIAL)); } collectionImovelCategoria = fachada.pesquisar(filtroCategoria, Categoria.class.getName() ); if(collectionImovelCategoria == null || collectionImovelCategoria.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Categoria"); } FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.setCampoOrderBy(FiltroSubCategoria.DESCRICAO); if(parametroGerarRelatorio.trim().equalsIgnoreCase("RelatorioTarifaSocial")){ filtroSubcategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.CATEGORIA_ID, Categoria.RESIDENCIAL)); } collectionImovelSubcategoria = fachada.pesquisar(filtroSubcategoria, Subcategoria.class.getName() ); if(collectionImovelSubcategoria == null || collectionImovelSubcategoria.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Subcategoria"); } FiltroAreaConstruidaFaixa filtroAreaConstruidaFaixa = new FiltroAreaConstruidaFaixa(); filtroAreaConstruidaFaixa.setCampoOrderBy(FiltroAreaConstruidaFaixa.CODIGO); collectionAreaConstuidaFaixa = fachada.pesquisar(filtroAreaConstruidaFaixa, AreaConstruidaFaixa.class.getName() ); if(collectionAreaConstuidaFaixa == null || collectionAreaConstuidaFaixa.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Intervalo de �rea Constru�da"); } FiltroPocoTipo filtroPocoTipo = new FiltroPocoTipo(); collectionTipoPoco = fachada.pesquisar(filtroPocoTipo, PocoTipo.class.getName() ); if(collectionTipoPoco == null || collectionTipoPoco.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Tipo de Po�o"); } sessao.setAttribute("collectionImovelPerfil", collectionImovelPerfil); sessao.setAttribute("collectionImovelCategoria", collectionImovelCategoria); sessao.setAttribute("collectionImovelSubcategoria", collectionImovelSubcategoria); sessao.setAttribute("collectionAreaConstuidaFaixa", collectionAreaConstuidaFaixa); sessao.setAttribute("collectionTipoPoco", collectionTipoPoco); } return retorno; } }