package gcom.gui.cadastro.cliente; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.cliente.FiltroClienteTipo; import gcom.cadastro.cliente.FiltroOrgaoExpedidorRg; import gcom.cadastro.cliente.FiltroPessoaSexo; import gcom.cadastro.cliente.FiltroProfissao; import gcom.cadastro.cliente.FiltroRamoAtividade; import gcom.cadastro.cliente.OrgaoExpedidorRg; import gcom.cadastro.cliente.PessoaSexo; import gcom.cadastro.cliente.Profissao; import gcom.cadastro.cliente.RamoAtividade; import gcom.cadastro.endereco.Cep; import gcom.cadastro.endereco.FiltroCep; 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.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; 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.DynaValidatorActionForm; /** * Pr�-processamento para a p�gina de filtro de cliente * * @author Rafael Corr�a * @created 23 de Julho de 2005 */ public class ExibirFiltrarClienteOutrosCriteriosAction extends GcomAction { /** * < <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) { ActionForward retorno = actionMapping .findForward("filtrarClienteOutrosCriterios"); DynaValidatorActionForm pesquisarActionForm = (DynaValidatorActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); // Carregar a data corrente do sistema // ==================================== SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); Calendar dataCorrente = new GregorianCalendar(); // Data Corrente httpServletRequest.setAttribute("dataAtual", formatoData .format(dataCorrente.getTime())); // Parte que pega as cole��es da sess�o // Cliente Tipo FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo(); filtroClienteTipo.adicionarParametro(new ParametroSimples( FiltroClienteTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroClienteTipo.setCampoOrderBy(FiltroClienteTipo.DESCRICAO); Collection clienteTipos = fachada.pesquisar(filtroClienteTipo, ClienteTipo.class.getName()); if (clienteTipos.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "tipo de cliente"); } else { sessao.setAttribute("clienteTipos", clienteTipos); } // �rg�o Expeditor FiltroOrgaoExpedidorRg filtroOrgaoExpedidorRg = new FiltroOrgaoExpedidorRg(); filtroOrgaoExpedidorRg.adicionarParametro(new ParametroSimples( FiltroOrgaoExpedidorRg.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroOrgaoExpedidorRg .setCampoOrderBy(FiltroOrgaoExpedidorRg.DESCRICAO); Collection orgaosExpeditores = fachada.pesquisar( filtroOrgaoExpedidorRg, OrgaoExpedidorRg.class.getName()); if (orgaosExpeditores.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "�rg�o expeditor"); } else { sessao.setAttribute("orgaosExpeditores", orgaosExpeditores); } // Ramo de Atividade FiltroRamoAtividade filtroRamoAtividade = new FiltroRamoAtividade(); filtroRamoAtividade.adicionarParametro(new ParametroSimples( FiltroRamoAtividade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroRamoAtividade.setCampoOrderBy(FiltroRamoAtividade.DESCRICAO); Collection ramosAtividades = fachada.pesquisar(filtroRamoAtividade, RamoAtividade.class.getName()); if (ramosAtividades.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "ramo de atividade"); } else { sessao.setAttribute("ramosAtividades", ramosAtividades); } // Profiss�o FiltroProfissao filtroProfissao = new FiltroProfissao(); filtroProfissao.adicionarParametro(new ParametroSimples( FiltroProfissao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroProfissao.setCampoOrderBy(FiltroProfissao.DESCRICAO); Collection profissoes = fachada.pesquisar(filtroProfissao, Profissao.class.getName()); if (profissoes.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "profiss�o"); } else { sessao.setAttribute("profissoes", profissoes); } // Sexo FiltroPessoaSexo filtroPessoaSexo = new FiltroPessoaSexo(); filtroPessoaSexo.adicionarParametro(new ParametroSimples( FiltroPessoaSexo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroPessoaSexo.setCampoOrderBy(FiltroPessoaSexo.DESCRICAO); Collection sexos = fachada.pesquisar(filtroPessoaSexo, PessoaSexo.class .getName()); if (sexos.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "sexos"); } else { sessao.setAttribute("sexos", sexos); } // Verifica��o de Tipo Cliente String idTipoCliente = (String) pesquisarActionForm.get("tipoCliente"); if (idTipoCliente != null && !idTipoCliente.equals("" + (ConstantesSistema.NUMERO_NAO_INFORMADO)) && !idTipoCliente.equals("")) { FiltroClienteTipo filtroClienteTipoPesquisado = new FiltroClienteTipo(); filtroClienteTipoPesquisado .adicionarParametro(new ParametroSimples( FiltroClienteTipo.ID, idTipoCliente)); Collection tiposClientePesquisados = fachada.pesquisar( filtroClienteTipoPesquisado, ClienteTipo.class.getName()); if (tiposClientePesquisados != null && !tiposClientePesquisados.isEmpty()) { ClienteTipo clienteTipo = (ClienteTipo) ((List) tiposClientePesquisados) .get(0); // Verificar se pessoa f�sica ou jur�dica if (clienteTipo.getIndicadorPessoaFisicaJuridica().equals( ClienteTipo.INDICADOR_PESSOA_FISICA)) { httpServletRequest.setAttribute("pessoaFisica", "true"); pesquisarActionForm.set("cnpj", ""); pesquisarActionForm.set("idClienteResponsavel", ""); pesquisarActionForm.set("nomeClienteResponsavel", ""); pesquisarActionForm.set("ramoAtividade", "" + ConstantesSistema.NUMERO_NAO_INFORMADO); } else { httpServletRequest.setAttribute("pessoaJuridica", "true"); pesquisarActionForm.set("cpf", ""); pesquisarActionForm.set("rg", ""); pesquisarActionForm.set("dataEmissao", ""); pesquisarActionForm.set("dataNascimento", ""); pesquisarActionForm.set("orgaoEmissor", "" + ConstantesSistema.NUMERO_NAO_INFORMADO); pesquisarActionForm.set("profissao", "" + ConstantesSistema.NUMERO_NAO_INFORMADO); pesquisarActionForm.set("sexo", "" + ConstantesSistema.NUMERO_NAO_INFORMADO); } } } // -------Parte que trata do c�digo quando o usu�rio tecla enter // Im�vel String idImovel = (String) pesquisarActionForm.get("idImovel"); if (idImovel != null && !idImovel.equals("")) { FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("setorComercial.municipio.unidadeFederacao"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("perimetroInicial.logradouroTipo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("perimetroInicial.logradouroTitulo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("perimetroFinal.logradouroTipo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("perimetroFinal.logradouroTitulo"); filtroImovel.adicionarParametro(new ParametroSimples( FiltroImovel.ID, idImovel)); Collection imoveis = fachada.pesquisar(filtroImovel, Imovel.class .getName()); if (imoveis != null && !imoveis.isEmpty()) { Imovel imovel = (Imovel) ((List) imoveis).get(0); pesquisarActionForm.set("inscricao", imovel .getInscricaoFormatada()); httpServletRequest.setAttribute("imovel", imovel); } else { httpServletRequest.setAttribute("matriculaInexistente", true); pesquisarActionForm.set("idImovel", ""); pesquisarActionForm.set("inscricao", "MATR�CULA DO IM�VEL INEXISTENTE"); } } // Cliente String idCliente = (String) pesquisarActionForm.get("idCliente"); if (idCliente != null && !idCliente.equals("")) { FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.ID, idCliente)); Collection clientes = fachada.pesquisar(filtroCliente, Cliente.class.getName()); if (clientes != null && !clientes.isEmpty()) { Cliente cliente = (Cliente) ((List) clientes).get(0); pesquisarActionForm.set("nomeCliente", cliente.getNome()); } else { httpServletRequest.setAttribute("clienteInexistente", "true"); } } // Cliente Respons�vel Superior String idClienteResponsavel = (String) pesquisarActionForm .get("idClienteResponsavel"); if (idClienteResponsavel != null && !idClienteResponsavel.equals("")) { FiltroCliente filtroClienteResponsavel = new FiltroCliente(); filtroClienteResponsavel.adicionarParametro(new ParametroSimples( FiltroCliente.ID, idClienteResponsavel)); filtroClienteResponsavel.adicionarCaminhoParaCarregamentoEntidade("clienteTipo"); Collection clientesResponsaveis = fachada.pesquisar( filtroClienteResponsavel, Cliente.class.getName()); if (clientesResponsaveis != null && !clientesResponsaveis.isEmpty()) { Cliente clienteReponsavel = (Cliente) ((List) clientesResponsaveis) .get(0); if (clienteReponsavel.getClienteTipo().getIndicadorPessoaFisicaJuridica().equals( ClienteTipo.INDICADOR_PESSOA_JURIDICA)) { pesquisarActionForm.set("nomeClienteResponsavel", clienteReponsavel.getNome()); } else { throw new ActionServletException( "atencao.cliente_responsavel.informado.pessoa_fisica"); } } else { pesquisarActionForm.set("idClienteResponsavel", ""); pesquisarActionForm.set("nomeClienteResponsavel", "Cliente Inexistente"); httpServletRequest.setAttribute("clienteNaoEncontrado", "true"); } } // Cep String codigoCep = (String) pesquisarActionForm.get("cep"); if (codigoCep != null && !codigoCep.equals("")) { FiltroCep filtroCep = new FiltroCep(); filtroCep.adicionarParametro(new ParametroSimples(FiltroCep.CODIGO, codigoCep)); Collection ceps = fachada.pesquisar(filtroCep, Cep.class.getName()); if (ceps != null && !ceps.isEmpty()) { Cep cep = (Cep) ((List) ceps).get(0); pesquisarActionForm.set("cep", "" + cep.getCodigo()); pesquisarActionForm.set("descricaoCep", cep.getDescricaoLogradouroFormatada()); } else { pesquisarActionForm.set("cep", ""); httpServletRequest.setAttribute("cepInexistente", true); pesquisarActionForm.set("descricaoCep", "CEP Inexistente"); } } // C�digo do Munic�pio String codigoDigitadoMunicipioEnter = (String) pesquisarActionForm .get("idMunicipio"); // Verifica se o c�digo foi digitado if (codigoDigitadoMunicipioEnter != null && !codigoDigitadoMunicipioEnter.trim().equals("") && Integer.parseInt(codigoDigitadoMunicipioEnter) > 0) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, codigoDigitadoMunicipioEnter)); 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 pesquisarActionForm.set("idMunicipio", "" + ((Municipio) ((List) municipioEncontrado).get(0)) .getId()); pesquisarActionForm.set("descricaoMunicipioCliente", ((Municipio) ((List) municipioEncontrado).get(0)) .getNome()); // httpServletRequest.setAttribute("municipioNaoEncontrado", // "true"); } else { pesquisarActionForm.set("idMunicipio", ""); httpServletRequest.setAttribute("municipioNaoEncontrado", "exception"); pesquisarActionForm.set("descricaoMunicipioCliente", "Munic�pio inexistente"); } } // C�digo do Bairro String codigoDigitadoBairroEnter = (String) pesquisarActionForm .get("codigoBairro"); // Verifica se o c�digo foi digitado if (codigoDigitadoBairroEnter != null && !codigoDigitadoBairroEnter.trim().equals("") && Integer.parseInt(codigoDigitadoBairroEnter) > 0) { FiltroBairro filtroBairro = new FiltroBairro(); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.CODIGO, codigoDigitadoBairroEnter)); filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Adiciona a busca por munic�pio se ele foi digitado na p�gina if (codigoDigitadoMunicipioEnter != null && !codigoDigitadoMunicipioEnter.equalsIgnoreCase("")) { filtroBairro .adicionarParametro(new ParametroSimples( FiltroBairro.MUNICIPIO_ID, codigoDigitadoMunicipioEnter)); } Collection bairroEncontrado = fachada.pesquisar(filtroBairro, Bairro.class.getName()); if (bairroEncontrado != null && !bairroEncontrado.isEmpty()) { // O bairro foi encontrado pesquisarActionForm.set("codigoBairro", "" + ((Bairro) ((List) bairroEncontrado).get(0)) .getCodigo()); pesquisarActionForm.set("descricaoBairroCliente", ((Bairro) ((List) bairroEncontrado).get(0)).getNome()); // httpServletRequest.setAttribute("bairroNaoEncontrado", // "true"); } else { pesquisarActionForm.set("codigoBairro", ""); httpServletRequest.setAttribute("bairroNaoEncontrado", "exception"); pesquisarActionForm.set("descricaoBairroCliente", "Bairro inexistente"); } } // C�digo do Logradouro String codigoDigitadoLogradouroEnter = (String) pesquisarActionForm .get("idLogradouro"); // Verifica se o c�digo foi digitado if (codigoDigitadoLogradouroEnter != null && !codigoDigitadoLogradouroEnter.trim().equals("") && Integer.parseInt(codigoDigitadoLogradouroEnter) > 0) { FiltroLogradouro filtroLogradouro = new FiltroLogradouro(); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.ID, codigoDigitadoLogradouroEnter)); filtroLogradouro.adicionarParametro(new ParametroSimples( FiltroLogradouro.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Adiciona a busca por munic�pio se ele foi digitado na p�gina // if (codigoDigitadoMunicipioEnter != null // && !codigoDigitadoMunicipioEnter.equalsIgnoreCase("")) { // filtroLogradouro.adicionarParametro(new // ParametroSimples(FiltroLogradouro.ID_MUNICIPIO, // codigoDigitadoMunicipioEnter)); // } Collection logradouroEncontrado = fachada.pesquisar( filtroLogradouro, Logradouro.class.getName()); if (logradouroEncontrado != null && !logradouroEncontrado.isEmpty()) { // O logradouro foi encontrado pesquisarActionForm.set("idLogradouro", "" + ((Logradouro) ((List) logradouroEncontrado).get(0)) .getId()); pesquisarActionForm.set("descricaoLogradouroCliente", ((Logradouro) ((List) logradouroEncontrado).get(0)) .getNome()); // httpServletRequest.setAttribute("bairroNaoEncontrado", // "true"); } else { pesquisarActionForm.set("idLogradouro", ""); httpServletRequest.setAttribute("logradouroNaoEncontrado", "exception"); pesquisarActionForm.set("descricaoLogradouroCliente", "Logradouro inexistente"); } } return retorno; } }