public ActionResult Criar(PessoaVM vm)
        {
            vm.CpfCnpjValido = true;
            vm.Pessoa.Ativa  = 1;            //Indica que pessoa está ativa no sistema


            if (vm.TipoCadastro != 0)
            {
                vm.Pessoa.Tipo = (vm.TipoCadastro == 2) ? PessoaTipo.JURIDICA : PessoaTipo.FISICA;
            }

            CarregaCampos(vm);

            if (vm.TipoCadastro == 1 && (vm.Pessoa.Fisica.EstadoCivil == 2 || vm.Pessoa.Fisica.EstadoCivil == 5))
            {
                vm.Pessoa.Fisica.ConjugeId = -1;
            }

            if (vm.Pessoa.IsFisica)
            {
                if (vm.Pessoa.Fisica.Conjuge != null && !String.IsNullOrWhiteSpace(vm.Pessoa.Fisica.Conjuge.CPFCNPJ))
                {
                    _pessoaCredenciadoValidar.Salvar(vm.Pessoa.Fisica.Conjuge, true);
                }
            }

            _pessoaCredenciadoValidar.Salvar(vm.Pessoa);

            return(Json(new { IsPessoaSalva = Validacao.EhValido, @Pessoa = vm.Pessoa, Msg = Validacao.Erros }));
        }
Beispiel #2
0
        public bool SalvarPublico(CredenciadoPessoa credenciado)
        {
            try
            {
                if (credenciado.Pessoa.IsFisica)
                {
                    if (credenciado.Pessoa.Fisica.Conjuge != null && !String.IsNullOrWhiteSpace(credenciado.Pessoa.Fisica.Conjuge.CPFCNPJ))
                    {
                        _validarPessoa.Salvar(credenciado.Pessoa.Fisica.Conjuge, true);
                    }
                }

                _validar.Salvar(credenciado, true);

                if (Validacao.EhValido)
                {
                    credenciado.Situacao = credenciado.Tipo == (int)eCredenciadoTipo.OrgaoParceiroConveniado ? (int)eCredenciadoSituacao.Cadastrado : (int)eCredenciadoSituacao.AguardandoAtivacao;

                    Executor executor = new Executor();
                    executor.Nome = credenciado.Nome;
                    executor.Tipo = eExecutorTipo.Credenciado;

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        credenciado.Chave = GerarChaveAcesso(credenciado.Email, credenciado.Pessoa.NomeRazaoSocial);

                        _da.Salvar(credenciado, bancoDeDados, executor);

                        if (credenciado.Pessoa.IsJuridica)
                        {
                            foreach (Pessoa pessoa in credenciado.Pessoa.Juridica.Representantes)
                            {
                                if (pessoa.Fisica.Conjuge != null && !string.IsNullOrEmpty(pessoa.Fisica.Conjuge.CPFCNPJ))
                                {
                                    pessoa.Fisica.Conjuge.CredenciadoId = credenciado.Id;
                                    _pessoaCredenciadoBus.SalvarPublico(pessoa.Fisica.Conjuge, bancoDeDados, executor);
                                    pessoa.Fisica.ConjugeId = pessoa.Fisica.Conjuge.Id;
                                }

                                pessoa.CredenciadoId = credenciado.Id;
                                _pessoaCredenciadoBus.SalvarPublico(pessoa, bancoDeDados, executor);
                            }
                        }
                        else if (credenciado.Pessoa.Fisica.Conjuge != null && !string.IsNullOrEmpty(credenciado.Pessoa.Fisica.Conjuge.CPFCNPJ))
                        {
                            credenciado.Pessoa.Fisica.Conjuge.CredenciadoId = credenciado.Id;
                            _pessoaCredenciadoBus.SalvarPublico(credenciado.Pessoa.Fisica.Conjuge, bancoDeDados, executor);
                            credenciado.Pessoa.Fisica.ConjugeId = credenciado.Pessoa.Fisica.Conjuge.Id;
                        }

                        credenciado.Pessoa.CredenciadoId = credenciado.Id;
                        credenciado.Pessoa.IsCredenciado = true;
                        _pessoaCredenciadoBus.SalvarPublico(credenciado.Pessoa, bancoDeDados, executor);

                        _da.Editar(credenciado, bancoDeDados, gerarHistorico: false);

                        Historico historico = new Historico();
                        historico.Gerar(credenciado.Id, eHistoricoArtefato.credenciado, eHistoricoAcao.criar, bancoDeDados, executor);

                        if (credenciado.Tipo != (int)eCredenciadoTipo.OrgaoParceiroConveniado)
                        {
                            EnviarEmail(credenciado, credenciado.Email);
                        }

                        if (!Validacao.EhValido)
                        {
                            bancoDeDados.Rollback();
                        }
                        else
                        {
                            bancoDeDados.Commit();
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
        public bool VerificarPessoaJuridica(CredenciadoPessoa credenciado, bool isPublico = false)
        {
            VerificarCriarCnpj(credenciado.Pessoa);

            if (String.IsNullOrWhiteSpace(credenciado.Pessoa.Juridica.RazaoSocial))
            {
                Validacao.Add(Mensagem.Credenciado.ObrigatorioRazaoSocial);
            }

            if (String.IsNullOrWhiteSpace(credenciado.Pessoa.Juridica.NomeFantasia))
            {
                Validacao.Add(Mensagem.Credenciado.ObrigatorioNomeFantasia);
            }

            #region Representantes

            if (credenciado.Pessoa.Juridica.Representantes.Count <= 0)
            {
                Validacao.Add(Mensagem.Credenciado.RepresentanteObrigatorio);
            }

            List <Mensagem> mensagens = new List <Mensagem>(Validacao.Erros);
            Validacao.Erros.Clear();
            PessoaCredenciadoValidar pessoaValidar = new PessoaCredenciadoValidar();

            credenciado.Pessoa.Juridica.Representantes.ForEach(representante =>
            {
                bool isValido = true;

                /*Pessoa*/
                if (!pessoaValidar.Salvar(representante))
                {
                    isValido = false;
                }

                /*Conjuge*/
                if (!String.IsNullOrWhiteSpace(representante.Fisica.ConjugeCPF) && !isPublico)
                {
                    representante.Fisica.Conjuge = _busPessoa.ObterPessoa(representante.Fisica.ConjugeCPF);
                }
                if (!String.IsNullOrWhiteSpace(representante.Fisica.ConjugeCPF) && representante.Fisica.Conjuge != null && isValido)
                {
                    if (!pessoaValidar.Salvar(representante.Fisica.Conjuge, true))
                    {
                        isValido = false;
                    }
                }

                if (!isValido)
                {
                    mensagens.Add(Mensagem.Pessoa.DadosRepresentanteIncompleto(representante.NomeRazaoSocial));
                }

                Validacao.Erros.Clear();
            });

            Validacao.Erros = mensagens;

            #endregion

            return(Validacao.EhValido);
        }