package gcom.gui.cadastro.endereco; import gcom.cadastro.endereco.Cep; import gcom.cadastro.endereco.FiltroCep; import gcom.cadastro.endereco.FiltroLogradouro; import gcom.cadastro.endereco.FiltroLogradouroCep; import gcom.cadastro.endereco.Logradouro; import gcom.cadastro.endereco.LogradouroCep; import gcom.cadastro.endereco.LogradouroTipo; import gcom.cadastro.endereco.LogradouroTitulo; import gcom.cadastro.endereco.bean.AtualizarLogradouroCepHelper; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.interceptor.RegistradorOperacao; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; import java.util.ArrayList; import java.util.Collection; 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 respons�vel pela atualiza��o de um logradouro na base * * @author S�vio Luiz */ public class AtualizarLogradouroAction 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("telaSucesso"); LogradouroActionForm logradouroActionForm = (LogradouroActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); // Recupera a vari�vel para indicar se o usu�rio apertou o bot�o de // confirmar da tela de // confirma��o do wizard String confirmado = httpServletRequest.getParameter("confirmado"); // =========================================================================== RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_LOGRADOURO_ATUALIZAR, // new UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO), // new UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO), // new UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO), new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // // [UC0107] Registrar Transa��o // Operacao operacao = new Operacao(); // operacao.setId(Operacao.OPERACAO_LOGRADOURO_ATUALIZAR); // // OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); // operacaoEfetuada.setOperacao(operacao); // ========================================================================== Logradouro logradouro = (Logradouro) sessao.getAttribute("logradouro"); Municipio municipio = null; String idMunicipio = (String) logradouroActionForm.getIdMunicipio(); // String codigoBairro = (String) // logradouroActionForm.getCodigoBairro(); if (idMunicipio != null && !idMunicipio.trim().equals("") && Integer.parseInt(idMunicipio) > 0) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, idMunicipio)); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection municipioEncontrado = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (municipioEncontrado != null && !municipioEncontrado.isEmpty()) { municipio = ((Municipio) ((List) municipioEncontrado).get(0)); } else { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "munic�pio"); } } logradouro.setMunicipio(municipio); LogradouroTipo logradouroTipo = new LogradouroTipo(); if (logradouroActionForm.getIdTipo() != null && !logradouroActionForm.getIdTipo().equals(0)) { logradouroTipo.setId(new Integer("" + logradouroActionForm.getIdTipo())); logradouro.setLogradouroTipo(logradouroTipo); } else { throw new ActionServletException("atencao.required", null, "Tipo"); } LogradouroTitulo logradouroTitulo = null; if (logradouroActionForm.getIdTitulo() != null) { logradouroTitulo = new LogradouroTitulo(); if (!logradouroActionForm.getIdTitulo().equals(0)) { logradouroTitulo.setId(new Integer("" + logradouroActionForm.getIdTitulo())); } else { logradouroTitulo = null; } logradouro.setLogradouroTitulo(logradouroTitulo); } Collection colecaoBairros = (Collection) sessao .getAttribute("colecaoBairrosSelecionadosUsuario"); Collection colecaoCeps = (Collection) sessao .getAttribute("colecaoCepSelecionadosUsuario"); if (colecaoBairros == null || colecaoBairros.isEmpty()) { throw new ActionServletException("atencao.required", null, "Bairro(s)"); } if (colecaoCeps == null || colecaoCeps.isEmpty()) { throw new ActionServletException("atencao.required", null, "CEP(s)"); } Short indicadorDeUso = new Short(logradouroActionForm.getIndicadorUso()); logradouro.setIndicadorUso(indicadorDeUso); logradouro.setNome(logradouroActionForm.getNome()); logradouro.setNomePopular(logradouroActionForm.getNomePopular()); // ====================================================================== // [UC0107] Registrar Transa��o // logradouro.setOperacaoEfetuada(operacaoEfetuada); // logradouro.adicionarUsuario(Usuario.USUARIO_TESTE, // UsuarioAcao.USUARIO_ACAO_TESTE); // ====================================================================== registradorOperacao.registrarOperacao(logradouro); FiltroLogradouro filtroLogradouro = new FiltroLogradouro(); // -------------Parte que atualiza um logradouro na // base---------------------- filtroLogradouro.adicionarParametro(new ParametroSimplesDiferenteDe( FiltroLogradouro.ID, logradouro.getLogradouroTipo().getId())); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.ID_LOGRADOUROTIPO, logradouro .getLogradouroTipo().getId())); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.ID_MUNICIPIO, logradouro.getMunicipio() .getId())); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.NOME, logradouro.getNome())); if (logradouro.getLogradouroTitulo() == null || logradouro.getLogradouroTitulo().equals("")) { filtroLogradouro.adicionarParametro(new ParametroNulo( FiltroLogradouro.ID_LOGRADOUROTITULO)); } else { filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.ID_LOGRADOUROTITULO, logradouro .getLogradouroTitulo().getId())); } Collection logradouros = fachada.pesquisar(filtroLogradouro, Logradouro.class.getName()); if (logradouros != null && !logradouros.isEmpty()) { Logradouro logradouroPesquisado = (Logradouro) ((List) logradouros) .get(0); if (!logradouro.getId().equals(logradouroPesquisado.getId())) { if (confirmado == null || !confirmado.trim().equalsIgnoreCase("ok")) { httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/atualizarLogradouroAction.do"); // Monta a p�gina de confirma��o do wizard para perguntar se // o usu�rio quer inserir // o pagamento mesmo sem a conta existir para a refer�ncia e // o im�vel informados return montarPaginaConfirmacao( "atencao.logradouro_ja_existente.confirmacao", httpServletRequest, actionMapping); } } } Collection colecaoAtualizarLogradouroBairroHelper = null; if (sessao.getAttribute("colecaoAtualizarLogradouroBairroHelper") != null){ colecaoAtualizarLogradouroBairroHelper = (Collection) sessao.getAttribute("colecaoAtualizarLogradouroBairroHelper"); } Collection colecaoAtualizarLogradouroCepHelper = null; if (sessao.getAttribute("colecaoAtualizarLogradouroCepHelper") != null){ colecaoAtualizarLogradouroCepHelper = (Collection) sessao.getAttribute("colecaoAtualizarLogradouroCepHelper"); } for (Object object : colecaoCeps) { Cep cep = (Cep) object; FiltroCep filtroCep = new FiltroCep(); filtroCep.adicionarParametro(new ParametroSimples(FiltroCep.CODIGO, cep.getCodigo())); Iterator cepIterator = fachada.pesquisar(filtroCep, Cep.class.getName()).iterator(); Cep cepExistente = null; if (cepIterator.hasNext()) { cepExistente = (Cep) cepIterator.next(); } if (cepExistente == null) { continue; } FiltroLogradouroCep filtroLogradouroCep = new FiltroLogradouroCep(); filtroLogradouroCep.adicionarParametro(new ParametroSimples(FiltroLogradouroCep.ID_LOGRADOURO,logradouro.getId())); filtroLogradouroCep.adicionarParametro(new ParametroSimples(FiltroLogradouroCep.ID_CEP, cepExistente.getCepId())); filtroLogradouroCep.adicionarParametro(new ParametroSimples(FiltroLogradouroCep.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_DESATIVO)); filtroLogradouroCep.adicionarCaminhoParaCarregamentoEntidade("cep"); Iterator logradouroCepIterator = fachada.pesquisar(filtroLogradouroCep, LogradouroCep.class.getName()).iterator(); LogradouroCep logradouroCep = null; if (logradouroCepIterator.hasNext()) { logradouroCep = (LogradouroCep) logradouroCepIterator.next(); } if (logradouroCep != null && sessao.getAttribute("ativarCepLogradouro") == null) { httpServletRequest.setAttribute("caminhoActionConclusao", "/gsan/atualizarLogradouroAction.do"); httpServletRequest.setAttribute("cancelamento", "TRUE"); httpServletRequest.setAttribute("nomeBotao1", "Sim"); httpServletRequest.setAttribute("nomeBotao2", "N�o"); sessao.setAttribute("ativarCepLogradouro", "true"); return montarPaginaConfirmacao("atencao.ativar_cep_logradouro", httpServletRequest, actionMapping, cepExistente.getCepFormatado()); } else if (logradouroCep != null && sessao.getAttribute("ativarCepLogradouro").equals("true") && (confirmado != null && confirmado.equals("ok"))) { if (colecaoAtualizarLogradouroCepHelper == null) { colecaoAtualizarLogradouroCepHelper = new ArrayList(); } AtualizarLogradouroCepHelper atualizarLogradouroCepHelper = new AtualizarLogradouroCepHelper(); atualizarLogradouroCepHelper.setCep(cepExistente); atualizarLogradouroCepHelper.setLogradouroCep(logradouroCep); colecaoAtualizarLogradouroCepHelper.add(atualizarLogradouroCepHelper); sessao.setAttribute("ativarCepLogradouro", null); } else if (logradouroCep != null && sessao.getAttribute("ativarCepLogradouro").equals("true") && (confirmado != null && confirmado.equals("cancelar"))) { sessao.setAttribute("ativarCepLogradouro", null); } } fachada.atualizarLogradouro(logradouro, colecaoBairros, colecaoCeps, colecaoAtualizarLogradouroBairroHelper, colecaoAtualizarLogradouroCepHelper); montarPaginaSucesso(httpServletRequest, "Logradouro de c�digo " + logradouro.getId() + " atualizado com sucesso.", "Realizar outra Manuten��o de Logradouro", "exibirManterLogradouroAction.do"); return retorno; } }