package gcom.gui.cadastro.cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.gui.ActionServletException; import gcom.util.ConstantesSistema; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ComparacaoTextoCompleto; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesColecao; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Action que filtra os clientes do sistema de acordo com os par�mentros informados * pelo usu�rio. * * @author Rodrigo * @date 23/07/2005 */ public class FiltrarClienteAction extends Action { /** * <Breve descri��o sobre o caso de uso> * * <Identificador e nome do caso de uso> * * @author Rodrigo * @date 23/07/2005 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("retornarFiltroCliente"); // Mudar isso quando implementar a parte de seguran�a HttpSession sessao = httpServletRequest.getSession(false); FiltrarClienteActionForm filtrarClienteActionForm = (FiltrarClienteActionForm) actionForm; // Recupera os par�metros do form String id = (String) filtrarClienteActionForm.getCodigoClienteFiltro(); String cpf = (String) filtrarClienteActionForm.getCpfClienteFiltro(); String rg = (String) filtrarClienteActionForm.getRgClienteFiltro(); String cnpj = (String) filtrarClienteActionForm.getCnpjClienteFiltro(); String nome = (String) filtrarClienteActionForm.getNomeClienteFiltro(); String nomeMae = (String) filtrarClienteActionForm.getNomeMaeClienteFiltro(); String cep = (String) filtrarClienteActionForm.getCepClienteFiltro(); String idMunicipioCliente = (String) filtrarClienteActionForm.getMunicipioClienteFiltro(); String codigoBairroCliente = (String) filtrarClienteActionForm.getBairroClienteFiltro(); String idLogradouro = (String) filtrarClienteActionForm.getLogradouroClienteFiltro(); String indicadorUso = (String) filtrarClienteActionForm.getIndicadorUsoClienteFiltro(); String tipoPesquisa = (String) filtrarClienteActionForm.getTipoPesquisa(); String tipoPesquisaNomeMae = (String) filtrarClienteActionForm.getTipoPesquisaNomeMae(); String idEsferaPoder = (String) filtrarClienteActionForm.getIdEsferaPoder(); String atualizar = (String)httpServletRequest.getParameter("atualizarFiltro"); sessao.setAttribute("atualizar", atualizar); if (atualizar != null && atualizar.equals("1")) { httpServletRequest.setAttribute("atualizar", atualizar); }else{ filtrarClienteActionForm.setAtualizarFiltro(""); } // cria o filtro para Tabela Auxiliar FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.setCampoOrderBy(FiltroCliente.NOME); /*filtroCliente .adicionarCaminhoParaCarregamentoEntidade(FiltroCliente.ORGAO_EXPEDIDOR_RG);*/ filtroCliente .adicionarCaminhoParaCarregamentoEntidade(FiltroCliente.UNIDADE_FEDERACAO); filtroCliente .adicionarCaminhoParaCarregamentoEntidade("cliente"); filtroCliente .adicionarCaminhoParaCarregamentoEntidade("cliente.clienteTipo"); filtroCliente .adicionarCaminhoParaCarregamentoEntidade("clienteTipo"); 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; if (tipoPesquisa != null && tipoPesquisa .equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA .toString())) { filtroCliente.adicionarParametro(new ComparacaoTextoCompleto( FiltroCliente.NOME, nome)); } else { filtroCliente.adicionarParametro(new ComparacaoTexto( FiltroCliente.NOME, nome)); } } //Nome da M�e if (nomeMae != null && !nomeMae.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; if (tipoPesquisaNomeMae != null && tipoPesquisaNomeMae .equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA .toString())) { filtroCliente.adicionarParametro(new ComparacaoTextoCompleto( FiltroCliente.NOME_MAE, nomeMae)); } else { filtroCliente.adicionarParametro(new ComparacaoTexto( FiltroCliente.NOME_MAE, nomeMae)); } } if (codigoBairroCliente != null && !codigoBairroCliente.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimplesColecao( FiltroCliente.BAIRRO_CODIGO, codigoBairroCliente)); } if (idLogradouro != null && !idLogradouro.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimplesColecao( FiltroCliente.LOGRADOURO, idLogradouro)); } 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 (idMunicipioCliente != null && !idMunicipioCliente.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimplesColecao( FiltroCliente.MUNICIPIO_ID, idMunicipioCliente)); } if (idEsferaPoder != null && !idEsferaPoder.trim().equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { peloMenosUmParametroInformado = true; filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ESFERA_PODER_ID, idEsferaPoder)); } // Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } filtroCliente.setCampoDistinct(FiltroCliente.NOME); // Manda o filtro pela sess�o para o ExibirManterClienteAction sessao.setAttribute("filtroCliente", filtroCliente); sessao.setAttribute("codigo",(String) filtrarClienteActionForm.getCodigoClienteFiltro()); sessao.setAttribute("cpf",(String) filtrarClienteActionForm.getCpfClienteFiltro()); sessao.setAttribute("rg",(String) filtrarClienteActionForm.getRgClienteFiltro()); sessao.setAttribute("cnpj",(String) filtrarClienteActionForm.getCnpjClienteFiltro()); sessao.setAttribute("nome",(String) filtrarClienteActionForm.getNomeClienteFiltro()); sessao.setAttribute("nomeMae",(String) filtrarClienteActionForm.getNomeMaeClienteFiltro()); sessao.setAttribute("cep",(String) filtrarClienteActionForm.getCepClienteFiltro()); sessao.setAttribute("idMunicipio",(String) filtrarClienteActionForm.getMunicipioClienteFiltro()); sessao.setAttribute("codigoBairro",(String) filtrarClienteActionForm.getBairroClienteFiltro()); sessao.setAttribute("idLogradouro",(String) filtrarClienteActionForm.getLogradouroClienteFiltro()); sessao.setAttribute("indicadorUso",(String) filtrarClienteActionForm.getIndicadorUsoClienteFiltro()); sessao.setAttribute("tipoPesquisa",(String) filtrarClienteActionForm.getTipoPesquisa()); sessao.setAttribute("tipoPesquisaNomeMae",(String) filtrarClienteActionForm.getTipoPesquisaNomeMae()); sessao.setAttribute("idEsferaPoder",(String) filtrarClienteActionForm.getIdEsferaPoder()); // Devolve o mapeamento de retorno return retorno; } }