public static IEnumerable <PremioApropriado> ToEventoApropriacao(this IParcelaApropriada premioApropriado)
        {
            var evento = new EventoApropriacaoPremio(premioApropriado.Identificador, premioApropriado.IdentificadorCorrelacao, premioApropriado.IdentificadorNegocio, premioApropriado.DataExecucaoEvento);

            premioApropriado.Parcelas.SafeForEach(premio => evento.AdicionarPremiosApropriados(premio.ToPremioApropriado()));

            return(evento.Premios);
        }
示例#2
0
        public async Task DadoUmEventoApropriacaoPremioDevePersistirDadosdoEvento()
        {
            var parcela = 1;

            _eventoApropriacao = ObterEventoApropriado(TipoRegimeFinanceiroEnum.Capitalizacao, parcela);

            _eventos.Salvar(_eventoApropriacao).Wait();

            var existe = await _eventos.ExisteEvento(_identificador);

            Assert.That(existe, Is.EqualTo(true));
            Assert.That(_eventoEmissao.Id, Is.Not.EqualTo(default(Guid)));
        }
示例#3
0
        public async Task <EventoPremio> Com(IParcelaApropriada message)
        {
            var evento = new EventoApropriacaoPremio(message.Identificador, message.IdentificadorCorrelacao, message.IdentificadorNegocio, message.DataExecucaoEvento);

            foreach (var parcela in message.Parcelas)
            {
                var premio = (await _premios.CriarPremio(_mapear.ToPremio(parcela), evento))
                             .ComPagamento(_mapear.ToPagamentoPremio(parcela.Pagamento));

                evento.AdicionarPremio(premio);
            }

            return(evento);
        }
示例#4
0
        public async Task DadoUmEventoDeApropriacaoRSNãoDevePersistirDados()
        {
            var parcela = IdentificadoresPadrao.NumeroParcela;

            _eventoApropriacao = ObterEventoApropriado(TipoRegimeFinanceiroEnum.FundoAcumulacao, parcela);

            _eventos.Salvar(_eventoApropriacao).Wait();

            var premio = _eventoApropriacao.Premios.First();

            _premios = GetInstance <IPremios>();
            var dtoPremio = await _premios.ObterPorItemCertificado <Premio>(premio.ItemCertificadoApoliceId, (short)TipoMovimentoEnum.Apropriacao, parcela);

            _provisoes = GetInstance <IProvisoes>();
            var dtoProvisao = await _provisoes.Obter(premio.Id, premio.Cobertura.Id, (short)TipoProvisaoEnum.PMBAC, (short)TipoMovimentoEnum.Apropriacao, parcela);

            Assert.That(dtoPremio, Is.Not.Null);
            Assert.That(dtoProvisao, Is.Null);
        }
示例#5
0
        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);
        }
示例#6
0
        public async Task DadoUmEventoApropriacaoPremioDevePersistirDadosDoPremio()
        {
            var parcela = 10;

            _eventoApropriacao = ObterEventoApropriado(TipoRegimeFinanceiroEnum.Capitalizacao, parcela);

            _eventos.Salvar(_eventoApropriacao).Wait();

            var premio = _eventoApropriacao.Premios.First();

            _premios = GetInstance <IPremios>();

            var dto = await _premios.ObterPorItemCertificado <PagamentoPremio>(premio.ItemCertificadoApoliceId, (short)TipoMovimentoEnum.Apropriacao, parcela);

            Assert.That(dto.DataPagamento, Is.EqualTo(premio.Pagamento.DataPagamento));
            Assert.That(dto.DataApropriacao, Is.EqualTo(premio.Pagamento.DataApropriacao));
            Assert.That(dto.ValorPago, Is.EqualTo(premio.Pagamento.ValorPago));
            Assert.That(dto.Desconto, Is.EqualTo(premio.Pagamento.Desconto));
            Assert.That(dto.Multa, Is.EqualTo(premio.Pagamento.Multa));
            Assert.That(dto.IOFARecolher, Is.EqualTo(premio.Pagamento.IOFARecolher));
            Assert.That(dto.IOFRetido, Is.EqualTo(premio.Pagamento.IOFRetido));
            Assert.That(dto.IdentificadorCredito, Is.EqualTo(premio.Pagamento.IdentificadorCredito));
        }