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); }
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) }); }
private T GetNew(IParcela parcela) { return(new T { Id = Guid.NewGuid(), Valor = DateTime.Now.Millisecond, UltimaAtualizacao = DateTime.Now.AddSeconds(-_rand.Next(120)) }); }
public void FixtureSetUp() { _parcela = ParcelaBuilder.UmBuilder() .Com(ParcelaIdBuilder.UmBuilder().ComNumeroParcela(-1) .ComIdentificadorExternoCobertura(IdentificadoresPadrao.ItemCertificadoApoliceId.ToString())) .Com(VigenciaBuilder.UmBuilder()) .Com(ValorBuilder.UmBuilder()) .Build(); }
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; }
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); }
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); }
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; }
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(); }