package gcom.gui.cadastro.cliente; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.EsferaPoder; import gcom.cadastro.cliente.FiltroClienteTipo; import gcom.cadastro.cliente.FiltroEsferaPoder; import gcom.cadastro.endereco.FiltroLogradouro; import gcom.cadastro.endereco.Logradouro; 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.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Action que define o pr�-processamento da p�gina de pesquisa de cliente * * @author S�vio Luiz, Fernanda Paiva * @date 25/04/2005, 29/08/2006 */ public class ExibirPesquisarClienteAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("pesquisarCliente"); // Obt�m a inst�ncia da Fachada Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Verifica se o pesquisar cliente foi chamado a partir do inserir cliente // e em caso afirmativo recebe o par�metro e manda-o pela sess�o para // ser verificado no cliente_resultado_pesquisa e depois retirado da // sess�o no ExibirFiltrarClienteAction if (httpServletRequest.getParameter("consultaCliente") != null) { sessao.setAttribute("consultaCliente", httpServletRequest.getParameter("consultaCliente")); } DynaValidatorForm pesquisarActionForm = (DynaValidatorForm) actionForm; String limparForm = httpServletRequest.getParameter("limparForm"); if(limparForm == null || limparForm.equals("")){ if(httpServletRequest.getAttribute("limparForm") != null){ limparForm = (String)httpServletRequest.getAttribute("limparForm"); } } // Verifica se esta entrando a primeira vez no pesquisar e limpa o form e a sessao caso isso aconte�a. if (httpServletRequest.getParameter("objetoConsulta") == null && httpServletRequest.getParameter("tipoConsulta") == null && httpServletRequest.getParameter("voltarPesquisa") == null) { pesquisarActionForm.set("idTipoCliente", null); pesquisarActionForm.set("nomeCliente", ""); pesquisarActionForm.set("cepClienteEndereco", ""); pesquisarActionForm.set("cpf", ""); pesquisarActionForm.set("rg", ""); pesquisarActionForm.set("cnpj", ""); pesquisarActionForm.set("idMunicipioCliente", ""); pesquisarActionForm.set("descricaoMunicipioCliente", ""); pesquisarActionForm.set("codigoBairroCliente", ""); pesquisarActionForm.set("descricaoBairroCliente", ""); pesquisarActionForm.set("idLogradouroCliente", ""); pesquisarActionForm.set("tipoPesquisa", ConstantesSistema.TIPO_PESQUISA_INICIAL.toString()); sessao.removeAttribute("caminhoRetornoTelaPesquisaMunicipio"); sessao.removeAttribute("caminhoRetornoTelaPesquisaBairro"); sessao.removeAttribute("caminhoRetornoTelaPesquisaLogradouro"); sessao.removeAttribute("idMunicipio"); if (httpServletRequest.getParameter("novaPesquisa") == null || httpServletRequest.getParameter("novaPesquisa").equals( "")) { sessao.removeAttribute("caminhoRetorno"); } } if (limparForm != null && !limparForm.trim().equalsIgnoreCase("")) { pesquisarActionForm.set("idTipoCliente", null); pesquisarActionForm.set("nomeCliente", ""); pesquisarActionForm.set("cepClienteEndereco", ""); pesquisarActionForm.set("cpf", ""); pesquisarActionForm.set("rg", ""); pesquisarActionForm.set("cnpj", ""); pesquisarActionForm.set("idMunicipioCliente", ""); pesquisarActionForm.set("descricaoMunicipioClienTabelaAuxiliarIndicadorActionFormte", ""); pesquisarActionForm.set("codigoBairroCliente", ""); pesquisarActionForm.set("descricaoBairroCliente", ""); pesquisarActionForm.set("idLogradouroCliente", ""); pesquisarActionForm.set("tipoPesquisa", ConstantesSistema.TIPO_PESQUISA_INICIAL.toString()); sessao.removeAttribute("caminhoRetornoTelaPesquisaMunicipio"); sessao.removeAttribute("caminhoRetornoTelaPesquisaBairro"); sessao.removeAttribute("caminhoRetornoTelaPesquisaLogradouro"); sessao.removeAttribute("idMunicipio"); } FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo( FiltroClienteTipo.DESCRICAO); if( httpServletRequest.getParameter("indicadorUsoTodos") == null ){ sessao.removeAttribute("indicadorUsoTodos"); filtroClienteTipo.adicionarParametro(new ParametroSimples( FiltroClienteTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); } else { sessao.setAttribute("indicadorUsoTodos", httpServletRequest.getParameter("indicadorUsoTodos")); } FiltroEsferaPoder filtroEsferaPoder = new FiltroEsferaPoder( FiltroEsferaPoder.DESCRICAO); Collection colecaoEsferaPoder = fachada.pesquisar(filtroEsferaPoder, EsferaPoder.class.getName()); httpServletRequest.setAttribute("colecaoEsferaPoder", colecaoEsferaPoder); // inicializa a cole��o Collection tiposClientes = null; // -------Parte que trata do c�digo quando o usu�rio tecla enter // caso seja o id do municipio String idDigitadoEnterMunicipio = (String) pesquisarActionForm .get("idMunicipioCliente"); // caso seja o codigo do bairro String codigoDigitadoEnterBairro = (String) pesquisarActionForm .get("codigoBairroCliente"); // caso seja o codigo do logradouro String codigoDigitadoEnterLogradouro = (String) pesquisarActionForm .get("idLogradouroCliente"); // Verifica se o c�digo foi digitado if (idDigitadoEnterMunicipio != null && !idDigitadoEnterMunicipio.trim().equals("") && Integer.parseInt(idDigitadoEnterMunicipio) > 0) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, idDigitadoEnterMunicipio)); if( httpServletRequest.getParameter("indicadorUsoTodos") == null ){ sessao.removeAttribute("indicadorUsoTodos"); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); } else { sessao.setAttribute("indicadorUsoTodos", httpServletRequest.getParameter("indicadorUsoTodos")); } Collection municipioEncontrado = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (municipioEncontrado != null && !municipioEncontrado.isEmpty()) { // O municipio foi encontrado pesquisarActionForm.set("idMunicipioCliente", "" + ((Municipio) ((List) municipioEncontrado).get(0)) .getId()); pesquisarActionForm.set("descricaoMunicipioClienTabelaAuxiliarIndicadorActionFormte", ((Municipio) ((List) municipioEncontrado).get(0)) .getNome()); httpServletRequest.setAttribute( "idMunicipioClienteNaoEncontrado", "true"); httpServletRequest.setAttribute("nomeCampo", "codigoBairroCliente"); } else { pesquisarActionForm.set("idMunicipioCliente", ""); httpServletRequest.setAttribute("nomeCampo", "idMunicipioCliente"); httpServletRequest.setAttribute( "idMunicipioClienteNaoEncontrado", "exception"); pesquisarActionForm.set("descricaoMunicipioClienTabelaAuxiliarIndicadorActionFormte", "Munic�pio inexistente"); } } // Verifica se o c�digo foi digitado if (codigoDigitadoEnterBairro != null && !codigoDigitadoEnterBairro.trim().equals("") && Integer.parseInt(codigoDigitadoEnterBairro) > 0) { FiltroBairro filtroBairro = new FiltroBairro(); if (idDigitadoEnterMunicipio != null && !idDigitadoEnterMunicipio.trim().equals("") && Integer.parseInt(idDigitadoEnterMunicipio) > 0) { filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.MUNICIPIO_ID, idDigitadoEnterMunicipio)); } filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.CODIGO, codigoDigitadoEnterBairro)); if( httpServletRequest.getParameter("indicadorUsoTodos") == null ){ sessao.removeAttribute("indicadorUsoTodos"); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); } else { sessao.setAttribute("indicadorUsoTodos", httpServletRequest.getParameter("indicadorUsoTodos")); } // 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 municipio foi encontrado pesquisarActionForm.set("codigoBairroCliente", "" + ((Bairro) ((List) bairroEncontrado).get(0)) .getCodigo()); pesquisarActionForm.set("descricaoBairroCliente", ((Bairro) ((List) bairroEncontrado).get(0)).getNome()); httpServletRequest.setAttribute( "codigoBairroClienteNaoEncontrado", "true"); httpServletRequest.setAttribute("nomeCampo", "logradouroCliente"); } else { pesquisarActionForm.set("codigoBairroCliente", ""); httpServletRequest.setAttribute( "codigoBairroClienteNaoEncontrado", "exception"); pesquisarActionForm.set("descricaoBairroCliente", "Bairro inexistente"); httpServletRequest.setAttribute("nomeCampo", "codigoBairroCliente"); } } // Verifica se o c�digo do logradouro foi digitado if (codigoDigitadoEnterLogradouro != null && !codigoDigitadoEnterLogradouro.trim().equals("") && Integer.parseInt(codigoDigitadoEnterLogradouro) > 0) { FiltroLogradouro filtroLogradouro = new FiltroLogradouro(); filtroLogradouro .adicionarCaminhoParaCarregamentoEntidade("logradouroTipo"); filtroLogradouro .adicionarCaminhoParaCarregamentoEntidade("logradouroTitulo"); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.ID, codigoDigitadoEnterLogradouro)); if( httpServletRequest.getParameter("indicadorUsoTodos") == null ){ sessao.removeAttribute("indicadorUsoTodos"); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); } Collection logradouroEncontrado = fachada.pesquisar( filtroLogradouro, Logradouro.class.getName()); if (logradouroEncontrado != null && !logradouroEncontrado.isEmpty()) { // O municipio foi encontrado Logradouro logradouro = (Logradouro) ((List) logradouroEncontrado) .get(0); String logradouroFormatado = logradouro.getDescricaoFormatada(); pesquisarActionForm.set("idLogradouroCliente", "" + logradouro.getId()); pesquisarActionForm.set("nomeLogradouroCliente", logradouroFormatado); httpServletRequest.setAttribute("idLogradouroNaoEncontrado", "true"); httpServletRequest.setAttribute("nomeCampo", "Button"); } else { pesquisarActionForm.set("idLogradouroCliente", ""); httpServletRequest.setAttribute("idLogradouroNaoEncontrado", "exception"); pesquisarActionForm.set("nomeLogradouroCliente", "Logradouro inexistente"); httpServletRequest.setAttribute("nomeCampo", "idLogradouro"); } } // -------Fim da Parte que trata do c�digo quando o usu�rio tecla enter tiposClientes = fachada.pesquisar(filtroClienteTipo, ClienteTipo.class .getName()); if (tiposClientes == null || tiposClientes.isEmpty()) { // Nenhuma empresa cadastrada new ActionServletException("atencao.pesquisa.nenhumresultado", null, "tipo cliente"); } else { sessao.setAttribute("tiposClientes", tiposClientes); } // Verifica se o tipoConsulta � diferente de nulo ou vazio esse tipo // consulta vem do // municipio_resultado_pesquisa.jsp ou do bairro_resultado_pesquisa.jsp. // � feita essa verifica��o pois pode ser que ainda n�o tenha // feito a pesquisa de municipio ou bairro. if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals("")) { // Verifica se o tipo da consulta de cliente � de municipio // se for os parametros de enviarDadosParametros ser�o mandados para // a pagina cliente_pesuisar.jsp if (httpServletRequest.getParameter("tipoConsulta").equals( "municipio")) { pesquisarActionForm.set("idMunicipioCliente", httpServletRequest.getParameter("idCampoEnviarDados")); pesquisarActionForm.set("descricaoMunicipioCliente", httpServletRequest .getParameter("descricaoCampoEnviarDados")); } // Verifica se o tipo da consulta de cliente � de bairro // se for os parametros de enviarDadosParametros ser�o mandados para // a pagina cliente_pesuisar.jsp if (httpServletRequest.getParameter("tipoConsulta") .equals("bairro")) { pesquisarActionForm.set("codigoBairroCliente", httpServletRequest.getParameter("idCampoEnviarDados")); pesquisarActionForm.set("descricaoBairroCliente", httpServletRequest .getParameter("descricaoCampoEnviarDados")); } // Verifica se o tipo da consulta de imovel � de logradouro // se for os parametros de enviarDadosParametros ser�o mandados para // a pagina cliente_pesuisar.jsp if (httpServletRequest.getParameter("tipoConsulta").equals( "logradouro")) { pesquisarActionForm.set("idLogradouroCliente", httpServletRequest.getParameter("idCampoEnviarDados")); pesquisarActionForm.set("nomeLogradouroCliente", httpServletRequest .getParameter("descricaoCampoEnviarDados")); } } // envia uma flag que ser� verificado no cliente_resultado_pesquisa.jsp // para saber se ir� usar o enviar dados ou o enviar dados parametros if (httpServletRequest .getParameter("caminhoRetornoTelaPesquisaCliente") != null && !"".equals(httpServletRequest.getParameter("caminhoRetornoTelaPesquisaCliente"))) { sessao.setAttribute("caminhoRetornoTelaPesquisaCliente", httpServletRequest .getParameter("caminhoRetornoTelaPesquisaCliente")); } else { if ((httpServletRequest .getParameter("objetoConsulta") == null || "".equals(httpServletRequest.getParameter("objetoConsulta"))) && (httpServletRequest .getParameter("voltarPesquisa") == null || "".equals(httpServletRequest.getParameter("voltarPesquisa"))) && (httpServletRequest.getParameter("tipoConsulta") == null || httpServletRequest.getParameter("tipoConsulta").equals(""))) { sessao.removeAttribute("caminhoRetornoTelaPesquisaCliente"); } } if (pesquisarActionForm.get("tipoPesquisa") == null || pesquisarActionForm.get("tipoPesquisa").equals("")) { pesquisarActionForm.set("tipoPesquisa", ConstantesSistema.TIPO_PESQUISA_INICIAL.toString()); } return retorno; } }