private static void MovimentoToProvisao(this IParcela premioEntrada, EventoEmissaoPremio eventoPremio)
        {
            var premioCadastrado = eventoPremio.Premios.First(p => p.ItemCertificadoApoliceId == long.Parse(premioEntrada.ParcelaId.IdentificadorExternoCobertura));

            Assertion.NotNull(premioCadastrado, "Não foi possível obter as coberturas para preencher as provisões a serem devolvidas no evento.").Validate();

            premioEntrada.Provisoes = premioCadastrado.MovimentosProvisao.ToList <IProvisao>();
        }
        public new async Task FixtureSetUp()
        {
            _parcelaEmitida = _emissaoPremio.Parcelas.First();

            _premioDto = await _premios.ObterPorItemCertificado <Premio>
                             (long.Parse(_parcelaEmitida.ParcelaId.IdentificadorExternoCobertura),
                             (short)TipoMovimentoEnum.Emissao, 12);
        }
Exemplo n.º 3
0
        public List <T> GetNew(IParcela parcela, int qtd)
        {
            var parcelas = new BlockingCollection <T>(qtd);

            Parallel.For(0, qtd, i => parcelas.Add(GetNew(parcela)));

            return(new List <T>(parcelas));
        }
 private ProvisaoPremioNaoGanho CalcularPPNGNaData(IParcela parcela, DateTime competencia)
 {
     return(new ProvisaoPremioNaoGanho()
     {
         ProvisaoId = (short)TipoProvisaoEnum.PPNG,
         DataMovimentacao = competencia,
         Valor = CalcularPPNG(competencia, parcela.Vigencia.Inicio, parcela.Vigencia.Fim, parcela.Valores.Contribuicao)
     });
 }
Exemplo n.º 5
0
 private T GetNew(IParcela parcela)
 {
     return(new T
     {
         Id = Guid.NewGuid(),
         Valor = DateTime.Now.Millisecond,
         UltimaAtualizacao = DateTime.Now.AddSeconds(-_rand.Next(120))
     });
 }
Exemplo n.º 6
0
 public void FixtureSetUp()
 {
     _parcela = ParcelaBuilder.UmBuilder()
                .Com(ParcelaIdBuilder.UmBuilder().ComNumeroParcela(-1)
                     .ComIdentificadorExternoCobertura(IdentificadoresPadrao.ItemCertificadoApoliceId.ToString()))
                .Com(VigenciaBuilder.UmBuilder())
                .Com(ValorBuilder.UmBuilder())
                .Build();
 }
Exemplo n.º 7
0
 public Domain.Premio ToPremio(IParcela parcela)
 {
     return(new Domain.Premio()
     {
         ItemCertificadoApoliceId = long.Parse(parcela.ParcelaId.IdentificadorExternoCobertura),
         Numero = parcela.ParcelaId?.NumeroParcela ?? 0,
         Competencia = parcela.Vigencia?.Competencia ?? DateTime.MinValue,
         InicioVigencia = parcela.Vigencia?.Inicio ?? DateTime.MinValue,
         FimVigencia = parcela.Vigencia?.Fim ?? DateTime.MinValue,
         ValorPremio = parcela.Valores?.Contribuicao ?? 0.0M,
         ValorCarregamento = parcela.Valores?.Carregamento ?? 0.0M,
         ValorBeneficio = parcela.Valores?.Beneficio ?? 0.0M,
         ValorCapitalSegurado = parcela.Valores?.CapitalSegurado ?? 0.0M
     });
 }
        public virtual IEnumerable <ProvisaoDto> CalcularProvisao(IParcela parcela, DateTime dataExecucao)
        {
            var competenciaCalculo = dataExecucao.Date.AddDays(1 - dataExecucao.Day);

            do
            {
                yield return(new ProvisaoPremioNaoGanho()
                {
                    ProvisaoId = (short)TipoProvisaoEnum.PPNG,
                    DataMovimentacao = competenciaCalculo,
                    Valor = CalcularPPNG(competenciaCalculo, parcela.Vigencia.Inicio, parcela.Vigencia.Fim, parcela.Valores.Contribuicao)
                });

                competenciaCalculo = competenciaCalculo.AddMonths(1);
            } while (competenciaCalculo < parcela.Vigencia.Fim);
        }
        private List<IProvisao> CriarProvisaoPPNG(IParcela parcela, DateTime dataEvento)
        {
            var movimentos = new List<IProvisao>
            {
                new ProvisaoDto
                {
                    Valor = 0,
                    DataMovimentacao = new DateTime(dataEvento.Year, dataEvento.Month, 1),
                    ProvisaoId = (short) TipoProvisaoEnum.PPNG
                } as IProvisao
            };

            parcela.Provisoes = movimentos;

            return movimentos;
        }
