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 java.util.Collection; 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 para a pr�-exibi��o da p�gina de Manter Cliente * * @author rodrigo */ public class ExibirManterClienteAction 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("manterCliente"); Fachada fachada = Fachada.getInstancia(); Collection<Cliente> clientes = null; //Mudar isso quando implementar a parte de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Parte da verifica��o do filtro FiltroCliente filtroCliente = null; String codigo = (String) sessao.getAttribute("codigo"); String cpf = (String) sessao.getAttribute("cpf"); String rg = (String) sessao.getAttribute("rg"); String cnpj = (String) sessao.getAttribute("cnpj"); String nome = (String) sessao.getAttribute("nome"); String nomeMae = (String) sessao.getAttribute("nomeMae"); String cep = (String) sessao.getAttribute("cep"); String idMunicipio = (String) sessao.getAttribute("idMunicipio"); String codigoBairro = (String) sessao.getAttribute("codigoBairro"); String idLogradouro = (String) sessao.getAttribute("idLogradouro"); String indicadorUso = (String) sessao.getAttribute("indicadorUso"); String tipoPesquisa = (String) sessao.getAttribute("tipoPesquisa"); String tipoPesquisaNomeMae = (String) sessao.getAttribute("tipoPesquisaNomeMae"); String idEsferaPoder = (String) sessao.getAttribute("idEsferaPoder"); // Verifica se o filtro foi informado pela p�gina de filtragem de // cliente if (sessao.getAttribute("filtroCliente") != null ) { filtroCliente = (FiltroCliente) sessao .getAttribute("filtroCliente"); } else { // Caso o exibirManterCliente n�o tenha passado por algum esquema de // filtro, a quantidade de registros � verificada para avaliar a necessidade // de filtragem filtroCliente = new FiltroCliente(); retorno = actionMapping.findForward("filtrarCliente"); // c�digo para checar ou nao o Atualizar String primeiraVez = httpServletRequest.getParameter("menu"); if (primeiraVez != null && !primeiraVez.equals("")) { //pesquisarActionForm.reset(); //pesquisarActionForm.set("indicadorUso", ""); sessao.setAttribute("indicadorAtualizar","1"); } if (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer").equalsIgnoreCase("S")) { //Limpando o formulario //pesquisarActionForm.reset(); sessao.setAttribute("indicadorAtualizar","1"); } sessao.removeAttribute("voltar"); sessao.removeAttribute("idRegistroAtualizacao"); } // A pesquisa de clientes s� ser� feita se o forward estiver direcionado // para a p�gina de manterEmpresa if (retorno.getName().equalsIgnoreCase("manterCliente")) { sessao.removeAttribute("atualizar"); // Seta a ordena��o desejada do filtro filtroCliente.setCampoOrderBy(FiltroCliente.NOME); filtroCliente .adicionarCaminhoParaCarregamentoEntidade("clienteTipo"); /*filtroCliente .adicionarCaminhoParaCarregamentoEntidade(FiltroCliente.ORGAO_EXPEDIDOR_RG);*/ filtroCliente .adicionarCaminhoParaCarregamentoEntidade(FiltroCliente.UNIDADE_FEDERACAO); // 1� Passo - Pegar o total de registros atrav�s de um count da consulta que aparecer� na tela //Integer totalRegistros = fachada /// .pesquisarClienteDadosClienteEnderecoCount(filtroCliente); Integer totalRegistros = (Integer) fachada.filtrarQuantidadeCliente(codigo, cpf, rg, cnpj, nome, nomeMae, cep, idMunicipio, codigoBairro, idLogradouro, indicadorUso, tipoPesquisa, tipoPesquisaNomeMae, null, idEsferaPoder); // 2� Passo - Chamar a fun��o de Pagina��o passando o total de registros retorno = this.controlarPaginacao(httpServletRequest, retorno, totalRegistros); // 3� Passo - Obter a cole��o da consulta que aparecer� na tela passando o numero de paginas // da pesquisa que est� no request //clientes = fachada // .pesquisarClienteDadosClienteEndereco(filtroCliente, (Integer) httpServletRequest // .getAttribute("numeroPaginasPesquisa")); clientes = fachada.filtrarCliente( codigo, cpf, rg, cnpj, nome, nomeMae, cep, idMunicipio, codigoBairro, idLogradouro, indicadorUso, tipoPesquisa, tipoPesquisaNomeMae, null, idEsferaPoder, (Integer) httpServletRequest .getAttribute("numeroPaginasPesquisa")); if (clientes == null || clientes.isEmpty()) { // Nenhum cliente cadastrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado"); } if (clientes.size()== 1 && httpServletRequest.getAttribute("atualizar") != null && (httpServletRequest.getParameter("page.offset") == null || httpServletRequest .getParameter("page.offset").equals("1"))){ // caso o resultado do filtro s� retorne um registro // e o check box Atualizar estiver selecionado //o sistema n�o exibe a tela de manter, exibe a de atualizar retorno = actionMapping.findForward("atualizarCliente"); Cliente cliente = (Cliente)clientes.iterator().next(); httpServletRequest .setAttribute("idRegistroAtualizacao", cliente.getId().toString()); sessao .setAttribute("atualizar","atualizar"); }else{ // A cole��o fica na sess�o devido ao esquema de pagina��o sessao.setAttribute("clientes", clientes); } } return retorno; } }