Esempio n. 1
0
        public ActionResult PessoaModalVisualizar(int id, int internoId = 0, bool isConjuge = false)
        {
            PessoaVM vm = new PessoaVM();

            if (id > 0)
            {
                vm.Pessoa = _bus.Obter(id);
            }
            else
            {
                vm.Pessoa    = _bus.ObterPessoa(interno: internoId);
                vm.Pessoa.Id = _bus.Obter(vm.Pessoa.CPFCNPJ, simplificado: true, credenciadoId: _bus.User.FuncionarioId).Id;

                if (vm.Pessoa.IsJuridica)
                {
                    vm.Pessoa.Juridica.Representantes.ForEach(representante =>
                    {
                        representante.IsCopiado = true;
                    });
                }
            }

            vm.CpfCnpjValido          = true;
            vm.ExibirMensagensPartial = true;
            vm.OcultarLimparPessoa    = true;
            vm.IsVisualizar           = true;

            vm.IsConjuge    = isConjuge;
            vm.TipoCadastro = vm.Pessoa.Tipo;

            CarregaCampos(vm);
            PreencheSalvarVM(vm);

            vm.UrlAcao = Url.Action("Visualizar", "Pessoa");

            return(PartialView("PessoaModal", vm));
        }
        public bool Salvar(Empreendimento empreendimento)
        {
            try
            {
                if (_validar.Salvar(empreendimento))
                {
                    Mensagem erros = VerificarLocalizacaoEmpreendimento(empreendimento.Coordenada.EastingUtmTexto, empreendimento.Coordenada.NorthingUtmTexto, empreendimento.Enderecos[0].EstadoId, empreendimento.Enderecos[0].MunicipioId);
                    if (erros.Texto != null)
                    {
                        Validacao.Add(erros);
                        return(Validacao.EhValido);
                    }

                    empreendimento.CredenciadoId = User.FuncionarioId;

                    if (empreendimento.InternoId.GetValueOrDefault() > 0)
                    {
                        empreendimento.InternoTid = new EmpreendimentoInternoBus().ObterSimplificado(empreendimento.InternoId.Value).Tid;
                    }

                    if (empreendimento.Coordenada.Tipo.Id > 0)
                    {
                        empreendimento.Coordenada.Datum.Sigla = ListaCredenciadoBus.Datuns.SingleOrDefault(x => Equals(x.Id, empreendimento.Coordenada.Datum.Id)).Sigla;
                    }

                    #region Utilizar o mesmo endereço de localização

                    if (empreendimento.Enderecos.Count == 1)
                    {
                        Endereco enderecoLocalizacao = empreendimento.Enderecos.First();

                        Endereco endereco = new Endereco();
                        endereco.Correspondencia     = 1;
                        endereco.Cep                 = enderecoLocalizacao.Cep;
                        endereco.Logradouro          = enderecoLocalizacao.Logradouro;
                        endereco.Bairro              = enderecoLocalizacao.Bairro;
                        endereco.EstadoId            = enderecoLocalizacao.EstadoId;
                        endereco.MunicipioId         = enderecoLocalizacao.MunicipioId;
                        endereco.Numero              = enderecoLocalizacao.Numero;
                        endereco.DistritoLocalizacao = enderecoLocalizacao.DistritoLocalizacao;
                        endereco.Complemento         = enderecoLocalizacao.Complemento;

                        empreendimento.Enderecos.Add(endereco);
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();
                        PessoaCredenciadoBus pessoaCredenciadoBus = new PessoaCredenciadoBus();
                        Pessoa          aux;
                        List <Mensagem> mensagens = new List <Mensagem>();

                        foreach (Responsavel responsavel in empreendimento.Responsaveis)
                        {
                            if (responsavel.Id <= 0)
                            {
                                aux = pessoaCredenciadoBus.ObterPessoa(interno: responsavel.InternoId);
                                Pessoa pessoaCredenciado = pessoaCredenciadoBus.Obter(aux.CPFCNPJ, bancoDeDados, simplificado: true, credenciadoId: User.FuncionarioId);

                                aux.Id = pessoaCredenciado.Id;
                                pessoaCredenciadoBus.Salvar(aux, bancoDeDados);

                                responsavel.Id = aux.Id;

                                if (!Validacao.EhValido)
                                {
                                    mensagens.Add(Mensagem.Pessoa.DadosRepresentanteIncompleto(aux.NomeRazaoSocial));
                                }
                            }
                        }

                        if (!Validacao.EhValido)
                        {
                            mensagens.ForEach(msg =>
                            {
                                msg.Texto = msg.Texto.Replace("representante", "responsável");
                            });

                            Validacao.Erros = mensagens;
                            bancoDeDados.Rollback();
                            return(false);
                        }

                        _da.Salvar(empreendimento, bancoDeDados);

                        #region Solicitação de CAR

                        CARSolicitacaoBus carSolicitacaoBus = new CARSolicitacaoBus();
                        CARSolicitacao    carSolicitacao    = new CARSolicitacao();
                        carSolicitacao.Empreendimento.Id = empreendimento.Id;
                        //carSolicitacaoBus.AlterarSituacao(carSolicitacao, new CARSolicitacao() { SituacaoId = (int)eCARSolicitacaoSituacao.Invalido }, bancoDeDados);

                        #endregion

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
        public bool Salvar(CredenciadoPessoa credenciado, bool isPublico = false)
        {
            if (credenciado.Tipo <= 0)
            {
                Validacao.Add(Mensagem.Credenciado.TipoObrigatorio);
            }

            #region Orgao Parceiro/ Conveniado

            if (credenciado.Tipo == (int)eCredenciadoTipo.OrgaoParceiroConveniado)
            {
                if (!credenciado.Pessoa.IsFisica)
                {
                    Validacao.Add(Mensagem.Credenciado.OrgaoParceiroPessoaTipoInvalido);

                    return(Validacao.EhValido);
                }

                if (credenciado.OrgaoParceiroId <= 0)
                {
                    Validacao.Add(Mensagem.Credenciado.OrgaoParceiroObrigatorio);
                }

                if (credenciado.OrgaoParceiroUnidadeId <= 0)
                {
                    if (_busOrgaoParceiro.ExisteUnidade(credenciado.OrgaoParceiroId))
                    {
                        Validacao.Add(Mensagem.Credenciado.OrgaoParceiroUnidadeObrigatoria);
                    }
                }

                if (Validacao.EhValido)
                {
                    OrgaoParceiroConveniado orgaoParceiro = _busOrgaoParceiro.Obter(credenciado.OrgaoParceiroId);

                    if (orgaoParceiro.Id <= 0)
                    {
                        Validacao.Add(Mensagem.Credenciado.OrgaoParceiroInexistente);
                    }
                    else
                    {
                        if (orgaoParceiro.SituacaoId == (int)eOrgaoParceiroConveniadoSituacao.Bloqueado)
                        {
                            Validacao.Add(Mensagem.Credenciado.OrgaoParceiroSituacaoInvalida(orgaoParceiro.Sigla));
                        }

                        if (!orgaoParceiro.Unidades.Exists(x => x.Id == credenciado.OrgaoParceiroUnidadeId) && _busOrgaoParceiro.ExisteUnidade(credenciado.OrgaoParceiroId))
                        {
                            Validacao.Add(Mensagem.Credenciado.OrgaoParceiroUnidadeInexistente);
                        }
                    }
                }
            }

            #endregion

            if (isPublico)
            {
                credenciado.Pessoa.Fisica.ConjugeId = 0;
            }
            else
            {
                credenciado.Pessoa.Fisica.Conjuge = _busPessoa.ObterPessoa(credenciado.Pessoa.Fisica.ConjugeCPF);
            }

            VerificarPessoaCriar(credenciado, isPublico);

            VerificarExisteTelefone(credenciado);

            VerificarEmail(credenciado.Pessoa);

            VerificarEndereco(credenciado.Pessoa.Endereco);

            return(Validacao.EhValido);
        }