package gcom.gui.cadastro.cliente; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesColecao; import java.util.Collection; import java.util.Date; 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; public class FiltrarClienteOutrosCriteriosAction 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) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("gerarRelatorioCliente"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); DynaValidatorForm pesquisarActionForm = (DynaValidatorForm) actionForm; sessao.removeAttribute("clientesNovos"); String indicadorTela = httpServletRequest.getParameter("indicadorTela"); // Recupera os par�metros do form String id = (String) pesquisarActionForm.get("idCliente"); String nome = (String) pesquisarActionForm.get("nomeCliente"); String nomeAbreviado = (String) pesquisarActionForm .get("nomeAbreviadoCliente"); String matriculaImovel = (String) pesquisarActionForm.get("idImovel"); String tipoCliente = (String) pesquisarActionForm.get("tipoCliente"); String cpf = (String) pesquisarActionForm.get("cpf"); String cnpj = (String) pesquisarActionForm.get("cnpj"); String rg = (String) pesquisarActionForm.get("rg"); String ramoAtividade = (String) pesquisarActionForm .get("ramoAtividade"); String dataEmissao = (String) pesquisarActionForm.get("dataEmissao"); String orgaoEmissor = (String) pesquisarActionForm.get("orgaoEmissor"); String dataNascimento = (String) pesquisarActionForm .get("dataNascimento"); String idClienteResponsavel = (String) pesquisarActionForm .get("idClienteResponsavel"); String profissao = (String) pesquisarActionForm.get("profissao"); String email = (String) pesquisarActionForm.get("email"); String cep = (String) pesquisarActionForm.get("cep"); String idMunicipioCliente = (String) pesquisarActionForm .get("idMunicipio"); String codigoBairroCliente = (String) pesquisarActionForm .get("codigoBairro"); String logradouroCliente = (String) pesquisarActionForm .get("idLogradouro"); String indicadorUso = (String) pesquisarActionForm.get("indicadorUso"); String sexo = (String) pesquisarActionForm.get("sexo"); // cria o filtro para Tabela Auxiliar FiltroCliente filtroCliente = new FiltroCliente(); boolean peloMenosUmParametroInformado = false; // Insere os par�metros informados no filtro if (id != null && !id.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.ID, id)); } if (cpf != null && !cpf.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.CPF, cpf)); } if (rg != null && !rg.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.RG, rg)); } if (cnpj != null && !cnpj.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.CNPJ, cnpj)); } if (nome != null && !nome.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ComparacaoTexto( FiltroCliente.NOME, nome)); } if (idMunicipioCliente != null && !idMunicipioCliente.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimplesColecao( FiltroCliente.MUNICIPIO_ID, idMunicipioCliente)); } if (codigoBairroCliente != null && !codigoBairroCliente.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimplesColecao( FiltroCliente.BAIRRO_CODIGO, codigoBairroCliente)); } if (logradouroCliente != null && !logradouroCliente.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimplesColecao( FiltroCliente.LOGRADOURO, logradouroCliente)); } if (indicadorUso != null && !indicadorUso.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.INDICADOR_USO, indicadorUso)); } if (cep != null && !cep.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimplesColecao( FiltroCliente.CEP, cep)); } if (nomeAbreviado != null && !nomeAbreviado.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ComparacaoTexto( FiltroCliente.NOME_ABREVIADO, nomeAbreviado)); } if (tipoCliente != null && !tipoCliente.equals(String .valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO)) && !tipoCliente.equals("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.TIPOCLIENTE_ID, tipoCliente)); } if (profissao != null && !profissao.equals(String .valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO)) && !profissao.equals("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.PROFISSAO_ID, profissao)); } if (matriculaImovel != null && !matriculaImovel.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente .adicionarParametro(new ParametroSimplesColecao( FiltroCliente.IMOVEL_ID, matriculaImovel)); } if (email != null && !email.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ComparacaoTexto( FiltroCliente.EMAIL, email)); } if (ramoAtividade != null && !ramoAtividade.equals(String .valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO)) && !ramoAtividade.equals("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.RAMO_ATIVIDADE_ID, ramoAtividade)); } if (dataEmissao != null && !dataEmissao.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; Date dataEmissaoParametro = Util.converteStringParaDate(dataEmissao); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.DATA_EMISSAO_RG, dataEmissaoParametro)); } if (dataNascimento != null && !dataNascimento.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; Date dataNascimentoParametro = Util.converteStringParaDate(dataNascimento); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.DATA_NASCIMENTO, dataNascimentoParametro)); } if (orgaoEmissor != null && !orgaoEmissor.equals(String .valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO)) && !orgaoEmissor.equals("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.ORGAO_EXPEDIDOR_RG, orgaoEmissor)); } if (idClienteResponsavel != null && !idClienteResponsavel.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.CLIENTE_RESPONSAVEL_ID, idClienteResponsavel)); } if (sexo != null && !sexo.equals(String .valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO)) && !sexo.equals("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.SEXO_ID, sexo)); } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // if (fachada.registroMaximo(Cliente.class) > // ConstantesSistema.NUMERO_MAXIMO_REGISTROS_MANUTENCAO) { // Se o limite de registros foi atingido, a p�gina de filtragem // � chamada // retorno = actionMapping.findForward("filtrarClienteOutrosCriterios"); // } // A pesquisa de clientes s� ser� feita se o forward estiver direcionado // para a p�gina de manterEmpresa // Seta a ordena��o desejada do filtro filtroCliente.setCampoOrderBy(FiltroCliente.NOME); // // filtroCliente // .adicionarCaminhoParaCarregamentoEntidade("clienteTipo"); // filtroCliente.adicionarCaminhoParaCarregamentoEntidade("clienteEndereco.logradouroCep.cep"); // filtroCliente // .adicionarCaminhoParaCarregamentoEntidade("clienteEndereco.logradouroCep.logradouro.municipio"); // filtroCliente // .adicionarCaminhoParaCarregamentoEntidade("clienteEndereco.logradouroCep.logradouro.logradouroTipo"); // filtroCliente // .adicionarCaminhoParaCarregamentoEntidade("clienteEndereco.logradouroCep.logradouro.logradouroTitulo"); // filtroCliente // .adicionarCaminhoParaCarregamentoEntidade("clienteEndereco.enderecoReferencia"); // filtroCliente // .adicionarCaminhoParaCarregamentoEntidade("clienteEndereco.logradouroBairro.bairro.municipio.unidadeFederacao"); // filtroCliente // .adicionarCaminhoParaCarregamentoEntidade("cliente"); Collection<Cliente> clientesNovos = fachada .pesquisarClienteOutrosCriterios(filtroCliente); if (clientesNovos == null || clientesNovos.isEmpty()) { // Nenhum cliente cadastrado throw new ActionServletException("atencao.pesquisa.nenhumresultado", null, "cliente"); } // A cole��o fica na sess�o devido ao esquema de pagina��o sessao.setAttribute("clientesNovos", clientesNovos); sessao.setAttribute("indicadorTela", indicadorTela); sessao.setAttribute("filtroCliente", filtroCliente); sessao.setAttribute("clienteOutrosCriterios", true); // Manda o filtro pelo request para o ExibirManterClienteAction // httpServletRequest.setAttribute("filtroClienteEndereco", // filtroClienteEndereco); // Devolve o mapeamento de retorno return retorno; } }