public Task Invoke()
        {
            _logger.LogInformation("> PedidoFinalizadoJob: Iniciando");
            var pedidos = _pedidoRepository.ObterTodosPedidosPorSituacao(PedidoSituacaoConstant.ENTREGUE);

            foreach (var pedido in pedidos)
            {
                var pedidoSituacaoDB = pedido.PedidoSituacoes.FirstOrDefault(a => a.Situacao == PedidoSituacaoConstant.ENTREGUE);

                if (pedidoSituacaoDB != null)
                {
                    int tolerancia = _configuration.GetValue <int>("Finalizado:Days");

                    if (DateTime.Now >= pedidoSituacaoDB.Data.AddDays(tolerancia))
                    {
                        PedidoSituacao pedidoSituacao = new PedidoSituacao();
                        pedidoSituacao.PedidoId = pedido.Id;
                        pedidoSituacao.Situacao = PedidoSituacaoConstant.FINALIZADO;
                        pedidoSituacao.Data     = DateTime.Now;
                        pedidoSituacao.Dados    = string.Empty;

                        _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);

                        pedido.Situacao = PedidoSituacaoConstant.FINALIZADO;
                        _pedidoRepository.Atualizar(pedido);
                    }
                }
            }
            _logger.LogInformation("> PedidoFinalizadoJob: Finalizado");
            return(Task.CompletedTask);
        }
        public void Excluir(int id)
        {
            PedidoSituacao pedidoSituacao = ObterPedidoSituacao(id);

            _banco.Remove(pedidoSituacao);
            _banco.SaveChanges();
        }
Exemplo n.º 3
0
        public Task Invoke()
        {
            List <Pedido> pedidos = _pedidoRepository.ObterPedidosPorSituacao(PedidoSituacaoConstant.DEVOLVER);

            foreach (Pedido pedido in pedidos)
            {
                try
                {
                    var result = new Correios.NET.Services().GetPackageTracking(pedido.FreteCodRastreamento);
                    if (result.IsDelivered)
                    {
                        pedido.Situacao     = PedidoSituacaoConstant.DEVOLVER_ENTREGUE;
                        pedido.DataRegistro = result.DeliveryDate.Value;

                        PedidoSituacao pedidoSituacao = _mapper.Map <Pedido, PedidoSituacao>(pedido);
                        pedidoSituacao.Situacao = PedidoSituacaoConstant.DEVOLVER_ENTREGUE;
                        pedidoSituacao.Data     = result.DeliveryDate.Value;

                        _pedidoRepository.Atualizar(pedido);
                        _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);
                    }
                }
                catch
                {
                }
            }
            return(Task.CompletedTask);
        }
Exemplo n.º 4
0
        public Task Invoke()
        {
            _logger.LogInformation("> PedidoEntregueJob: Iniciando");
            var pedidos = _pedidoRepository.ObterTodosPedidosPorSituacao(PedidoSituacaoConstant.EM_TRANSPORTE);

            foreach (var pedido in pedidos)
            {
                var result = new Correios.NET.Services().GetPackageTracking(pedido.FreteCodRastreamento);

                if (result.IsDelivered)
                {
                    PedidoSituacao pedidoSituacao = new PedidoSituacao();
                    pedidoSituacao.PedidoId = pedido.Id;
                    pedidoSituacao.Situacao = PedidoSituacaoConstant.ENTREGUE;
                    pedidoSituacao.Data     = result.DeliveryDate.Value;
                    pedidoSituacao.Dados    = JsonConvert.SerializeObject(result);

                    _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);

                    pedido.Situacao = PedidoSituacaoConstant.ENTREGUE;
                    _pedidoRepository.Atualizar(pedido);
                }
            }
            _logger.LogInformation("> PedidoEntregueJob: Finalizado");
            return(Task.CompletedTask);
        }
