Example #1
0
        public List <Pessoa> ObterPessoasRelacionadas(Requerimento requerimento, BancoDeDados bancoCredenciado)
        {
            List <Pessoa> pessoasRelacionadas = new List <Pessoa>();

            List <string> cpfCnpj =
                requerimento.Responsaveis.Where(x => x.Representantes != null)
                .SelectMany(x => x.Representantes)
                .ToList()
                .Select(x => x.CPFCNPJ)
                .ToList();

            pessoasRelacionadas.AddRange(
                requerimento.Pessoas.Where(x => cpfCnpj.Exists(y => x.IsFisica && y == x.CPFCNPJ)));

            pessoasRelacionadas.Add(
                requerimento.Pessoas.Where(x => x.CPFCNPJ == requerimento.Interessado.CPFCNPJ).FirstOrDefault());

            requerimento.Responsaveis.ForEach(r =>
            {
                pessoasRelacionadas.Add(requerimento.Pessoas.Where(x => x.CPFCNPJ == r.CpfCnpj).FirstOrDefault());
            });

            if (requerimento.Empreendimento.SelecaoTipo == (int)eExecutorTipo.Credenciado &&
                requerimento.Empreendimento.Id > 0)
            {
                EmpreendimentoCredenciadoBus empreendimentoCredenciadoBus = new EmpreendimentoCredenciadoBus();
                pessoasRelacionadas.AddRange(
                    empreendimentoCredenciadoBus.ObterResponsaveis(requerimento.Empreendimento.Id, bancoCredenciado));
            }

            //Conjuge
            foreach (var item in requerimento.Pessoas.Where(x => x.Fisica.ConjugeId > 0).ToList())
            {
                if (item.SelecaoTipo == (int)eExecutorTipo.Credenciado)
                {
                    pessoasRelacionadas.Add(requerimento.Pessoas.FirstOrDefault(x => x.CPFCNPJ == item.Fisica.ConjugeCPF));
                }
            }

            //Agrupando
            pessoasRelacionadas =
                pessoasRelacionadas.Where(x => x != null).GroupBy(x => x.CPFCNPJ).Select(y => new Pessoa
            {
                Id              = y.First().Id,
                Tipo            = y.First().Tipo,
                InternoId       = y.First().InternoId,
                NomeRazaoSocial = y.First().NomeRazaoSocial,
                CPFCNPJ         = y.First().CPFCNPJ,
                Fisica          = y.First().Fisica,
            }).ToList();

            return(pessoasRelacionadas);
        }
Example #2
0
        public Requerimento Importar(Requerimento requerimento, BancoDeDados bancoInterno, BancoDeDados bancoCredenciado)
        {
            int id = requerimento.Empreendimento.Id;

            EmpreendimentoCredenciadoBus bus = new EmpreendimentoCredenciadoBus();

            Empreendimento empCredenciado = bus.Obter(requerimento.Empreendimento.Id, bancoCredenciado);

            //Busca o empreendimento no banco do credenciado
            Empreendimento empInterno = null;

            empCredenciado.SelecaoTipo = requerimento.Empreendimento.SelecaoTipo;

            #region Empreendimento Cadastrado no Interno

            empCredenciado.Id = 0;

            if (empCredenciado.InternoId.GetValueOrDefault() > 0)
            {
                empInterno = Obter(empCredenciado.InternoId.GetValueOrDefault(), bancoInterno);

                if (empInterno != null && empInterno.Id > 0)
                {
                    empCredenciado.Id            = empInterno.Id;
                    empCredenciado.Coordenada.Id = empInterno.Coordenada.Id;
                }
            }

            if (!string.IsNullOrEmpty(empCredenciado.CNPJ) && empCredenciado.Id <= 0)
            {
                empCredenciado.Id = _da.ObterId(empCredenciado.CNPJ, bancoInterno);
            }

            #endregion Empreendimento Cadastrado no Interno

            #region Responsáveis

            empCredenciado.Responsaveis.ForEach(r =>
            {
                r.Id = requerimento.Pessoas.Where(x => x.Id == r.Id).SingleOrDefault().InternoId.GetValueOrDefault();
            });

            ConfigurarResponsaveis(empCredenciado, bancoInterno, empInterno);

            #endregion Responsáveis

            #region Apagar ID's

            empCredenciado.Responsaveis.ForEach(r => { r.IdRelacionamento = 0; });
            empCredenciado.Enderecos.ForEach(r => { r.Id = 0; });
            empCredenciado.MeiosContatos.ForEach(r => { r.Id = 0; });
            empCredenciado.Coordenada.Datum.Sigla = ((_da.ObterDatuns().FirstOrDefault(x => x.Id == empCredenciado.Coordenada.Datum.Id)) ?? new Datum()).Texto;

            #endregion Apagar ID's

            if (empCredenciado.Id == 0)
            {
                _da.Criar(empCredenciado, bancoInterno);
            }
            else
            {
                _da.Editar(empCredenciado, bancoInterno);
            }

            empCredenciado.InternoId    = empCredenciado.Id;
            requerimento.Empreendimento = empCredenciado;
            bus.SalvarInternoId(
                new Empreendimento()
            {
                Id         = id,
                InternoId  = empCredenciado.Id,
                InternoTid = empCredenciado.Tid,
                Codigo     = empCredenciado.Codigo
            }, bancoCredenciado);

            return(requerimento);
        }