/* * Copyright (C) 2007-2007 the GSAN - Sistema Integrado de Gestão de Serviços de Saneamento * * This file is part of GSAN, an integrated service management system for Sanitation * * GSAN is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License. * * GSAN is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ /* * GSAN - Sistema Integrado de Gestão de Serviços de Saneamento * Copyright (C) <2007> * Adriano Britto Siqueira * Alexandre Santos Cabral * Ana Carolina Alves Breda * Ana Maria Andrade Cavalcante * Aryed Lins de Araújo * Bruno Leonardo Rodrigues Barros * Carlos Elmano Rodrigues Ferreira * Cláudio de Andrade Lira * Denys Guimarães Guenes Tavares * Eduardo Breckenfeld da Rosa Borges * Fabíola Gomes de Araújo * Flávio Leonardo Cavalcanti Cordeiro * Francisco do Nascimento Júnior * Homero Sampaio Cavalcanti * Ivan Sérgio da Silva Júnior * José Edmar de Siqueira * José Thiago Tenório Lopes * Kássia Regina Silvestre de Albuquerque * Leonardo Luiz Vieira da Silva * Márcio Roberto Batista da Silva * Maria de Fátima Sampaio Leite * Micaela Maria Coelho de Araújo * Nelson Mendonça de Carvalho * Newton Morais e Silva * Pedro Alexandre Santos da Silva Filho * Rafael Corrêa Lima e Silva * Rafael Francisco Pinto * Rafael Koury Monteiro * Rafael Palermo de Araújo * Raphael Veras Rossiter * Roberto Sobreira Barbalho * Rodrigo Avellar Silveira * Rosana Carvalho Barbosa * Sávio Luiz de Andrade Cavalcante * Tai Mu Shih * Thiago Augusto Souza do Nascimento * Tiago Moreno Rodrigues * Vivianne Barbosa Sousa * * Este programa é software livre; você pode redistribuí-lo e/ou * modificá-lo sob os termos de Licença Pública Geral GNU, conforme * publicada pela Free Software Foundation; versão 2 da * Licença. * Este programa é distribuído na expectativa de ser útil, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais * detalhes. * Você deve ter recebido uma cópia da Licença Pública Geral GNU * junto com este programa; se não, escreva para Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ package gcom.gui.cadastro.cliente; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.EstadoCivil; import gcom.cadastro.cliente.FiltroCliente; import gcom.cadastro.cliente.FiltroClienteTipo; import gcom.cadastro.cliente.FiltroEstadoCivil; import gcom.cadastro.cliente.FiltroNacionalidade; import gcom.cadastro.cliente.FiltroOrgaoExpedidorRg; import gcom.cadastro.cliente.FiltroPessoaSexo; import gcom.cadastro.cliente.FiltroProfissao; import gcom.cadastro.cliente.FiltroRamoAtividade; import gcom.cadastro.cliente.Nacionalidade; import gcom.cadastro.cliente.OrgaoExpedidorRg; import gcom.cadastro.cliente.PessoaSexo; import gcom.cadastro.cliente.Profissao; import gcom.cadastro.cliente.RamoAtividade; import gcom.cadastro.geografico.FiltroUnidadeFederacao; import gcom.cadastro.geografico.UnidadeFederacao; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.parametrosistema.ParametroSistema; import gcom.util.ConstantesSistema; import gcom.util.Util; 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; /** * Description of the Class * * @author Rodrigo */ public class ExibirAtualizarClientePessoaAction extends GcomAction { /** * < > * * @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) { DynaValidatorForm clienteActionForm = (DynaValidatorForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Verifica se o usuário escolheu algum tipo de pessoa para que seja // mostrada a página de // pessoa física ou de jurídica, se nada estiver especificado a página // selecionada será a de // pessoa física Short tipoPessoa = (Short) clienteActionForm.get("tipoPessoa"); String tipoPessoaForm = tipoPessoa.toString() ; FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo(); filtroClienteTipo.adicionarParametro(new ParametroSimples( FiltroClienteTipo.ID, tipoPessoaForm)); tipoPessoa = ((ClienteTipo) fachada.pesquisar(filtroClienteTipo, ClienteTipo.class.getName()).iterator().next()) .getIndicadorPessoaFisicaJuridica(); ActionForward retorno = actionMapping .findForward("atualizarClientePessoaFisica"); //Obtém a sessão HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); // ------------------------------------------------------------------------------------------- // Alterado por : Davi Menezes - data : 10/08/2011 // Analista : Rafael Pinto. // [UC0009] - [FS0014] - Verificar obrigatoriedade // ------------------------------------------------------------------------------------------- // Se o usuário não tem permissão especial. boolean temPermissaoParaAlterarClienteSemCpf = fachada.verificarPermissaoEspecial(PermissaoEspecial.MANTER_CLIENTE_SEM_CPF_CNPJ, usuarioLogado); SistemaParametro sistemaParametro = this.getSistemaParametro(); if(sistemaParametro.getIndicadorDocumentoObrigatorioManterCliente() == ConstantesSistema.NAO.shortValue()){ temPermissaoParaAlterarClienteSemCpf = true; } httpServletRequest.setAttribute("temPermissaoParaAlterarClienteSemCpf", temPermissaoParaAlterarClienteSemCpf); // ------------------------------------------------------------------------------------------- ParametroSistema parametroSistema = fachada.pesquisarParametroSistema(ParametroSistema.INDICADOR_OBRIGATORIO_CLIENTE_DATA_NASCIMENTO); if (parametroSistema != null && parametroSistema.getValorParametro() != null){ if (parametroSistema.getValorParametro().equals("2")){ httpServletRequest.setAttribute("temPermissaoParaIncluirClienteSemDataNascimento", true); }else{ httpServletRequest.setAttribute("temPermissaoParaIncluirClienteSemDataNascimento", false); } }else{ httpServletRequest.setAttribute("temPermissaoParaIncluirClienteSemDataNascimento", true); } if (tipoPessoa != null && tipoPessoa.equals(ClienteTipo.INDICADOR_PESSOA_JURIDICA)) { // Limpar todo o conteúdo da página de pessoa física clienteActionForm.set("cpf", ""); clienteActionForm.set("rg", ""); clienteActionForm.set("dataEmissao", ""); clienteActionForm.set("idOrgaoExpedidor", new Integer( ConstantesSistema.NUMERO_NAO_INFORMADO)); //clienteActionForm.set("idUnidadeFederacao", new Integer( // ConstantesSistema.NUMERO_NAO_INFORMADO)); clienteActionForm.set("dataNascimento", ""); clienteActionForm.set("idProfissao", new Integer( ConstantesSistema.NUMERO_NAO_INFORMADO)); clienteActionForm.set("idPessoaSexo", new Integer( ConstantesSistema.NUMERO_NAO_INFORMADO)); clienteActionForm.set("nomeMae", ""); clienteActionForm.set("nacionalidade", new Integer( ConstantesSistema.NUMERO_NAO_INFORMADO)); clienteActionForm.set("estadoCivil", new Integer( ConstantesSistema.NUMERO_NAO_INFORMADO)); // Prepara a página para Pessoa Jurídica retorno = actionMapping .findForward("atualizarClientePessoaJuridica"); // -------Parte que trata do código quando o usuário tecla enter String codigoDigitadoEnter = (String) clienteActionForm .get("codigoClienteResponsavel"); // Verifica se o código foi digitado if (codigoDigitadoEnter != null && !codigoDigitadoEnter.trim().equals("")) { // Manda para a página a informação do campo para que seja // focado no retorno da pesquisa httpServletRequest.setAttribute("nomeCampo", "codigoClienteResponsavel"); FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.ID, codigoDigitadoEnter)); filtroCliente.adicionarParametro(new ParametroSimples( FiltroCliente.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroCliente .adicionarCaminhoParaCarregamentoEntidade("clienteTipo"); Collection clienteEncontrado = fachada.pesquisar(filtroCliente, Cliente.class.getName()); if (clienteEncontrado != null && !clienteEncontrado.isEmpty()) { // O cliente foi encontrado Cliente encontrado = (Cliente) ((List) clienteEncontrado) .get(0); if (encontrado.getClienteTipo() .getIndicadorPessoaFisicaJuridica().equals( ClienteTipo.INDICADOR_PESSOA_JURIDICA)) { // Verifica se o usuário digitou uma pessoa jurídica clienteActionForm.set("codigoClienteResponsavel", "" + encontrado.getId()); clienteActionForm.set("nomeClienteResponsavel", encontrado.getNome()); //.setAttribute( // "codigoClienteNaoEncontrado", "true"); sessao.setAttribute( "codigoClienteNaoEncontrado", "true"); } else { // O usuário digitou uma pessoa física clienteActionForm.set("codigoClienteResponsavel", ""); throw new ActionServletException( "atencao.responsavel.pessoa_juridica"); } } else { clienteActionForm.set("codigoClienteResponsavel", ""); //httpServletRequest.setAttribute( // "codigoClienteNaoEncontrado", "exception"); sessao.setAttribute( "codigoClienteNaoEncontrado", "exception"); clienteActionForm.set("nomeClienteResponsavel", "Cliente inexistente"); } } // -------Fim da Parte que trata do código quando o usuário tecla enter FiltroRamoAtividade filtroRamoAtividade = new FiltroRamoAtividade( FiltroRamoAtividade.DESCRICAO); FiltroUnidadeFederacao filtroUnidadeFederacao = new FiltroUnidadeFederacao( FiltroUnidadeFederacao.SIGLA); filtroRamoAtividade.adicionarParametro(new ParametroSimples( FiltroRamoAtividade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection ramoAtividades = fachada.pesquisar(filtroRamoAtividade, RamoAtividade.class.getName()); Collection unidadesFederacao = fachada.pesquisar( filtroUnidadeFederacao, UnidadeFederacao.class.getName()); httpServletRequest.setAttribute("ramoAtividades", ramoAtividades); httpServletRequest.setAttribute("unidadesFederacao", unidadesFederacao); } else { // Limpa os dados da página de pessoa clienteActionForm.set("cnpj", ""); clienteActionForm.set("idRamoAtividade", new Integer( ConstantesSistema.NUMERO_NAO_INFORMADO)); clienteActionForm.set("codigoClienteResponsavel", ""); clienteActionForm.set("nomeClienteResponsavel", ""); //clienteActionForm.set("idUnidadeFederacao", new Integer( // ConstantesSistema.NUMERO_NAO_INFORMADO)); // Prepara a página para Pessoa Física FiltroOrgaoExpedidorRg filtroOrgaoExpedidor = new FiltroOrgaoExpedidorRg( FiltroOrgaoExpedidorRg.DESCRICAO_ABREVIADA); FiltroUnidadeFederacao filtroUnidadeFederacao = new FiltroUnidadeFederacao( FiltroUnidadeFederacao.SIGLA); FiltroProfissao filtroProfissao = new FiltroProfissao( FiltroProfissao.DESCRICAO); FiltroPessoaSexo filtroPessoaSexo = new FiltroPessoaSexo( FiltroPessoaSexo.DESCRICAO); FiltroNacionalidade filtroNacionalidade = new FiltroNacionalidade( FiltroNacionalidade.DESCRICAO); FiltroEstadoCivil filtroEstadoCivil = new FiltroEstadoCivil( FiltroEstadoCivil.DESCRICAO); // Só vai mostrar os registros ativos filtroOrgaoExpedidor.adicionarParametro(new ParametroSimples( FiltroOrgaoExpedidorRg.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroProfissao.adicionarParametro(new ParametroSimples( FiltroProfissao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroPessoaSexo.adicionarParametro(new ParametroSimples( FiltroPessoaSexo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroNacionalidade.adicionarParametro(new ParametroSimples( FiltroNacionalidade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroEstadoCivil.adicionarParametro(new ParametroSimples( FiltroEstadoCivil.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Faz a pesquisa das coleções Collection orgaosExpedidores = fachada.pesquisar( filtroOrgaoExpedidor, OrgaoExpedidorRg.class.getName()); Collection unidadesFederacao = fachada.pesquisar( filtroUnidadeFederacao, UnidadeFederacao.class.getName()); Collection profissoes = fachada.pesquisar(filtroProfissao, Profissao.class.getName()); Collection pessoasSexos = fachada.pesquisar(filtroPessoaSexo, PessoaSexo.class.getName()); Collection nacionalidades = fachada.pesquisar(filtroNacionalidade, Nacionalidade.class.getName()); Collection estadosCivis = fachada.pesquisar(filtroEstadoCivil, EstadoCivil.class.getName()); // A coleção de pessoasSexos é obrigatória na página if (!(pessoasSexos != null && !pessoasSexos.isEmpty())) { throw new ActionServletException("erro.naocadastrado", null, "sexo"); } // Seta no request as coleções httpServletRequest.setAttribute("orgaosExpedidores", orgaosExpedidores); httpServletRequest.setAttribute("unidadesFederacao", unidadesFederacao); httpServletRequest.setAttribute("profissoes", profissoes); httpServletRequest.setAttribute("pessoasSexos", pessoasSexos); httpServletRequest.setAttribute("nacionalidade", nacionalidades); httpServletRequest.setAttribute("estadoCivil", estadosCivis); } /** * [UC0009] - Adicionar indicador para determinar se o documento de CPF/CNPJ do cliente já foi validado; * @author Diogo Luiz * @Date 16/08/2013 * */ String indicadorPessoaFisicaJuridica = (String) clienteActionForm.get("indicadorPessoaFisicaJuridica"); Collection pessoaFisicaJuridica = null; filtroClienteTipo.adicionarParametro(new ParametroSimples(FiltroClienteTipo.INDICADOR_PESSOA_FISICA_JURIDICA, indicadorPessoaFisicaJuridica )); pessoaFisicaJuridica = fachada.pesquisar(filtroClienteTipo, ClienteTipo.class.getName()); SistemaParametro sistParametro = fachada.pesquisarParametrosDoSistema(); if(pessoaFisicaJuridica != null && !pessoaFisicaJuridica.isEmpty()){ ClienteTipo clienteTipo = (ClienteTipo) Util.retonarObjetoDeColecao(pessoaFisicaJuridica); if(sistParametro.getIndicadorValidaCpfCnpj().equals(1)){ sessao.setAttribute("indicadorPessoaFisica", "true"); FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, clienteActionForm.get("codigoCliente"))); Collection colecaoCliente = fachada.pesquisar(filtroCliente, Cliente.class.getName()); Cliente cliente = (Cliente) Util.retonarObjetoDeColecao(colecaoCliente); clienteActionForm.set("indicadorValidaCpfCnpj", cliente.getIndicadorValidaCpfCnpj().toString()); } } //********************************************************************** // CRC2103 // Autor: Ivan Sergio // Data: 02/07/2009 // Verifica se a tela deve ser exibida como um PopUp //********************************************************************** if (httpServletRequest.getParameter("POPUP") != null) { if (httpServletRequest.getParameter("POPUP").equals("true")) { sessao.setAttribute("POPUP", "true"); }else { sessao.setAttribute("POPUP", "false"); } }else if (sessao.getAttribute("POPUP") == null) { sessao.setAttribute("POPUP", "false"); } //********************************************************************** return retorno; } }