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.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.util.ConstantesSistema; 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 { /** * < <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) { 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); // ------------------------------------------------------------------------------------------- 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", ""); // 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); filtroRamoAtividade.adicionarParametro(new ParametroSimples( FiltroRamoAtividade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection ramoAtividades = fachada.pesquisar(filtroRamoAtividade, RamoAtividade.class.getName()); httpServletRequest.setAttribute("ramoAtividades", ramoAtividades); } 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", ""); // 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); // 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)); // 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()); // 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); } //********************************************************************** // 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; } }