public async Task <Transacao> RealizarPagamentoPedido(PagamentoPedido pagamentoPedido) { var pedido = new Pedido { Id = pagamentoPedido.PedidoId, Valor = pagamentoPedido.Total }; var pagamento = new Pagamento { Valor = pagamentoPedido.Total, NomeCartao = pagamentoPedido.NomeCartao, NumeroCartao = pagamentoPedido.NumeroCartao, ExpiracaoCartao = pagamentoPedido.ExpiracaoCartao, CvvCartao = pagamentoPedido.CvvCartao, PedidoId = pagamentoPedido.PedidoId }; var transacao = _pagamentoCartaoCreditoFacade.RealizarPagamento(pedido, pagamento); if (transacao.StatusTransacao == StatusTransacao.Pago) { pagamento.AdicionarEvento( new PagamentoRealizadoEvent( pedido.Id, pagamentoPedido.ClienteId, transacao.PagamentoId, transacao.Id, pedido.Valor ) ); _pagamentoRepository.Adicionar(pagamento); _pagamentoRepository.AdicionarTransacao(transacao); await _pagamentoRepository.UnitOfWork.Commit(); return(transacao); } await _mediatorHandler.PublicarNotificacao( new DomainNotification("pagamento", "A operadora recusou o pagamento") ); await _mediatorHandler.PublicarEvento( new PagamentoRecusadoEvent( pedido.Id, pagamentoPedido.ClienteId, transacao.PagamentoId, transacao.Id, pedido.Valor ) ); return(transacao); }
public static RecebimentoVenda CreateRecebimentoVendaByPedido(PagamentoPedido pag, Pedido.Pedido pedido) { return(new RecebimentoVenda { DataMovimento = pedido.DataPedido, Caixa = pedido.Caixa, Usuario = pedido.Usuario, Empresa = pedido.Empresa, FormaPagamento = pag.FormaPagamento, Historico = "RECEBIMENTO DO PEDIDO " + pag.Pedido.Id + " PARCELA " + pag.Parcela, Valor = pag.ValorTotal }); }
public async Task Handle(PedidoEstoqueConfirmadoEvent message, CancellationToken cancellationToken) { var pagamentoPedido = new PagamentoPedido { PedidoId = message.PedidoId, ClienteId = message.ClienteId, Total = message.Total, NomeCartao = message.NomeCartao, NumeroCartao = message.NumeroCartao, ExpiracaoCartao = message.ExpiracaoCartao, CvvCartao = message.CvvCartao }; await _pagamentoService.RealizarPagamentoPedido(pagamentoPedido); }
public static void IncluirPagamentoPedido(PagamentoPedido pagamento) { }