Exemplo n.º 5
0
        public Task Invoke()
        {
            _logger.LogInformation("> PedidoPagamentoSituacaoJob: Iniciando");
            var pedidosRealizados = _pedidoRepository.ObterTodosPedidosPorSituacao(PedidoSituacaoConstant.PEDIDO_REALIZADO);

            foreach (var pedido in pedidosRealizados)
            {
                string situacao    = null;
                var    transaction = _gerenciarPagarMe.ObterTransacao(pedido.TransactionId);

                int toleranciaDias = _configuration.GetValue <int>("Pagamento:PagarMe:BoletoDiaExpiracao") + _configuration.GetValue <int>("Pagamento:PagarMe:BoletoDiaToleranciaVencido");
                if (transaction.Status == TransactionStatus.WaitingPayment && transaction.PaymentMethod == PaymentMethod.Boleto && DateTime.Now > pedido.DataRegistro.AddDays(toleranciaDias))
                {
                    situacao = PedidoSituacaoConstant.PAGAMENTO_NAO_REALIZADO;
                    _produtoRepository.DevolverProdutosEstoque(pedido);
                }

                if (transaction.Status == TransactionStatus.Refused)
                {
                    situacao = PedidoSituacaoConstant.PAGAMENTO_REJEITADO;
                    _produtoRepository.DevolverProdutosEstoque(pedido);
                }

                if (transaction.Status == TransactionStatus.Authorized || transaction.Status == TransactionStatus.Paid)
                {
                    situacao = PedidoSituacaoConstant.PAGAMENTO_APROVADO;

                    //ENVIAR E-MAIL CONFIRMAÇÃO DO PAGAMENTO
                    _gerenciarEmail.EnviarConfirmacaoPagamento(pedido);
                }

                if (transaction.Status == TransactionStatus.Refunded)
                {
                    situacao = PedidoSituacaoConstant.ESTORNO;
                    _produtoRepository.DevolverProdutosEstoque(pedido);
                }

                if (situacao != null)
                {
                    TransacaoPagarMe transacaoPagarMe = _mapper.Map <Transaction, TransacaoPagarMe>(transaction);
                    transacaoPagarMe.Customer.Gender = (pedido.Cliente.Sexo == "M") ? Gender.Male : Gender.Female;

                    PedidoSituacao pedidoSituacao = new PedidoSituacao();
                    pedidoSituacao.PedidoId = pedido.Id;
                    pedidoSituacao.Situacao = situacao;
                    pedidoSituacao.Data     = transaction.DateUpdated.Value;
                    pedidoSituacao.Dados    = JsonConvert.SerializeObject(transacaoPagarMe);

                    _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);

                    pedido.Situacao = situacao;
                    _pedidoRepository.Atualizar(pedido);
                }
            }

            _logger.LogInformation("> PedidoPagamentoSituacaoJob: Finalizado");

            return(Task.CompletedTask);
        }
        public async Task SalvarPedidoSituacao(int pedidoId, object dados, string situacao)
        {
            var pedidoSituacao = new PedidoSituacao();

            pedidoSituacao.Data     = DateTime.Now;
            pedidoSituacao.Dados    = JsonConvert.SerializeObject(dados);
            pedidoSituacao.PedidoId = pedidoId;
            pedidoSituacao.Situacao = situacao;
            await _pedidoSituacaoRepository.Adicionar(pedidoSituacao);
        }
        private void SalvarPedidoSituacao(int pedidoId, object dados, string situacao)
        {
            var pedidoSituacao = new PedidoSituacao();

            pedidoSituacao.Data     = DateTime.Now;
            pedidoSituacao.Dados    = JsonConvert.SerializeObject(dados);
            pedidoSituacao.PedidoId = pedidoId;
            pedidoSituacao.Situacao = situacao;
            _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);
        }
        private void SalvarPedidoSituacao(Pedido pedido, string situacao, object objeto = null)
        {
            PedidoSituacao pedidoSituacao = _mapper.Map <Pedido, PedidoSituacao>(pedido);

            pedidoSituacao.Situacao = situacao;
            if (objeto != null)
            {
                pedidoSituacao.Dados = JsonConvert.SerializeObject(objeto);
            }
            _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);
        }
        private async Task SalvarPedidoSituacao(List <ItemVendaViewModel> produtos)
        {
            TransactionProduto tp = new TransactionProduto {
                Transaction = transacaoPagarMe, Produtos = produtos
            };
            PedidoSituacao pedidoSituacao = _mapper.Map <Pedido, PedidoSituacao>(pedido);

            pedidoSituacao = _mapper.Map(tp, pedidoSituacao);

            pedidoSituacao.Situacao = PedidoSituacaoConstant.PEDIDO_REALIZADO;

            await _pedidoSituacaoRepository.Adicionar(pedidoSituacao);
        }
        private void SalvarPedidoSituacao(List <ProdutoItem> produtos, TransacaoPagarMe transacaoPagarMe, Pedido pedido)
        {
            TransactionProduto tp = new TransactionProduto {
                Transaction = transacaoPagarMe, Produtos = produtos
            };
            PedidoSituacao pedidoSituacao = _mapper.Map <Pedido, PedidoSituacao>(pedido);

            pedidoSituacao = _mapper.Map <TransactionProduto, PedidoSituacao>(tp, pedidoSituacao);

            pedidoSituacao.Situacao = PedidoSituacaoConstant.PEDIDO_REALIZADO;

            _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);
        }
        public async Task <IViewComponentResult> InvokeAsync(Pedido pedido)
        {
            List <PedidoSituacao> situacoes   = pedido.PedidoSituacoes;
            List <PedidoStatus>   statusFinal = statusDefault;

            if (pedido.Situacao == PedidoSituacaoConstant.PAGAMENTO_NAO_REALIZADO)
            {
                statusFinal = statusPaymentUnfinished;
            }
            else if (pedido.Situacao == PedidoSituacaoConstant.ESTORNO)
            {
                statusFinal = statusReturned;
                PedidoStatus   pedidoStatus   = statusFinal.Where(a => a.Status == PedidoSituacaoConstant.NF_EMITIDA).FirstOrDefault();
                PedidoSituacao pedidoSituacao = situacoes.Where(a => a.Situacao == PedidoSituacaoConstant.NF_EMITIDA).FirstOrDefault();
                if (pedidoSituacao == null)
                {
                    statusFinal.Remove(pedidoStatus);
                }
            }
            else if (statusDevolution.Where(a => a.Status == pedido.Situacao).FirstOrDefault() != null)
            {
                statusFinal = statusDevolution;
                if (pedido.Situacao == PedidoSituacaoConstant.DEVOLUCAO_REJEITADA)
                {
                    statusFinal.Remove(statusFinal[2]);
                    statusFinal.Remove(statusFinal[2]);
                }
                else
                {
                    statusFinal.Remove(statusFinal[4]);
                }
            }


            foreach (PedidoSituacao situacao in situacoes)
            {
                PedidoStatus pedidoStatus = statusFinal.Where(a => a.Status == situacao.Situacao).FirstOrDefault();
                if (pedidoStatus != null)
                {
                    pedidoStatus.Data   = situacao.Data;
                    pedidoStatus.Existe = true;
                }
            }
            return(View(statusFinal));
        }
        public Task Invoke()
        {
            _logger.LogInformation("--- SCHEDULER PedidoPagamentoInvocable (inicio) ---");
            List <Pedido> pedidos = _pedidoRepository.ObterPedidosPorSituacao(PedidoSituacaoConstant.AGUARDANDO_PAGAMENTO);

            foreach (var pedido in pedidos)
            {
                string Situacao    = null;
                var    transaction = _gerenciarPagarMe.ObterTransacao(pedido.TransactionId);
                if (transaction.Status == TransactionStatus.WaitingPayment && transaction.PaymentMethod == PaymentMethod.Boleto && transaction.BoletoExpirationDate < DateTime.Now)
                {
                    Situacao = PedidoSituacaoConstant.PAGAMENTO_NAO_REALIZADO;
                    _produtoRepository.DevolverEstoque(pedido);
                }
                else if (transaction.Status == TransactionStatus.Refused)
                {
                    Situacao = PedidoSituacaoConstant.PAGAMENTO_REJEITADO;
                    _produtoRepository.DevolverEstoque(pedido);
                }
                else if (transaction.Status == TransactionStatus.Authorized || transaction.Status == TransactionStatus.Paid)
                {
                    Situacao = PedidoSituacaoConstant.PAGAMENTO_APROVADO;
                }
                else if (transaction.Status == TransactionStatus.Refunded)
                {
                    Situacao = PedidoSituacaoConstant.ESTORNO;
                    _produtoRepository.DevolverEstoque(pedido);
                }
                if (Situacao != null)
                {
                    //TransacaoPagarMe transacaoPagarMe = _mapper.Map<Transaction, TransacaoPagarMe>(transaction);

                    PedidoSituacao pedidoSituacao = new PedidoSituacao();
                    pedidoSituacao.PedidoId = pedido.Id;
                    pedidoSituacao.Situacao = Situacao;
                    pedidoSituacao.Data     = transaction.DateUpdated.Value;

                    _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);
                    pedido.Situacao = Situacao;
                    _pedidoRepository.Atualizar(pedido);
                }
            }
            _logger.LogInformation("--- SCHEDULER PedidoPagamentoInvocable (fim) ---");
            return(Task.CompletedTask);
        }
        public Task Invoke()
        {
            List <Pedido> pedidos = _pedidoRepository.ObterPedidosPorSituacao(PedidoSituacaoConstant.ENTREGUE);

            foreach (Pedido pedido in pedidos)
            {
                if (DateTime.Now >= pedido.DataRegistro.AddDays(7))
                {
                    pedido.Situacao     = PedidoSituacaoConstant.FINALIZADO;
                    pedido.DataRegistro = DateTime.Now;

                    PedidoSituacao pedidoSituacao = _mapper.Map <Pedido, PedidoSituacao>(pedido);
                    pedidoSituacao.Situacao = PedidoSituacaoConstant.FINALIZADO;

                    _pedidoRepository.Atualizar(pedido);
                    _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);
                }
            }
            return(Task.CompletedTask);
        }
