package gcom.gui.cadastro.imovel; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.FiltroClienteImovel; import gcom.cadastro.imovel.Imovel; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.FiltroParametro; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; 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; /** * < <Descri��o da Classe>> * * @author Administrador */ public class FiltrarImovelAction extends GcomAction { private FiltroClienteImovelParams filtroClienteImovelParams; private FiltroClienteImovel filtroClienteImovel; /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { HttpSession sessao = httpServletRequest.getSession(false); FiltrarImovelActionForm filtrarImovelActionForm = filtrarImovelPorId(actionForm, httpServletRequest); verificaAtualizacaoDoFiltro(httpServletRequest, filtrarImovelActionForm); this.filtroClienteImovel = new FiltroClienteImovel(); this.filtroClienteImovelParams = new FiltroClienteImovelParams(filtrarImovelActionForm, filtroClienteImovel); configurarCaminhosParaCarregamentoEntidade(); adicionaFiltroVinculoImovelRateioConsumo(sessao); adicionaFiltrosImovelExcluido(); if (filtroClienteImovel.getParametros().size() != 0) { httpServletRequest.setAttribute("filtroImovelPreenchido", filtroClienteImovel); configuraSessao(sessao); setLinkSucesso(httpServletRequest, sessao); } else { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } sessao.removeAttribute("primeiraVez"); ActionForward retorno = getRetorno(actionMapping, sessao); return retorno; } private FiltrarImovelActionForm filtrarImovelPorId(ActionForm actionForm, HttpServletRequest httpServletRequest) { String idImovel = (String) httpServletRequest.getParameter("idImovel"); FiltrarImovelActionForm filtrarImovelActionForm; if(idImovel != null && !idImovel.equals("")){ filtrarImovelActionForm = new FiltrarImovelActionForm(); filtrarImovelActionForm.setMatriculaFiltro(idImovel); }else{ filtrarImovelActionForm = (FiltrarImovelActionForm) actionForm; } return filtrarImovelActionForm; } private void verificaAtualizacaoDoFiltro(HttpServletRequest httpServletRequest, FiltrarImovelActionForm filtrarImovelActionForm) { String atualizar = (String)httpServletRequest.getParameter("atualizarFiltro"); if (atualizar != null && atualizar.equals("1")) { httpServletRequest.setAttribute("atualizar", atualizar); }else{ filtrarImovelActionForm.setAtualizarFiltro(""); } } private void configurarCaminhosParaCarregamentoEntidade() { filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.logradouro.logradouroTipo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.logradouro.logradouroTitulo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.enderecoReferencia"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.cep"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.perimetroInicial.logradouroTipo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.perimetroInicial.logradouroTitulo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.perimetroFinal.logradouroTipo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.perimetroFinal.logradouroTitulo"); filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroBairro.bairro.municipio.unidadeFederacao"); } private void adicionaFiltroVinculoImovelRateioConsumo(HttpSession sessao) { String redirecionar = (String) sessao.getAttribute("redirecionar"); if(redirecionar != null && !redirecionar.trim().equalsIgnoreCase("") && redirecionar.equals("ManterVinculoImoveisRateioConsumo")){ filtroClienteImovel.adicionarParametro(new ParametroSimples(FiltroClienteImovel.CLIENTE_RELACAO_TIPO,ClienteRelacaoTipo.USUARIO)); } } private void adicionaFiltrosImovelExcluido() { filtroClienteImovel.adicionarParametro(new ParametroSimplesDiferenteDe( FiltroClienteImovel.INDICADOR_IMOVEL_EXCLUIDO, Imovel.IMOVEL_EXCLUIDO, FiltroParametro.CONECTOR_OR,2)); filtroClienteImovel.adicionarParametro(new ParametroNulo( FiltroClienteImovel.INDICADOR_IMOVEL_EXCLUIDO)); filtroClienteImovel.adicionarParametro(new ParametroSimples( FiltroClienteImovel.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); } private void configuraSessao(HttpSession sessao) { sessao.setAttribute("filtroImovelPreenchido", filtroClienteImovel); sessao.setAttribute("idLocalidade", filtroClienteImovelParams.idLocalidade); sessao.setAttribute("idSetorComercial", filtroClienteImovelParams.idSetorComercial); sessao.setAttribute("idQuadra", filtroClienteImovelParams.idQuadra); sessao.setAttribute("lote", filtroClienteImovelParams.lote); sessao.setAttribute("subLote", filtroClienteImovelParams.subLote); sessao.setAttribute("codigoCliente", filtroClienteImovelParams.codigoCliente); sessao.setAttribute("idMunicipio", filtroClienteImovelParams.idMunicipio); sessao.setAttribute("cep", filtroClienteImovelParams.cep); sessao.setAttribute("idBairro", filtroClienteImovelParams.idBairro); sessao.setAttribute("idLogradouro", filtroClienteImovelParams.idLogradouro); sessao.setAttribute("idImovel", filtroClienteImovelParams.matricula); sessao.setAttribute("numeroImovelInicial", filtroClienteImovelParams.numeroImovelInicial); sessao.setAttribute("numeroImovelFinal", filtroClienteImovelParams.numeroImovelFinal); } private void setLinkSucesso(HttpServletRequest httpServletRequest, HttpSession sessao) { String linkSucesso = (String) httpServletRequest.getParameter("linkSucesso"); if(linkSucesso != null && !linkSucesso.equals("")){ sessao.setAttribute("linkSucesso", linkSucesso); } } private ActionForward getRetorno(ActionMapping actionMapping, HttpSession sessao) { ActionForward retorno; String redirecionar = (String) sessao.getAttribute("redirecionar"); if (redirecionar != null && !redirecionar.trim().equalsIgnoreCase("") && "ManterVinculoImoveisRateioConsumo".equals(redirecionar)) { retorno = actionMapping.findForward("retornarVinculosImoveisRateioConsumo"); } else if (redirecionar != null && !redirecionar.trim().equalsIgnoreCase("") && "ManterDadosTarifaSocial".equals(redirecionar)) { retorno = actionMapping.findForward("retornarManterDadosTarifaSocial"); } else { retorno = actionMapping.findForward("retornarFiltroImovel"); } return retorno; } private class FiltroClienteImovelParams { public String idLocalidade; public String idSetorComercial; public String idQuadra; public String lote; public String subLote; public String codigoCliente; public String idMunicipio; public String cep; public String idBairro; public String idLogradouro; public String matricula; public String numeroImovelInicial; public String numeroImovelFinal; public FiltroClienteImovelParams(FiltrarImovelActionForm filtrarImovelActionForm, FiltroClienteImovel filtro){ setIdLocalidade((String) filtrarImovelActionForm.getIdLocalidadeFiltro(), filtro); setIdSetorComercial((String) filtrarImovelActionForm.getIdSetorComercialFiltro(), filtro); setIdQuadra((String) filtrarImovelActionForm.getIdQuadraFiltro(), filtro); setLote((String) filtrarImovelActionForm.getLoteFiltro(), filtro); setSublote((String) filtrarImovelActionForm.getSubLoteFiltro(), filtro); setCodigoCliente((String) filtrarImovelActionForm.getIdClienteFiltro(), filtro); setIdMunicipio((String) filtrarImovelActionForm.getIdMunicipioFiltro(), filtro); setCep((String) filtrarImovelActionForm.getCepFiltro(), filtro); setIdBairro((String) filtrarImovelActionForm.getIdBairroFiltro(), filtro); setIdLogradouro((String) filtrarImovelActionForm.getIdLogradouroFiltro(), filtro); setMatricula((String) filtrarImovelActionForm.getMatriculaFiltro(), filtro); this.numeroImovelInicial = (String) filtrarImovelActionForm.getNumeroImovelInicialFiltro(); this.numeroImovelFinal = (String) filtrarImovelActionForm.getNumeroImovelFinalFiltro(); } private void setIdLocalidade(String valor, FiltroClienteImovel filtro){ this.idLocalidade = valor; if(idLocalidade != null && !idLocalidade.equals("")){ filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.LOCALIDADE_ID, new Integer(idLocalidade))); } } private void setIdSetorComercial(String valor, FiltroClienteImovel filtro){ this.idSetorComercial = valor; if(idSetorComercial != null && !idSetorComercial.equals("")){ filtro.adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial"); filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.SETOR_COMERCIAL_CODIGO, new Integer(idSetorComercial))); } } private void setIdQuadra(String valor, FiltroClienteImovel filtro){ this.idQuadra = valor; if(idQuadra != null && !idQuadra.equals("")){ filtro.adicionarCaminhoParaCarregamentoEntidade("imovel.quadra.rota"); filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.QUADRA_NUMERO, new Integer(idQuadra))); } } private void setLote(String valor, FiltroClienteImovel filtro){ this.lote = valor; if(lote != null && !lote.equals("")){ filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.LOTE, new Short(lote))); } } private void setSublote(String valor, FiltroClienteImovel filtro){ this.subLote = valor; if(subLote != null && !subLote.equals("")){ filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.SUBLOTE, new Short(subLote))); } } private void setCodigoCliente(String valor, FiltroClienteImovel filtro){ this.codigoCliente = valor; if(codigoCliente != null && !codigoCliente.equals("")){ filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.CLIENTE_ID, new Short(codigoCliente))); } } private void setIdMunicipio(String valor, FiltroClienteImovel filtro){ this.idMunicipio = valor; if(idMunicipio != null && !idMunicipio.equals("")){ filtro.adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial.municipio"); filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.MUNICIPIO_SETOR_COMERICAL_CODIGO, new Integer(idMunicipio))); } } private void setCep(String valor, FiltroClienteImovel filtro){ this.cep = valor; if(cep != null && !cep.equals("")){ filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.CEP_CODIGO, new Integer(cep))); } } private void setIdBairro(String valor, FiltroClienteImovel filtro){ this.idBairro = valor; if(idBairro != null && !idBairro.equals("")){ filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.BAIRRO_CODIGO, new Integer(idBairro))); } } private void setIdLogradouro(String valor, FiltroClienteImovel filtro){ this.idLogradouro = valor; if(idLogradouro != null && !idLogradouro.equals("")){ filtro.adicionarCaminhoParaCarregamentoEntidade("imovel.logradouroCep.logradouro"); filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.LOGRADOURO_ID, new Integer(idLogradouro))); } } private void setMatricula(String valor, FiltroClienteImovel filtro){ this.matricula = valor; if(matricula != null && !matricula.equals("")){ filtro.adicionarParametro(new ParametroSimples(FiltroClienteImovel.IMOVEL_ID, matricula)); } } } }