public async Task <EventoAlteracao> ToEventoAlteracao(IProposta proposta)
        {
            var historicos = new List <HistoricoCoberturaContratada>();

            foreach (var produto in proposta.Produtos)
            {
                var beneficiario = produto.Beneficiarios?.OrderByDescending(d => d.DataNascimento).FirstOrDefault();
                foreach (var cobertura in produto.Coberturas)
                {
                    var historico = new HistoricoCoberturaContratada(await _coberturas.ObterPorItemCertificado(long.Parse(cobertura.IdentificadorExterno)))
                    {
                        SexoBeneficiario           = beneficiario?.Sexo,
                        DataNascimentoBeneficiario = beneficiario?.DataNascimento,
                        PeriodicidadeId            = (short)proposta.DadosPagamento?.Periodicidade,
                        ValorBeneficio             = cobertura.ValorBeneficio,
                        ValorCapital      = cobertura.ValorCapital,
                        ValorContribuicao = cobertura.ValorContribuicao,
                    };

                    historico.InformaStatus(StatusCobertura.StatusCoberturaEnum.Activa, proposta.DataImplantacao);

                    historicos.Add(historico);
                }
            }

            return(new EventoAlteracao(proposta.Identificador, proposta.IdentificadorCorrelacao, proposta.IdentificadorNegocio, proposta.DataExecucaoEvento)
                   .ComHistorico(historicos));
        }
Esempio n. 2
0
        public static HistoricoCoberturaContratada ObterHistorico(CoberturaContratada coberturaContratada,
                                                                  List <IBeneficiario> beneficiarios, Periodicidade?periodicidade,
                                                                  decimal valorBeneficio, decimal valorCapital, decimal valorContribuicao, DateTime dataImplantacao)
        {
            var beneficiarioMaisNovo = beneficiarios?.OrderByDescending(x => x.DataNascimento).FirstOrDefault();

            var dto = new HistoricoCoberturaContratada(coberturaContratada)
            {
                SexoBeneficiario           = beneficiarioMaisNovo?.Sexo,
                DataNascimentoBeneficiario = beneficiarioMaisNovo?.DataNascimento,
                PeriodicidadeId            = (int)periodicidade.GetValueOrDefault(),
                ValorBeneficio             = valorBeneficio,
                ValorCapital      = valorCapital,
                ValorContribuicao = valorContribuicao
            };

            dto.InformaStatus(StatusCobertura.StatusCoberturaEnum.Activa, dataImplantacao);

            return(dto);
        }