Exemplo n.º 14
0
        private Pedido SalvarPedido(List <ProdutoItem> produtos, Transaction pagarMe)
        {
            TransacaoPagarMe transacao = _mapper.Map <Transaction, TransacaoPagarMe>(pagarMe);

            Pedido pedido = _mapper.Map <TransacaoPagarMe, Pedido>(transacao);

            pedido          = _mapper.Map(produtos, pedido);
            pedido.Situacao = PedidoSituacaoConstant.AGUARDANDO_PAGAMENTO;

            _pedidoRepository.Cadastrar(pedido);

            PedidoSituacao pedidoSituacao = _mapper.Map <Pedido, PedidoSituacao>(pedido);

            pedidoSituacao.Situacao = PedidoSituacaoConstant.AGUARDANDO_PAGAMENTO;

            _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);

            BaixaEstoque(produtos);
            _cookie.Excluir("Carrinho.Compras");
            _cookie.Excluir("Carrinho.ValorPrazoFrete");

            return(pedido);
        }
 public void Atualizar(PedidoSituacao pedidoSituacao)
 {
     _banco.Update(pedidoSituacao);
     _banco.SaveChanges();
 }
 public void Cadastrar(PedidoSituacao pedidoSituacao)
 {
     _banco.Add(pedidoSituacao);
     _banco.SaveChanges();
 }
        public Task Invoke()
        {
            var pedidosRealizados = _pedidoRepository.ObterTodosPedidosRealizados();

            foreach (var pedido in pedidosRealizados)
            {
                string situacao    = null;
                var    transaction = _gerenciarPagarMe.ObterTransacao(pedido.TransactionId);


                int toleranciaDias = _configuration.GetValue <int>("Pagamento:PagarMe:BoletoDiaExpiracao") + _configuration.GetValue <int>("Pagamento:PagarMe:BoletoDiaToleranciaVencido");

                //DateTime dt = DateTime.Parse("30/06/2020");

                if (transaction.Status == TransactionStatus.WaitingPayment && transaction.PaymentMethod == PaymentMethod.Boleto && DateTime.Now /*dt*/ > pedido.DataRegistro.AddDays(toleranciaDias))
                {
                    situacao = PedidoSituacaoConstant.PAGAMENTO_NAO_REALIZADO;
                    DevolverProdutosEstoque(pedido);
                }

                if (transaction.Status == TransactionStatus.Refused)
                {
                    situacao = PedidoSituacaoConstant.PAGAMENTO_REJEITADO;
                    DevolverProdutosEstoque(pedido);
                }

                if (transaction.Status == TransactionStatus.Authorized || transaction.Status == TransactionStatus.Paid)
                {
                    situacao = PedidoSituacaoConstant.PAGAMENTO_APROVADO;
                }

                if (transaction.Status == TransactionStatus.Refunded)
                {
                    situacao = PedidoSituacaoConstant.ESTORNO;
                    DevolverProdutosEstoque(pedido);
                }


                if (situacao != null)
                {
                    TransacaoPagarMe transacaoPagarMe = _mapper.Map <Transaction, TransacaoPagarMe>(transaction);

                    transacaoPagarMe.Customer.Gender = (pedido.Cliente.Sexo == "M") ? Gender.Male : Gender.Female;

                    PedidoSituacao pedidoSituacao = new PedidoSituacao();
                    pedidoSituacao.PedidoId = pedido.Id;
                    pedidoSituacao.Situacao = situacao;
                    pedidoSituacao.Data     = transaction.DateUpdated.Value;
                    pedidoSituacao.Dados    = JsonConvert.SerializeObject(transacaoPagarMe);

                    _pedidoSituacaoRepository.Cadastrar(pedidoSituacao);

                    pedido.Situacao = situacao;
                    _pedidoRepository.Atualizar(pedido);
                }
            }

            Debug.WriteLine("--" + DateTime.Now + " ==> PedidoPagamentoSituacaoJob - Executado!--");

            return(Task.CompletedTask);
        }