Exemplo n.º 10
0
        private List <IProvisao> CriarProvisaoPPNG(IParcela parcela, DateTime dataEvento)
        {
            var movimentos = new List <IProvisao>
            {
                new MovimentoProvisao
                {
                    Valor            = 0,
                    DataMovimentacao = new DateTime(dataEvento.Year, dataEvento.Month, 1),
                    ProvisaoId       = (short)TipoProvisaoEnum.PPNG
                } as IProvisao
            };

            movimentos.SafeForEach(provisao => parcela.Provisoes.Add(provisao));

            return(movimentos);
        }
Exemplo n.º 11
0
        public static T ToPremio <T>(this IParcela premio) where T : Domain.Premio
        {
            var domain = new Domain.Premio()
            {
                ItemCertificadoApoliceId = long.Parse(premio.ParcelaId.IdentificadorExternoCobertura),
                Numero               = premio.ParcelaId.NumeroParcela,
                Competencia          = premio.Vigencia.Competencia,
                InicioVigencia       = premio.Vigencia.Inicio,
                FimVigencia          = premio.Vigencia.Fim,
                ValorPremio          = premio.Valores.Contribuicao,
                ValorCarregamento    = premio.Valores.Carregamento,
                ValorBeneficio       = premio.Valores.Beneficio,
                ValorCapitalSegurado = premio.Valores.CapitalSegurado
            };

            return(domain as T);
        }
Exemplo n.º 12
0
        public static void ToProvisao(this IParcela premioEntrada, EventoPremio eventoPremio)
        {
            var premioCadastrado = eventoPremio.Premios.First(p => p.ItemCertificadoApoliceId == long.Parse(premioEntrada.ParcelaId.IdentificadorExternoCobertura));

            Assertion.NotNull(premioCadastrado, "Não foi possível obter as coberturas para preencher as provisões a serem devolvidas no evento.").Validate();

            var provisoes = new List <IProvisao>();

            foreach (var movimento in premioCadastrado.MovimentosProvisao)
            {
                provisoes.Add(new ProvisaoDto()
                {
                    Valor = movimento.ValorProvisao,
                });
            }

            premioEntrada.Provisoes = provisoes;
        }
Exemplo n.º 13
0
        public static void Validar(this IParcela parcela)
        {
            Assertion.NotNull(parcela.ParcelaId, "A ParcelaId não foi informada.").Validate();
            Assertion.NotNull(parcela.Valores, $"A ParcelaId: {parcela.ParcelaId.ParcelaId}, com valores inválidos.").Validate();
            Assertion.NotNull(parcela.Vigencia, $"A ParcelaId: {parcela.ParcelaId.ParcelaId}, com vigência inválida.").Validate();
            Assertion.NotNull(parcela.ParcelaId.IdentificadorExternoCobertura, $"A ParcelaId: {parcela.ParcelaId.ParcelaId}, com vigência com Identificador Externo inválido.").Validate();

            var vigenciaInicio = Assertion.IsFalse(parcela.Vigencia.Inicio.Equals(DateTime.MinValue), $"IdentificadorExterno: {parcela.ParcelaId.IdentificadorExternoCobertura}, com Inicio da Vigência inválido.");
            var vigenciaFim    = Assertion.IsFalse(parcela.Vigencia.Fim.Equals(DateTime.MinValue), $"IdentificadorExterno: {parcela.ParcelaId.IdentificadorExternoCobertura}, com Fim da Vigência inválido.");
            var competencia    = Assertion.IsFalse(parcela.Vigencia.Competencia.Equals(DateTime.MinValue), $"IdentificadorExterno: {parcela.ParcelaId.IdentificadorExternoCobertura}, com Competência inválido.");
            var numeroParcela  = Assertion.EqualsOrGreaterThan(parcela.ParcelaId.NumeroParcela, default(int), $"IdentificadorExterno: {parcela.ParcelaId.IdentificadorExternoCobertura}, com Numero da Parcela inválido.");
            var valorPremio    = Assertion.GreaterThan(parcela.Valores.Contribuicao, default(decimal), $"IdentificadorExterno: {parcela.ParcelaId.IdentificadorExternoCobertura}, o Valor de Contribuição não foi informado.");
            var valorBeneficio = Assertion.GreaterThan(parcela.Valores.Beneficio, default(decimal), $"IdentificadorExterno: {parcela.ParcelaId.IdentificadorExternoCobertura}, o Valor de Benfício não foi informado.");

            vigenciaInicio
            .and(vigenciaFim)
            .and(competencia)
            .and(numeroParcela)
            .and(valorPremio)
            .and(valorBeneficio)
            .Validate();
        }