public static IEnumerable <Domain.Premio> ToEventoPremio(this IParcelaEmitida premioEmitido) { var evento = new EventoEmissaoPremio(premioEmitido.Identificador, premioEmitido.IdentificadorCorrelacao, premioEmitido.IdentificadorNegocio, premioEmitido.DataExecucaoEvento); premioEmitido.Parcelas.SafeForEach(premio => evento.AdicionarPremiosEmitidos(premio.ToPremio <Domain.Premio>())); return(evento.Premios); }
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 async Task Processar(EventoEmissaoPremio evento) { foreach (var premio in evento.PremiosValidos) { await evento.ValidaMovimentacao(premio.ItemCertificadoApoliceId, premio.Numero); } await _eventos.Salvar(evento); }
private void CriaEventoEmissaoPremio(TipoRegimeFinanceiroEnum regimeFinanceiro, params TipoProvisaoEnum[] tiposProvisao) { _evento = EventoEmissaoPremioBuilder.UmEvento() .Padrao() .Com(PremioBuilder.Um() .Com(CoberturaContratadaBuilder.Uma() .ComRegimeFinanceiro((short)regimeFinanceiro) .ComTiposProvisao(tiposProvisao))) .Build(); }
public EventoEmissaoPremio CriarProvisao(EventoEmissaoPremio evento, CoberturaContratada cobertura) { if (cobertura.RegimeFinanceiroId.Equals(TipoRegimeFinanceiroEnum.ReparticaoSimples)) { return(evento); } //Processo para gerar pmbac return(evento); }
public async Task <EventoPremio> Com(IParcelaEmitida message) { var evento = new EventoEmissaoPremio(message.Identificador, message.IdentificadorCorrelacao, message.IdentificadorNegocio, message.DataExecucaoEvento); foreach (var parcela in message.Parcelas) { evento.AdicionarPremio(await _premios.CriarPremio(_mapear.ToPremio(parcela), evento)); } return(evento); }
public new void FixtureSetUp() { _eventos = GetInstance <IEventosBase <EventoEmissaoPremio> >(); _eventoEmissao = EventoParcelaEmitidaBuilder .UmEventoComDataExecucao(_identificador, IdentificadoresPadrao.Competencia) .Padrao() .Com(PremioBuilder.Um().Padrao() .Com(CoberturaContratadaBuilder.Uma() .ComRegimeFinanceiro((short)TipoRegimeFinanceiroEnum.Capitalizacao) .ComTiposProvisao(TipoProvisaoEnum.PMBAC, TipoProvisaoEnum.PEF) .ComId(_coberturaCadastrada.Id) .Com(HistoricoCoberturaContratadaBuilder.UmHistorico().ComId(_historicoId).ComDadosPadroes())) .Com(MovimentoProvisaoBuilder.UmBuilder().Padrao() .Com(ProvisaoCoberturaBuilder.UmBuilder()))) .Build(); _eventos.Salvar(_eventoEmissao).Wait(); }
public void DadoUmaEmissaoPremioDeveAdicionarListaProvisoes() { _emissaoPremio = ParcelaEmitidaBuilder.UmBuilder() .ComIdentificador(IdentificadoresPadrao.Identificador) .ComIdentificadorNegocio(IdentificadoresPadrao.IdentificadorNegocio) .ComDataExecucaoEvento(IdentificadoresPadrao.DataExecucaoEvento) .Com(ParcelaBuilder.UmBuilder().Padrao()) .Build(); MovimentoProvisaoBuilder[] provisoes = { MovimentoProvisaoBuilder.UmBuilder().Padrao(), MovimentoProvisaoBuilder.UmBuilder().Padrao() }; _evento = EventoParcelaEmitidaBuilder.UmEvento() .Com(PremioBuilder.Um().Padrao() .Com(provisoes)).Build(); _emissaoPremio.Parcelas.ForEach(p => p.MovimentoToProvisao(_evento)); var parcela = _emissaoPremio.Parcelas.First(); Assert.That(provisoes.Count(), Is.EqualTo(_evento.Premios.First().MovimentosProvisao.Count())); Assert.That(provisoes.Count(), Is.EqualTo(parcela.Provisoes.Count())); }
public Domain.EventoPremio ToEvento(dynamic evento, DateTime DataExecucaoEvento) { EventoPremio eventopremio; switch ((TipoEventoEnum)evento.TipoEventoId) { case TipoEventoEnum.EmissaoPremio: eventopremio = new EventoEmissaoPremio(evento.Identificador, evento.IdentificadorCorrelacao, evento.IdentificadorNegocio, DataExecucaoEvento); eventopremio.Id = evento.IDEvento; break; case TipoEventoEnum.ApropriacaoPremio: eventopremio = new EventoApropriacaoPremio(evento.Identificador, evento.IdentificadorCorrelacao, evento.IdentificadorNegocio, DataExecucaoEvento); eventopremio.Id = evento.IDEvento; break; case TipoEventoEnum.DesapropriacaoPremio: eventopremio = new EventoDesapropriacaoPremio(evento.Identificador, evento.IdentificadorCorrelacao, evento.IdentificadorNegocio, DataExecucaoEvento); eventopremio.Id = evento.IDEvento; break; case TipoEventoEnum.AjustePremio: eventopremio = new EventoAjustePremio(evento.Identificador, evento.IdentificadorCorrelacao, evento.IdentificadorNegocio, DataExecucaoEvento); eventopremio.Id = evento.IDEvento; break; case TipoEventoEnum.PortabilidadePremio: eventopremio = new EventoPortabilidadePremio(evento.Identificador, evento.IdentificadorCorrelacao, evento.IdentificadorNegocio, DataExecucaoEvento); eventopremio.Id = evento.IDEvento; break; default: eventopremio = null; break; } return(eventopremio); }
public static void AdicionarProvisoes(this IParcelaEmitida premioEmitido, EventoEmissaoPremio eventoPremio) { premioEmitido.Parcelas.SafeForEach(p => MovimentoToProvisao(p, eventoPremio)); }
public static void Validar(this EventoEmissaoPremio evento, CoberturaContratada cobertura) { var coberturaValidate = Assertion.NotNull(cobertura, "O Evento não possui cobertura cadastrada."); coberturaValidate.Validate(); }