package gcom.gui.cadastro.cliente; import java.util.Collection; import java.util.Iterator; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.FiltroClienteTipo; import gcom.cadastro.descricaogenerica.DescricaoGenerica; import gcom.cadastro.descricaogenerica.FiltroDescricaoGenerica; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.FiltroUsuarioPemissaoEspecial; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioPermissaoEspecial; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; 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 InserirClienteNomeTipoAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = null; DynaValidatorForm clienteActionForm = (DynaValidatorForm) actionForm; // 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 nome = clienteActionForm.get("nome").toString(); String indicadorExibicaoNomeConta = null; Short indicadorUsoNomeFantasiaConta = null; if (clienteActionForm.get("indicadorExibicaoNomeConta") != null) { indicadorExibicaoNomeConta = (String) clienteActionForm.get( "indicadorExibicaoNomeConta").toString(); if (indicadorExibicaoNomeConta .equals(Cliente.INDICADOR_NOME_FANTASIA.toString())) { indicadorUsoNomeFantasiaConta = 1; } else { indicadorUsoNomeFantasiaConta = 2; } } Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo(); //Verifica qual � o pr�ximo passo para a execu��o do processo String destinoPagina = httpServletRequest.getParameter("destino"); String tipoPessoaForm = tipoPessoa.toString() ; filtroClienteTipo.adicionarParametro(new ParametroSimples( FiltroClienteTipo.ID, tipoPessoaForm)); tipoPessoa = ((ClienteTipo) fachada.pesquisar(filtroClienteTipo, ClienteTipo.class.getName()).iterator().next()) .getIndicadorPessoaFisicaJuridica(); // Verifica o destino porque se o usu�rio tentar concluir o processo // nesta p�gina, n�o � necess�rio verificar a tela de confirma��o if (destinoPagina != null && !destinoPagina.trim().equals("")) { /** * Autor: Mariana Victor * Data: 04/01/2010 * RM_3320 - [FS0017] Verificar Nome de Cliente com menos de 10 posi��es */ if (this.getSistemaParametro().getIndicadorNomeMenorDez().toString() .equals(ConstantesSistema.NAO.toString())) { FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial(); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuario.getId())); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.INSERIR_NOMES_COM_MENOS_DE_10_CARACTERES)); Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName()); if (colecaoUsuarioPermisao == null || colecaoUsuarioPermisao.isEmpty()) { String nomeFormatado= nome.replaceAll(" ", ""); if (nomeFormatado.length() < 10) { throw new ActionServletException("atencao.nome.cliente.menos.dez.posicoes", null, "Nome do Cliente"); } } } /** * Autor: Mariana Victor * Data: 04/01/2010 * RM_3320 - [FS0018] Verificar Nome de Cliente com Descri��o Gen�rica */ if (this.getSistemaParametro().getIndicadorNomeClienteGenerico().toString() .equals(ConstantesSistema.NAO.toString())) { FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial(); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuario.getId())); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.INSERIR_NOME_CLIENTE_GENERICO)); Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName()); if (colecaoUsuarioPermisao == null || colecaoUsuarioPermisao.isEmpty()) { FiltroDescricaoGenerica filtroDescricaoGenerica = new FiltroDescricaoGenerica(); Collection colecaoDescricaoGenerica = fachada.pesquisar(filtroDescricaoGenerica, DescricaoGenerica.class.getName()); if (colecaoDescricaoGenerica != null || !colecaoDescricaoGenerica.isEmpty()) { String nomeFormatado= nome.replaceAll(" ", ""); Iterator iteratorDescricaoGenerica = colecaoDescricaoGenerica.iterator(); while (iteratorDescricaoGenerica.hasNext()) { DescricaoGenerica descricaoGenerica = (DescricaoGenerica) iteratorDescricaoGenerica.next(); String nomeGenerico = descricaoGenerica.getNomeGenerico(); String nomeGenericoFormatado = nomeGenerico.replaceAll(" ", ""); if (nomeGenerico.equalsIgnoreCase(nome) || nomeGenericoFormatado.equalsIgnoreCase(nome) || nomeGenerico.equalsIgnoreCase(nomeFormatado) || nomeGenericoFormatado.equalsIgnoreCase(nomeFormatado)) { throw new ActionServletException("atencao.nome.cliente.descricao.generica", null, "Nome do Cliente"); } } } } } if (tipoPessoa != null ){ if( tipoPessoa.equals(ClienteTipo.INDICADOR_PESSOA_JURIDICA)) { clienteActionForm.set("indicadorPessoaFisicaJuridica", "" + ClienteTipo.INDICADOR_PESSOA_JURIDICA); // Vai para Pessoa Juridica mas tem dados existentes em pessoa fisica String cpf = (String) clienteActionForm.get("cpf"); String rg = (String) clienteActionForm.get("rg"); String dataEmissao = (String) clienteActionForm.get("dataEmissao"); Integer idOrgaoExpedidor = (Integer) clienteActionForm.get("idOrgaoExpedidor"); Integer idUnidadeFederacao = (Integer) clienteActionForm.get("idUnidadeFederacao"); String dataNascimento = (String) clienteActionForm.get("dataNascimento"); Integer idProfissao = (Integer) clienteActionForm.get("idProfissao"); Integer idPessoaSexo = (Integer) clienteActionForm.get("idPessoaSexo"); // Vai para Pessoa Juridica mas tem dados existentes em pessoa fisica if ((idPessoaSexo != null && idPessoaSexo != ConstantesSistema.NUMERO_NAO_INFORMADO) || (cpf != null && !cpf.trim().equalsIgnoreCase("")) || (rg != null && !rg.trim().equalsIgnoreCase("")) || (dataEmissao != null && !dataEmissao.trim().equalsIgnoreCase("")) || (dataNascimento != null && !dataNascimento.trim().equalsIgnoreCase("")) || (idOrgaoExpedidor != null && idOrgaoExpedidor != ConstantesSistema.NUMERO_NAO_INFORMADO) || (idUnidadeFederacao != null && idUnidadeFederacao != ConstantesSistema.NUMERO_NAO_INFORMADO) || (idProfissao != null && idProfissao != ConstantesSistema.NUMERO_NAO_INFORMADO)) { return montarPaginaConfirmacaoWizard( "confirmacao.processo.cliente.dependencia.pessoa_juridica", httpServletRequest, actionMapping); } }else if (tipoPessoa.equals(ClienteTipo.INDICADOR_PESSOA_FISICA)) { // Vai para Pessoa Fisica mas tem dados existentes em pessoa juridica clienteActionForm.set("indicadorPessoaFisicaJuridica", "" + ClienteTipo.INDICADOR_PESSOA_FISICA); String cnpj = (String) clienteActionForm.get("cnpj"); Integer idRamoAtividade = (Integer) clienteActionForm.get("idRamoAtividade"); String codigoClienteResponsavel = (String) clienteActionForm.get("codigoClienteResponsavel"); if ((cnpj != null && !cnpj.trim().equalsIgnoreCase("")) || (idRamoAtividade != null && idRamoAtividade != ConstantesSistema.NUMERO_NAO_INFORMADO) || (codigoClienteResponsavel != null && !codigoClienteResponsavel .trim().equalsIgnoreCase(""))) { return montarPaginaConfirmacaoWizard( "confirmacao.processo.cliente.dependencia.pessoa_fisica", httpServletRequest, actionMapping); } } } } return retorno; } }