package gcom.gui.cadastro.endereco; import gcom.cadastro.endereco.Cep; import gcom.cadastro.endereco.FiltroCep; import gcom.cadastro.endereco.FiltroLogradouro; import gcom.cadastro.endereco.FiltroLogradouroBairro; import gcom.cadastro.endereco.FiltroLogradouroCep; import gcom.cadastro.endereco.FiltroLogradouroTipo; import gcom.cadastro.endereco.FiltroLogradouroTitulo; import gcom.cadastro.endereco.Logradouro; import gcom.cadastro.endereco.LogradouroBairro; import gcom.cadastro.endereco.LogradouroCep; import gcom.cadastro.endereco.LogradouroTipo; import gcom.cadastro.endereco.LogradouroTitulo; import gcom.cadastro.endereco.bean.AtualizarLogradouroBairroHelper; import gcom.cadastro.endereco.bean.AtualizarLogradouroCepHelper; import gcom.cadastro.geografico.Bairro; import gcom.cadastro.geografico.FiltroBairro; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; 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; /** * Action para a pr�-exibi��o da p�gina de Atualizar Logradouro * * @author S�vio Luiz * @date 30/06/2006 */ public class ExibirAtualizarLogradouroAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("atualizarLogradouro"); LogradouroActionForm logradouroActionForm = (LogradouroActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); logradouroActionForm.setColecaoBairro(""); logradouroActionForm.setColecaoCep(""); String idLogradouro = httpServletRequest.getParameter("idLogradouro"); if (sessao.getAttribute("colecaoBairrosSelecionadosUsuario") != null){ Collection colecaoBairros = (List) sessao .getAttribute("colecaoBairrosSelecionadosUsuario"); if (!colecaoBairros.isEmpty()){ logradouroActionForm.setColecaoBairro("CARREGADO"); } else{ logradouroActionForm.setColecaoBairro(""); } } if (sessao.getAttribute("colecaoCepSelecionadosUsuario") != null){ Collection colecaoCep = (List) sessao .getAttribute("colecaoCepSelecionadosUsuario"); if (!colecaoCep.isEmpty()){ logradouroActionForm.setColecaoCep("CARREGADO"); } else{ logradouroActionForm.setColecaoCep(""); } } String codigoLogradouro = httpServletRequest .getParameter("idRegistroAtualizacao"); if (codigoLogradouro == null){ if (httpServletRequest.getAttribute("idRegistroAtualizacao") != null){ codigoLogradouro = httpServletRequest.getAttribute("idRegistroAtualizacao").toString(); } } if (httpServletRequest.getParameter("manter") != null){ sessao.setAttribute("manter", "manter"); } // -------Parte que trata do c�digo quando o usu�rio tecla enter // caso seja o id do municipio String idDigitadoEnterMunicipio = (String) logradouroActionForm .getIdMunicipio(); String codigoDigitadoEnterBairro = (String) logradouroActionForm .getCodigoBairro(); /* * Removendo toda a cole��o de bairro da sess�o */ String removerColecaoBairro = httpServletRequest.getParameter("removerColecaoBairro"); if (removerColecaoBairro != null && !removerColecaoBairro.equals("")){ sessao.removeAttribute("colecaoBairrosSelecionadosUsuario"); logradouroActionForm.setColecaoBairro(""); } /* * Removendo toda a cole��o de cep da sess�o */ String removerColecaoCep = httpServletRequest.getParameter("removerColecaoCep"); if (removerColecaoCep != null && !removerColecaoCep.equals("")){ sessao.removeAttribute("colecaoCepSelecionadosUsuario"); logradouroActionForm.setColecaoCep(""); } //Verifica se o c�digo foi digitado if (idDigitadoEnterMunicipio != null && !idDigitadoEnterMunicipio.trim().equals("") && !Util.validarValorNaoNumerico(idDigitadoEnterMunicipio)) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, idDigitadoEnterMunicipio)); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection municipioEncontrado = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (municipioEncontrado != null && !municipioEncontrado.isEmpty()) { //O municipio foi encontrado logradouroActionForm .setIdMunicipio(((Municipio) ((List) municipioEncontrado) .get(0)).getId().toString()); logradouroActionForm .setNomeMunicipio(((Municipio) ((List) municipioEncontrado) .get(0)).getNome()); httpServletRequest.setAttribute("nomeCampo", "codigoBairro"); httpServletRequest.setAttribute("idMunicipioNaoEncontrado", "true"); Municipio municipio = ((Municipio) ((List) municipioEncontrado).get(0)); if (!fachada.verificarMunicipioComCepPorLogradouro(municipio)){ httpServletRequest.setAttribute("cepUnico", "OK"); Cep cep = fachada.obterCepUnicoMunicipio(municipio); if (cep != null){ Collection colecaoCepSelecionadosUsuario = new ArrayList(); colecaoCepSelecionadosUsuario.add(cep); sessao.setAttribute("colecaoCepSelecionadosUsuario", colecaoCepSelecionadosUsuario); } } } else { logradouroActionForm.setIdMunicipio(""); httpServletRequest.setAttribute("nomeCampo", "idMunicipio"); httpServletRequest.setAttribute("idMunicipioNaoEncontrado", "exception"); logradouroActionForm.setNomeMunicipio("Munic�pio inexistente"); } } //Verifica se o c�digo foi digitado if (codigoDigitadoEnterBairro != null && !codigoDigitadoEnterBairro.trim().equals("") && !Util.validarValorNaoNumerico(codigoDigitadoEnterBairro)) { FiltroBairro filtroBairro = new FiltroBairro(); filtroBairro.adicionarCaminhoParaCarregamentoEntidade("municipio"); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.CODIGO, codigoDigitadoEnterBairro)); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); // verifica se o bairro pesquisado � de um municipio existente if (idDigitadoEnterMunicipio != null && !idDigitadoEnterMunicipio.trim().equals("") && Integer.parseInt(idDigitadoEnterMunicipio) > 0) { filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.MUNICIPIO_ID, idDigitadoEnterMunicipio)); } Collection bairroEncontrado = fachada.pesquisar(filtroBairro, Bairro.class.getName()); if (bairroEncontrado != null && !bairroEncontrado.isEmpty()) { //O bairro foi encontrado Bairro objetoBairroEncontrado = (Bairro) Util.retonarObjetoDeColecao(bairroEncontrado); logradouroActionForm.setCodigoBairro(String.valueOf(objetoBairroEncontrado.getCodigo())); logradouroActionForm.setNomeBairro(objetoBairroEncontrado.getNome()); httpServletRequest.setAttribute("nomeCampo", "botaoAdicionarBairro"); httpServletRequest.setAttribute("idBairroNaoEncontrado", "true"); /* * Adicionado o novo BAIRRO na cole��o */ String adicionarBairroColecao = httpServletRequest.getParameter("adicionarBairroColecao"); if (adicionarBairroColecao != null && !adicionarBairroColecao.equals("")){ logradouroActionForm.setCodigoBairro(""); logradouroActionForm.setNomeBairro(""); List colecaoBairrosSelecionadosUsuario = new ArrayList(); if (sessao.getAttribute("colecaoBairrosSelecionadosUsuario") != null){ colecaoBairrosSelecionadosUsuario = (List) sessao .getAttribute("colecaoBairrosSelecionadosUsuario"); if (!colecaoBairrosSelecionadosUsuario.contains((Bairro) ((List) bairroEncontrado).get(0))){ colecaoBairrosSelecionadosUsuario.add((Bairro) ((List) bairroEncontrado).get(0)); logradouroActionForm.setColecaoBairro("CARREGADO"); } else{ throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Bairro"); } } else{ colecaoBairrosSelecionadosUsuario.add((Bairro) ((List) bairroEncontrado).get(0)); sessao.setAttribute("colecaoBairrosSelecionadosUsuario", colecaoBairrosSelecionadosUsuario); logradouroActionForm.setColecaoBairro("CARREGADO"); } } } else { logradouroActionForm.setCodigoBairro(""); httpServletRequest.setAttribute("nomeCampo", "codigoBairro"); httpServletRequest.setAttribute("idBairroNaoEncontrado", "exception"); logradouroActionForm.setNomeBairro("Bairro inexistente"); } } //fim da parte da pesquisa do enter // ------Inicio da parte que verifica se vem da p�gina de // manter_bairro.jsp if (codigoLogradouro != null && !codigoLogradouro.equals("")) { sessao.removeAttribute("colecaoBairrosSelecionadosUsuario"); sessao.removeAttribute("colecaoCepSelecionadosUsuario"); logradouroActionForm.setCodigoBairro(""); logradouroActionForm.setCodigoCEP(""); logradouroActionForm.setDescricaoCEP(""); logradouroActionForm.setNomeBairro(""); FiltroLogradouro filtroLogradouro = new FiltroLogradouro(); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.ID, codigoLogradouro)); filtroLogradouro .adicionarCaminhoParaCarregamentoEntidade("logradouroTipo"); filtroLogradouro .adicionarCaminhoParaCarregamentoEntidade("logradouroTitulo"); filtroLogradouro .adicionarCaminhoParaCarregamentoEntidade("municipio"); Collection logradouros = fachada.pesquisar(filtroLogradouro, Logradouro.class.getName()); if (logradouros != null && !logradouros.isEmpty()) { Logradouro logradouro = ((Logradouro) ((List) logradouros) .get(0)); logradouroActionForm.setNome(formatarResultado(logradouro .getNome())); logradouroActionForm.setNomePopular(formatarResultado(logradouro .getNomePopular())); logradouroActionForm.setIdTipo(new Integer(formatarResultado("" + logradouro.getLogradouroTipo().getId()))); FiltroLogradouroTipo filtroLogradouroTipo = new FiltroLogradouroTipo( FiltroLogradouroTipo.DESCRICAO); filtroLogradouroTipo.setConsultaSemLimites(true); // cria a cole��o de tipos para serem mandadas para o // logradouro_atualizar.jsp filtroLogradouroTipo.adicionarParametro(new ParametroSimples( FiltroLogradouroTipo.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection logradouroTipos = fachada.pesquisar( filtroLogradouroTipo, LogradouroTipo.class.getName()); if (logradouroTipos == null || logradouroTipos.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "logradouro tipo"); } else { sessao.setAttribute("logradouroTipos", logradouroTipos); } logradouroActionForm .setIdMunicipio(formatarResultado(logradouro .getMunicipio().getId().toString())); logradouroActionForm .setNomeMunicipio(formatarResultado(logradouro .getMunicipio().getNome())); logradouroActionForm.setIndicadorUso(formatarResultado("" + logradouro.getIndicadorUso())); if (logradouro.getLogradouroTitulo() != null && !logradouro.getLogradouroTitulo().equals("")) { logradouroActionForm .setIdTitulo(new Integer( formatarResultado("" + (logradouro.getLogradouroTitulo() .getId())))); }else{ logradouroActionForm.setIdTitulo(null); } // cria a cole��o de titulos para serem mandadas para o // logradouro_atualizar.jsp FiltroLogradouroTitulo filtroLogradouroTitulo = new FiltroLogradouroTitulo( FiltroLogradouroTitulo.DESCRICAO); filtroLogradouroTitulo.setConsultaSemLimites(true); filtroLogradouroTitulo.adicionarParametro(new ParametroSimples( FiltroLogradouroTipo.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection logradouroTitulos = fachada.pesquisar( filtroLogradouroTitulo, LogradouroTitulo.class .getName()); if (logradouroTitulos == null || logradouroTitulos.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "logradouro t�tulo"); } else { sessao.setAttribute("logradouroTitulos", logradouroTitulos); } /* * Carrega uma cole��o com os bairros que est�o relacionados com o logradouro selecionado */ FiltroLogradouroBairro filtroLogradouroBairro = new FiltroLogradouroBairro(); filtroLogradouroBairro .adicionarParametro(new ParametroSimples( FiltroLogradouroBairro.ID_LOGRADOURO, logradouro.getId())); filtroLogradouroBairro .adicionarCaminhoParaCarregamentoEntidade("bairro"); Collection logradouroBairros = fachada.pesquisar( filtroLogradouroBairro, LogradouroBairro.class .getName()); /* * Carregando uma cole��o com os bairros que foram selecinados a partir da rela��o * existente entre o pr�prio bairro e o logradouro escolhido */ if (logradouroBairros != null && !logradouroBairros.isEmpty()) { LogradouroBairro logradouroBairro = null; Collection colecaoBairrosSelecionadosUsuario = new ArrayList(); Iterator iteratorLogradouroBairros = logradouroBairros.iterator(); while (iteratorLogradouroBairros.hasNext()){ logradouroBairro = (LogradouroBairro) iteratorLogradouroBairros.next(); colecaoBairrosSelecionadosUsuario.add(logradouroBairro.getBairro()); } logradouroActionForm.setColecaoBairro("CARREGADO"); sessao.setAttribute("colecaoBairrosSelecionadosUsuario", colecaoBairrosSelecionadosUsuario); } /* * Carrega uma cole��o com os CEPs que est�o relacionados com o logradouro selecionado */ FiltroLogradouroCep filtroLogradouroCep = new FiltroLogradouroCep(); filtroLogradouroCep .adicionarParametro(new ParametroSimples( FiltroLogradouroCep.ID_LOGRADOURO, logradouro.getId())); filtroLogradouroCep .adicionarParametro(new ParametroSimples( FiltroLogradouroCep.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLogradouroCep .adicionarCaminhoParaCarregamentoEntidade("cep"); Collection logradouroCeps = fachada.pesquisar( filtroLogradouroCep, LogradouroCep.class .getName()); /* * Carregando uma cole��o com os CEPs que foram selecinados a partir da rela��o * existente entre o pr�prio CEO e o logradouro escolhido */ if (logradouroCeps != null && !logradouroCeps.isEmpty()) { LogradouroCep logradouroCep = null; Collection colecaoCepSelecionadosUsuario = new ArrayList(); Iterator iteratorlogradouroCeps = logradouroCeps.iterator(); while (iteratorlogradouroCeps.hasNext()){ logradouroCep = (LogradouroCep) iteratorlogradouroCeps.next(); colecaoCepSelecionadosUsuario.add(logradouroCep.getCep()); } sessao.setAttribute("colecaoCepSelecionadosUsuario", colecaoCepSelecionadosUsuario); logradouroActionForm.setColecaoCep("CARREGADO"); } sessao.setAttribute("logradouro", logradouro); } } /* * Removendo o bairro selecionado da sess�o */ String idBairro = httpServletRequest.getParameter("idBairro"); if (Util.verificarNaoVazio(idBairro) && sessao.getAttribute("colecaoBairrosSelecionadosUsuario") != null && !"true".equals(sessao.getAttribute("idBairroFiltro"))){ Collection colecaoBairrosSelecionadosUsuario = (Collection) sessao .getAttribute("colecaoBairrosSelecionadosUsuario"); Iterator colecaoBairrosSelecionadosUsuarioIterator; Bairro bairroInserir; colecaoBairrosSelecionadosUsuarioIterator = colecaoBairrosSelecionadosUsuario .iterator(); while (colecaoBairrosSelecionadosUsuarioIterator.hasNext()) { bairroInserir = (Bairro) colecaoBairrosSelecionadosUsuarioIterator .next(); if (bairroInserir.getId().equals(new Integer(idBairro))) { //Alteracao feita por Tiago Moreno - verifica se pode ser excluido o Logradouro Bairro FiltroLogradouroBairro filtroLogradouroBairro = new FiltroLogradouroBairro(); filtroLogradouroBairro.adicionarParametro(new ParametroSimples(FiltroLogradouroBairro.ID_BAIRRO, idBairro)); filtroLogradouroBairro.adicionarParametro(new ParametroSimples(FiltroLogradouroBairro.ID_LOGRADOURO, idLogradouro)); Collection colecaoLogradouroBairro = fachada.pesquisar(filtroLogradouroBairro, LogradouroBairro.class.getName()); if (colecaoLogradouroBairro != null && !colecaoLogradouroBairro.isEmpty()){ LogradouroBairro logradouroBairro = (LogradouroBairro) colecaoLogradouroBairro.iterator().next(); int id = logradouroBairro.getId(); httpServletRequest.removeAttribute("idBairro"); fachada.verificaObjetoRemocao(id, LogradouroBairro.class.getName(), null, null); } //Fim da Alteracao - Tiago Moreno - 08/08/2006 //Remove atualizacao do bairro: Raphael Rossiter //================================================================================================== Collection colecaoAtualizarLogradouroBairroHelper = (Collection) sessao.getAttribute("colecaoAtualizarLogradouroBairroHelper"); if (colecaoAtualizarLogradouroBairroHelper != null && !colecaoAtualizarLogradouroBairroHelper.isEmpty()){ Iterator iterator = colecaoAtualizarLogradouroBairroHelper.iterator(); AtualizarLogradouroBairroHelper atualizarLogradouroBairroHelper = null; while (iterator.hasNext()){ atualizarLogradouroBairroHelper = (AtualizarLogradouroBairroHelper) iterator.next(); if (atualizarLogradouroBairroHelper.getBairro().getId() .equals(bairroInserir.getId())){ colecaoAtualizarLogradouroBairroHelper.remove(atualizarLogradouroBairroHelper); break; } } } //================================================================================================== colecaoBairrosSelecionadosUsuario.remove(bairroInserir); break; } } if (colecaoBairrosSelecionadosUsuario.isEmpty()){ logradouroActionForm.setColecaoBairro(""); } } /* * Removendo o CEP selecionado da sess�o */ String idCep = httpServletRequest.getParameter("idCep"); if (idCep != null && !idCep.equals("") && sessao.getAttribute("colecaoCepSelecionadosUsuario") != null){ Collection colecaoCepSelecionadosUsuario = (Collection) sessao .getAttribute("colecaoCepSelecionadosUsuario"); Iterator colecaoCepSelecionadosUsuarioIterator; Cep cepInserir; colecaoCepSelecionadosUsuarioIterator = colecaoCepSelecionadosUsuario .iterator(); while (colecaoCepSelecionadosUsuarioIterator.hasNext()) { cepInserir = (Cep) colecaoCepSelecionadosUsuarioIterator .next(); if (cepInserir.getCepId().equals(new Integer(idCep))) { //Alteracao feita por Tiago Moreno - verifica se pode ser excluido o Logradouro Bairro FiltroLogradouroCep filtroLogradouroCep = new FiltroLogradouroCep(); filtroLogradouroCep.adicionarParametro(new ParametroSimples(FiltroLogradouroCep.ID_CEP, idCep)); filtroLogradouroCep.adicionarParametro(new ParametroSimples(FiltroLogradouroCep.ID_LOGRADOURO, idLogradouro)); Collection colecaoLogradouroCep = fachada.pesquisar(filtroLogradouroCep, LogradouroCep.class.getName()); if (colecaoLogradouroCep != null && !colecaoLogradouroCep.isEmpty()){ LogradouroCep logradouroCep = (LogradouroCep) colecaoLogradouroCep.iterator().next(); int id = logradouroCep.getId(); fachada.verificaObjetoRemocao(id, LogradouroCep.class.getName(), null, null); } //Fim da Alteracao - Tiago Moreno - 08/08/2006 //Remove atualizacao do cep: Raphael Rossiter //================================================================================================== Collection colecaoAtualizarLogradouroCepHelper = (Collection) sessao.getAttribute("colecaoAtualizarLogradouroCepHelper"); if (colecaoAtualizarLogradouroCepHelper != null && !colecaoAtualizarLogradouroCepHelper.isEmpty()){ Iterator iterator = colecaoAtualizarLogradouroCepHelper.iterator(); AtualizarLogradouroCepHelper atualizarLogradouroCepHelper = null; while (iterator.hasNext()){ atualizarLogradouroCepHelper = (AtualizarLogradouroCepHelper) iterator.next(); if (atualizarLogradouroCepHelper.getCep().getCepId() .equals(cepInserir.getCepId())){ colecaoAtualizarLogradouroCepHelper.remove(atualizarLogradouroCepHelper); break; } } } //================================================================================================== colecaoCepSelecionadosUsuario.remove(cepInserir); break; } } if (colecaoCepSelecionadosUsuario.isEmpty()){ logradouroActionForm.setColecaoCep(""); } } /* * Adicionando um cep na cole��o a partir do nome do munic�pio e do c�digo do cep */ String codigoDigitadoEnterCep = (String) logradouroActionForm.getCodigoCEP(); if (codigoDigitadoEnterCep != null && !codigoDigitadoEnterCep.trim().equals("") && !Util.validarValorNaoNumerico(codigoDigitadoEnterCep)) { FiltroCep filtroCep = new FiltroCep(); filtroCep.adicionarParametro(new ParametroSimples( FiltroCep.CODIGO, codigoDigitadoEnterCep)); filtroCep.adicionarParametro(new ParametroSimples( FiltroCep.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); if (logradouroActionForm.getNomeMunicipio() != null && !logradouroActionForm.getNomeMunicipio().trim().equals("")) { filtroCep.adicionarParametro(new ComparacaoTexto( FiltroCep.MUNICIPIO, logradouroActionForm.getNomeMunicipio())); } Collection cepEncontrado = fachada.pesquisar(filtroCep, Cep.class.getName()); if (cepEncontrado != null && !cepEncontrado.isEmpty()) { Cep objetoCepEncontrado = (Cep) Util.retonarObjetoDeColecao(cepEncontrado); logradouroActionForm.setCodigoCEP(String.valueOf(objetoCepEncontrado.getCodigo())); logradouroActionForm.setDescricaoCEP(objetoCepEncontrado.getDescricaoLogradouroFormatada()); httpServletRequest.setAttribute("nomeCampo", "botaoAdicionarCep"); httpServletRequest.setAttribute("idCEPNaoEncontrado", "true"); /* * Adicionado o novo CEP na cole��o */ String adicionarCepColecao = httpServletRequest.getParameter("adicionarCepColecao"); if (adicionarCepColecao != null && !adicionarCepColecao.equals("")){ logradouroActionForm.setCodigoCEP(""); logradouroActionForm.setDescricaoCEP(""); List colecaoCepSelecionadosUsuario = new ArrayList(); if (sessao.getAttribute("colecaoCepSelecionadosUsuario") != null){ colecaoCepSelecionadosUsuario = (List) sessao .getAttribute("colecaoCepSelecionadosUsuario"); if (!colecaoCepSelecionadosUsuario.contains((Cep) ((List) cepEncontrado).get(0))){ colecaoCepSelecionadosUsuario.add((Cep) ((List) cepEncontrado).get(0)); logradouroActionForm.setColecaoCep("CARREGADO"); } else{ throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Cep"); } } else{ colecaoCepSelecionadosUsuario.add((Cep) ((List) cepEncontrado).get(0)); sessao.setAttribute("colecaoCepSelecionadosUsuario", colecaoCepSelecionadosUsuario); logradouroActionForm.setColecaoCep("CARREGADO"); } } } else { logradouroActionForm.setCodigoCEP(""); httpServletRequest.setAttribute("nomeCampo", "codigoCEP"); httpServletRequest.setAttribute("idCEPNaoEncontrado", "exception"); logradouroActionForm.setDescricaoCEP("CEP inexistente"); } } /* * Altera��o de Bairro (Logradouro_Bairro) */ String idBairroAtual = httpServletRequest.getParameter("idBairroAtual"); if (idBairroAtual != null && !idBairroAtual.equalsIgnoreCase("")){ String idBairroNovo = httpServletRequest.getParameter("idBairroNovo"); Logradouro logradouro = (Logradouro) sessao.getAttribute("logradouro"); Collection colecaoAtualizarLogradouroBairroHelper = null; List colecaoBairrosSelecionadosUsuario = null; Bairro bairroNovo = null; Bairro bairroAtual = null; AtualizarLogradouroBairroHelper atualizarLogradouroBairroHelper = null; LogradouroBairro logradouroBairro = null; boolean bairroJaAtualizado = false; //Carregando o novo bairro FiltroBairro filtroBairro = new FiltroBairro(); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.ID, idBairroNovo)); Collection colecaoBairro = fachada.pesquisar(filtroBairro, Bairro.class.getName()); bairroNovo = (Bairro) Util.retonarObjetoDeColecao(colecaoBairro); if (sessao.getAttribute("colecaoAtualizarLogradouroBairroHelper") != null){ colecaoBairrosSelecionadosUsuario = (List) sessao.getAttribute("colecaoBairrosSelecionadosUsuario"); colecaoAtualizarLogradouroBairroHelper = (Collection) sessao.getAttribute("colecaoAtualizarLogradouroBairroHelper"); Iterator iteratorBairros = colecaoBairrosSelecionadosUsuario.iterator(); Iterator iteratorAtualizacaoBairros = colecaoAtualizarLogradouroBairroHelper.iterator(); /* * Utilizado para verificar se ser� necess�rio adicionar o novo bairro. Ficar� na depend�ncia da * condicional que ser� realizada dentro do loop abaixo. * * Colocado em 22/02/2007 por Raphael Rossiter */ boolean adicionarBairro = true; while (iteratorBairros.hasNext()){ bairroAtual = (Bairro) iteratorBairros.next(); if (bairroAtual.getId().equals(new Integer(idBairroAtual))){ if (colecaoBairrosSelecionadosUsuario.contains(bairroNovo)){ //Parte antiga /*throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Bairro");*/ /* * Caso o cep atual seja inicial de munic�pio e o novo cep j� tenho sido adicionado * na cole��o colecaoCepSelecionadosUsuario, removeremos apenas o cep inicial de * munic�pio e todos os im�veis que estiverem associados ao mesmo, ser�o automaticamente * associados ao cep de logradouro * * Colocado em 22/02/2007 por Raphael Rossiter */ /*if (fachada.verificarBairroTipoBairroNaoInformado(bairroAtual)){ adicionarBairro = false; } else{ throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Bairro"); }*/ adicionarBairro = false; } bairroJaAtualizado = false; while (iteratorAtualizacaoBairros.hasNext()){ atualizarLogradouroBairroHelper = (AtualizarLogradouroBairroHelper) iteratorAtualizacaoBairros.next(); //Bairro j� atualizado if (atualizarLogradouroBairroHelper.getBairro().getId() .equals(bairroAtual.getId())){ atualizarLogradouroBairroHelper.setBairro(bairroNovo); bairroJaAtualizado = true; break; } } //Caso o bairro ainda n�o tenha sido atualizado if (!bairroJaAtualizado){ FiltroLogradouroBairro filtroLogradouroBairro = new FiltroLogradouroBairro(); filtroLogradouroBairro.adicionarParametro(new ParametroSimples( FiltroLogradouroBairro.ID_LOGRADOURO, logradouro.getId())); filtroLogradouroBairro.adicionarParametro(new ParametroSimples( FiltroLogradouroBairro.ID_BAIRRO, idBairroAtual)); Collection colecaoLogradouroBairro = fachada.pesquisar(filtroLogradouroBairro, LogradouroBairro.class.getName()); logradouroBairro = (LogradouroBairro) Util.retonarObjetoDeColecao(colecaoLogradouroBairro); atualizarLogradouroBairroHelper = new AtualizarLogradouroBairroHelper(); atualizarLogradouroBairroHelper.setLogradouroBairro(logradouroBairro); atualizarLogradouroBairroHelper.setBairro(bairroNovo); colecaoAtualizarLogradouroBairroHelper.add(atualizarLogradouroBairroHelper); } colecaoBairrosSelecionadosUsuario.remove(bairroAtual); /* * Utilizado para verificar se ser� necess�rio adicionar o novo bairro. * * Colocado em 22/02/2007 por Raphael Rossiter */ if (adicionarBairro){ colecaoBairrosSelecionadosUsuario.add(bairroNovo); } break; } } } else{ //Gerando cole��o de apoio colecaoAtualizarLogradouroBairroHelper = new ArrayList(); FiltroLogradouroBairro filtroLogradouroBairro = new FiltroLogradouroBairro(); filtroLogradouroBairro.adicionarParametro(new ParametroSimples( FiltroLogradouroBairro.ID_LOGRADOURO, logradouro.getId())); filtroLogradouroBairro.adicionarParametro(new ParametroSimples( FiltroLogradouroBairro.ID_BAIRRO, idBairroAtual)); Collection colecaoLogradouroBairro = fachada.pesquisar(filtroLogradouroBairro, LogradouroBairro.class.getName()); //Verifica se o usu�rio est� alterando um bairro que ele acabou de informar if (colecaoLogradouroBairro != null && !colecaoLogradouroBairro.isEmpty()){ logradouroBairro = (LogradouroBairro) Util.retonarObjetoDeColecao(colecaoLogradouroBairro); atualizarLogradouroBairroHelper = new AtualizarLogradouroBairroHelper(); atualizarLogradouroBairroHelper.setLogradouroBairro(logradouroBairro); atualizarLogradouroBairroHelper.setBairro(bairroNovo); colecaoAtualizarLogradouroBairroHelper.add(atualizarLogradouroBairroHelper); sessao.setAttribute("colecaoAtualizarLogradouroBairroHelper", colecaoAtualizarLogradouroBairroHelper); } //Atualiza��o da tabela de exibi��o colecaoBairrosSelecionadosUsuario = (List) sessao.getAttribute("colecaoBairrosSelecionadosUsuario"); Iterator iterator = colecaoBairrosSelecionadosUsuario.iterator(); bairroAtual = null; /* * Utilizado para verificar se ser� necess�rio adicionar o novo bairro. Ficar� na depend�ncia da * condicional que ser� realizada dentro do loop abaixo. * * Colocado em 22/02/2007 por Raphael Rossiter */ boolean adicionarBairro = true; while (iterator.hasNext()){ bairroAtual = (Bairro) iterator.next(); if (bairroAtual.getId().equals(new Integer(idBairroAtual))){ if (colecaoBairrosSelecionadosUsuario.contains(bairroNovo)){ //Parte antiga /*throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Bairro");*/ /* * Caso o cep atual seja inicial de munic�pio e o novo cep j� tenho sido adicionado * na cole��o colecaoCepSelecionadosUsuario, removeremos apenas o cep inicial de * munic�pio e todos os im�veis que estiverem associados ao mesmo, ser�o automaticamente * associados ao cep de logradouro * * Colocado em 22/02/2007 por Raphael Rossiter */ /*if (fachada.verificarBairroTipoBairroNaoInformado(bairroAtual)){ adicionarBairro = false; } else{ throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Bairro"); }*/ adicionarBairro = false; } colecaoBairrosSelecionadosUsuario.remove(bairroAtual); /* * Utilizado para verificar se ser� necess�rio adicionar o novo bairro. * * Colocado em 22/02/2007 por Raphael Rossiter */ if (adicionarBairro){ colecaoBairrosSelecionadosUsuario.add(bairroNovo); } break; } } } //Organizar a cole��o Collections.sort((List) colecaoBairrosSelecionadosUsuario, new Comparator() { public int compare(Object a, Object b) { String nomeBairro1 = ((Bairro) a).getNome(); String nomeBairro2 = ((Bairro) b).getNome(); return nomeBairro1.compareTo(nomeBairro2); } }); } /* * Altera��o de Cep (Logradouro_Cep) */ String cdCepAtual = httpServletRequest.getParameter("cdCepAtual"); if (cdCepAtual != null && !cdCepAtual.equalsIgnoreCase("")){ String cdCepNovo = httpServletRequest.getParameter("cdCepNovo"); Logradouro logradouro = (Logradouro) sessao.getAttribute("logradouro"); Collection colecaoAtualizarLogradouroCepHelper = null; List colecaoCepSelecionadosUsuario = null; Cep cepNovo = null; Cep cepAtual = null; AtualizarLogradouroCepHelper atualizarLogradouroCepHelper = null; LogradouroCep logradouroCep = null; boolean cepJaAtualizado = false; //Carregando o novo cep FiltroCep filtroCep = new FiltroCep(); filtroCep.adicionarParametro(new ParametroSimples( FiltroCep.CODIGO, cdCepNovo)); Collection colecaoCep = fachada.pesquisar(filtroCep, Cep.class.getName()); cepNovo = (Cep) Util.retonarObjetoDeColecao(colecaoCep); if (sessao.getAttribute("colecaoAtualizarLogradouroCepHelper") != null){ colecaoCepSelecionadosUsuario = (List) sessao.getAttribute("colecaoCepSelecionadosUsuario"); colecaoAtualizarLogradouroCepHelper = (Collection) sessao.getAttribute("colecaoAtualizarLogradouroCepHelper"); Iterator iteratorCeps = colecaoCepSelecionadosUsuario.iterator(); Iterator iteratorAtualizacaoCeps = colecaoAtualizarLogradouroCepHelper.iterator(); /* * Utilizado para verificar se ser� necess�rio adicionar o novo cep. Ficar� na depend�ncia da * condicional que ser� realizada dentro do loop abaixo. * * Colocado em 22/02/2007 por Raphael Rossiter */ boolean adicionarCep = true; while (iteratorCeps.hasNext()){ cepAtual = (Cep) iteratorCeps.next(); if (cepAtual.getCodigo().equals(new Integer(cdCepAtual))){ if (colecaoCepSelecionadosUsuario.contains(cepNovo)){ //Parte antiga /*throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Cep");*/ /* * Caso o cep atual seja inicial de munic�pio e o novo cep j� tenho sido adicionado * na cole��o colecaoCepSelecionadosUsuario, removeremos apenas o cep inicial de * munic�pio e todos os im�veis que estiverem associados ao mesmo, ser�o automaticamente * associados ao cep de logradouro * * Colocado em 22/02/2007 por Raphael Rossiter */ /*if (fachada.verificarCepInicialMunicipio(cepAtual)){ adicionarCep = false; } else{ throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Cep"); }*/ adicionarCep = false; } cepJaAtualizado = false; while (iteratorAtualizacaoCeps.hasNext()){ atualizarLogradouroCepHelper = (AtualizarLogradouroCepHelper) iteratorAtualizacaoCeps.next(); //Cep j� atualizado if (atualizarLogradouroCepHelper.getCep().getCodigo() .equals(cepAtual.getCodigo())){ atualizarLogradouroCepHelper.setCep(cepNovo); cepJaAtualizado = true; break; } } //Caso o cep ainda n�o tenha sido atualizado if (!cepJaAtualizado){ FiltroLogradouroCep filtroLogradouroCep = new FiltroLogradouroCep(); filtroLogradouroCep.adicionarParametro(new ParametroSimples( FiltroLogradouroCep.ID_LOGRADOURO, logradouro.getId())); filtroLogradouroCep.adicionarParametro(new ParametroSimples( FiltroLogradouroCep.CODIGO_CEP, cdCepAtual)); Collection colecaoLogradouroCep = fachada.pesquisar(filtroLogradouroCep, LogradouroCep.class.getName()); logradouroCep = (LogradouroCep) Util.retonarObjetoDeColecao(colecaoLogradouroCep); atualizarLogradouroCepHelper = new AtualizarLogradouroCepHelper(); atualizarLogradouroCepHelper.setLogradouroCep(logradouroCep); atualizarLogradouroCepHelper.setCep(cepNovo); colecaoAtualizarLogradouroCepHelper.add(atualizarLogradouroCepHelper); } colecaoCepSelecionadosUsuario.remove(cepAtual); /* * Utilizado para verificar se ser� necess�rio adicionar o novo cep. * * Colocado em 22/02/2007 por Raphael Rossiter */ if (adicionarCep){ colecaoCepSelecionadosUsuario.add(cepNovo); } break; } } } else{ //Gerando cole��o de apoio colecaoAtualizarLogradouroCepHelper = new ArrayList(); FiltroLogradouroCep filtroLogradouroCep = new FiltroLogradouroCep(); filtroLogradouroCep.adicionarParametro(new ParametroSimples( FiltroLogradouroCep.ID_LOGRADOURO, logradouro.getId())); filtroLogradouroCep.adicionarParametro(new ParametroSimples( FiltroLogradouroCep.CODIGO_CEP, cdCepAtual)); Collection colecaoLogradouroCep = fachada.pesquisar(filtroLogradouroCep, LogradouroCep.class.getName()); //Verifica se o usu�rio est� alterando um cep que ele acabou de informar if (colecaoLogradouroCep != null && !colecaoLogradouroCep.isEmpty()){ logradouroCep = (LogradouroCep) Util.retonarObjetoDeColecao(colecaoLogradouroCep); atualizarLogradouroCepHelper = new AtualizarLogradouroCepHelper(); atualizarLogradouroCepHelper.setLogradouroCep(logradouroCep); atualizarLogradouroCepHelper.setCep(cepNovo); colecaoAtualizarLogradouroCepHelper.add(atualizarLogradouroCepHelper); sessao.setAttribute("colecaoAtualizarLogradouroCepHelper", colecaoAtualizarLogradouroCepHelper); } //Atualiza��o da tabela de exibi��o colecaoCepSelecionadosUsuario = (List) sessao.getAttribute("colecaoCepSelecionadosUsuario"); Iterator iterator = colecaoCepSelecionadosUsuario.iterator(); cepAtual = null; /* * Utilizado para verificar se ser� necess�rio adicionar o novo cep. Ficar� na depend�ncia da * condicional que ser� realizada dentro do loop abaixo. * * Colocado em 22/02/2007 por Raphael Rossiter */ boolean adicionarCep = true; while (iterator.hasNext()){ cepAtual = (Cep) iterator.next(); if (cepAtual.getCodigo().equals(new Integer(cdCepAtual))){ if (colecaoCepSelecionadosUsuario.contains(cepNovo)){ //Parte antiga /*throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Cep");*/ /* * Caso o cep atual seja inicial de munic�pio e o novo cep j� tenho sido adicionado * na cole��o colecaoCepSelecionadosUsuario, removeremos apenas o cep inicial de * munic�pio e todos os im�veis que estiverem associados ao mesmo, ser�o automaticamente * associados ao cep de logradouro * * Colocado em 22/02/2007 por Raphael Rossiter */ /*if (fachada.verificarCepInicialMunicipio(cepAtual)){ adicionarCep = false; } else{ throw new ActionServletException( "atencao.objeto_ja_selecionado", null, "Cep"); }*/ adicionarCep = false; } colecaoCepSelecionadosUsuario.remove(cepAtual); /* * Utilizado para verificar se ser� necess�rio adicionar o novo cep. * * Colocado em 22/02/2007 por Raphael Rossiter */ if (adicionarCep){ colecaoCepSelecionadosUsuario.add(cepNovo); } break; } } } //Organizar a cole��o Collections.sort((List) colecaoCepSelecionadosUsuario, new Comparator() { public int compare(Object a, Object b) { String logradouroCep1 = ((Cep) a).getDescricaoLogradouroFormatada(); String logradouroCep2 = ((Cep) b).getDescricaoLogradouroFormatada(); return logradouroCep1.compareTo(logradouroCep2); } }); } // Permiss�o especial Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); if (!fachada.verificarPermissaoAtualizarLogradouroBairro(usuarioLogado)) { httpServletRequest.setAttribute("bloquearLinkBairro", "OK"); } return retorno; } /** * < <Descri��o do m�todo>> * * @param parametro * Descri��o do par�metro * @return Descri��o do retorno */ private String formatarResultado(String parametro) { if (parametro != null && !parametro.trim().equals("")) { if (parametro.equals("null")) { return ""; } else { return parametro.trim(); } } else { return ""; } } }