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 ExibirInserirClientePessoaAction 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(); HttpSession session = httpServletRequest.getSession(false); // 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("inserirClientePessoaFisica"); Usuario usuarioLogado = (Usuario) session.getAttribute("usuarioLogado"); // ------------------------------------------------------------------------------------------- // Alterado por : Hugo Leonardo - data : 20/07/2010 // Analista : Adriana Ribeiro. // [UC0007] - [FS0013] - Verificar permiss�o especial // ------------------------------------------------------------------------------------------- // Se o usu�rio n�o tenha permiss�o especial. boolean temPermissaoParaIncluirClienteSemCpf = fachada.verificarPermissaoEspecial(PermissaoEspecial.INCLUIR_CLIENTE_SEM_CPF, usuarioLogado); SistemaParametro sistemaParametro = this.getSistemaParametro(); if(sistemaParametro.getIndicadorDocumentoObrigatorio() == ConstantesSistema.NAO.shortValue()){ temPermissaoParaIncluirClienteSemCpf = true; } httpServletRequest.setAttribute("temPermissaoParaIncluirClienteSemCpf", temPermissaoParaIncluirClienteSemCpf); // ------------------------------------------------------------------------------------------- // GerenciadorPaginas gerenciadorPaginas = (GerenciadorPaginas) // sessao.getAttribute("gerenciadorPaginas"); if (tipoPessoa != null && tipoPessoa.equals(ClienteTipo.INDICADOR_PESSOA_JURIDICA)) { // Pagina pagina = gerenciadorPaginas.getPaginaCorrente(); // Limpa os atributos do hint da p�gina // pagina.removerAtributosPagina(); // pagina.addAtributoPagina("cnpj", "CNPJ"); // pagina.addAtributoPagina("idRamoAtividade", "Ramo Atividade"); // pagina.addAtributoPagina("codigoClienteResponsavel", "C�digo do // Cliente Respons�vel"); // pagina.addAtributoPagina("nomeClienteResponsavel", "Nome do // Cliente Respons�vel"); // 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("inserirClientePessoaJuridica"); // -------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()); httpServletRequest.setAttribute( "codigoClienteNaoEncontrado", "true"); } else { // O usu�rio digitou uma pessoa f�sica clienteActionForm.set("codigoClienteResponsavel", ""); throw new ActionServletException( "atencao.responsavel.pessoa_juridica"); // httpServletRequest.setAttribute( // "codigoClienteNaoEncontrado", "exception"); // clienteActionForm.set("nomeClienteResponsavel", // "O respons�vel n�o � uma pessoa jur�dica"); } } else { clienteActionForm.set("codigoClienteResponsavel", ""); httpServletRequest.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 { // Pagina pagina = gerenciadorPaginas.getPaginaCorrente(); // Limpa os atributos do hint da p�gina // pagina.removerAtributosPagina(); // pagina.addAtributoPagina("cpf", "CPF"); // pagina.addAtributoPagina("rg", "RG"); // pagina.addAtributoPagina("dataEmissao", "Data de Emiss�o"); // pagina.addAtributoPagina("idOrgaoExpedidor", "�rg�o Expedidor"); // pagina.addAtributoPagina("idUnidadeFederacao", "UF"); // pagina.addAtributoPagina("dataNascimento", "Data de Nascimento"); // pagina.addAtributoPagina("idProfissao", "Profiss�o"); // pagina.addAtributoPagina("idPessoaSexo", "Sexo"); // 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")) { session.setAttribute("POPUP", "true"); }else { session.setAttribute("POPUP", "false"); } }else if (session.getAttribute("POPUP") == null) { session.setAttribute("POPUP", "false"); } //********************************************************************** return retorno; } }