Exemplo n.º 1
0
        public List <Models.Pagamento> ObterTodos()
        {
            List <Models.Pagamento> dados = new List <Models.Pagamento>();

            try
            {
                string    sql = @"select * from pagamento";
                DataTable dt  = _bd.ExecutarSelect(sql);
                foreach (DataRow row in dt.Rows)
                {
                    Models.Pagamento pagamento = new Models.Pagamento();
                    pagamento.Id           = Convert.ToInt32(row["Id"]);
                    pagamento.Descriçao    = row["Descriçao"].ToString();
                    pagamento.FormaPag     = row["FormaPag"].ToString();
                    pagamento.dtVencimento = row["DtVencimento"].ToString();
                    pagamento.Valor        = Convert.ToDouble(row["Valor"]);
                    pagamento.Quitado      = Convert.ToBoolean(row["Quitado"]);
                    pagamento.dtPagamento  = row["DtPagamento"].ToString();
                    pagamento.ValorParcial = Convert.ToDouble(row["ValorParcial"]);
                    dados.Add(pagamento);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                _bd.Fechar();
            }
            return(dados);
        }
        public async Task <Transacao> AutorizarPagamento(Models.Pagamento pagamento)
        {
            var nerdsPagSvc = new NerdsPagService(_pagamentoConfig.DefaultApiKey,
                                                  _pagamentoConfig.DefaultEncryptionKey);

            var cardHashGen = new CardHash(nerdsPagSvc)
            {
                CardNumber         = pagamento.CartaoCredito.NumeroCartao,
                CardHolderName     = pagamento.CartaoCredito.NomeCartao,
                CardExpirationDate = pagamento.CartaoCredito.MesAnoVencimento,
                CardCvv            = pagamento.CartaoCredito.CVV
            };

            var cardHash = cardHashGen.Generate();

            var transacao = new Transaction(nerdsPagSvc)
            {
                CardHash           = cardHash,
                CardNumber         = pagamento.CartaoCredito.NumeroCartao,
                CardHolderName     = pagamento.CartaoCredito.NomeCartao,
                CardExpirationDate = pagamento.CartaoCredito.MesAnoVencimento,
                CardCvv            = pagamento.CartaoCredito.CVV,
                PaymentMethod      = PaymentMethod.CreditCard,
                Amount             = pagamento.Valor
            };

            return(ParaTransacao(await transacao.AuthorizeCardTransaction()));
        }
Exemplo n.º 3
0
        public ActionResult EditarPagamento(Models.Pagamento collection)
        {
            Models.Data.PagamentoData pd = new Models.Data.PagamentoData();
            pd.EditarPagamento(collection);

            return(RedirectToAction(nameof(ListaPagamento)));
        }
Exemplo n.º 4
0
        public async Task <ResponseMessage> AutorizarPagamento(Models.Pagamento pagamento)
        {
            var transacao = await _pagamentoFacade.AutorizarPagamento(pagamento);

            var validationResult = new ValidationResult();

            if (transacao.Status != StatusTransacao.Autorizado)
            {
                validationResult.Errors.Add(new ValidationFailure("Pagamento", "Pagamento recusado, entre em contato com a sua operadora de cartão."));
                return(new ResponseMessage(validationResult));
            }

            pagamento.AdicionarTransacao(transacao);
            _pagamentoRepository.AdicionarPagamento(pagamento);

            if (!await _pagamentoRepository.UnitOfWork.Commit())
            {
                validationResult.Errors.Add(new ValidationFailure("Pagamento", "Houve um erro ao realizar o pagamento."));

                //TODO: Comunicar com o gateway para realizar o estorno.

                return(new ResponseMessage(validationResult));
            }

            return(new ResponseMessage(validationResult));
        }
Exemplo n.º 5
0
 public void Registrar([FromBody] string conteudo)
 {
     Models.Pagamento       pagamento = JsonConvert.DeserializeObject <Models.Pagamento>(conteudo);
     Models.LojaDataContext dc        = new Models.LojaDataContext();
     dc.Pagamentos.InsertOnSubmit(pagamento);
     dc.SubmitChanges();
 }
Exemplo n.º 6
0
        public List <Models.Pagamento> Listar(Models.Pagamento pagamento)
        {
            Models.LojaDataContext dc = new Models.LojaDataContext();
            var pagamentos            = from p in dc.Pagamentos
                                        where p.funcionario_id == pagamento.funcionario_id && p.mesReferente == pagamento.mesReferente && p.anoReferente == pagamento.anoReferente
                                        select p;

            return(pagamentos.ToList());
        }
Exemplo n.º 7
0
 public void Alterar(int id, [FromBody] string conteudo)
 {
     Models.LojaDataContext dc           = new Models.LojaDataContext();
     Models.Pagamento       newPagamento = JsonConvert.DeserializeObject <Models.Pagamento>(conteudo);
     Models.Pagamento       oldPagamento = (from p in dc.Pagamentos
                                            where p.id == id
                                            select p).Single();
     oldPagamento = newPagamento;
     dc.SubmitChanges();
 }
Exemplo n.º 8
0
 public static PagamentoResult ToResult(this Models.Pagamento result)
 {
     return(new PagamentoResult()
     {
         NumeroCartao = result.NumeroCartao,
         NumeroParcelas = result.NumeroParcelas,
         PagamentoId = result.PagamentoId,
         Total = result.Total,
         ValorParcelas = result.ValorParcelas
     });
 }
Exemplo n.º 9
0
        public bool QuitarParcial(double valorparcial, int id)
        {
            int      linhasAfetadas = 0;
            DateTime thisDay        = DateTime.Today;

            string dtpagamento = thisDay.ToString();
            var    dt          = dtpagamento.Split(' ');

            Models.Pagamento pagamento = new Models.Pagamento();
            pagamento = Obter(id);
            pagamento.ValorParcial = pagamento.ValorParcial + valorparcial;

            try
            {
                if (pagamento.ValorParcial > pagamento.Valor)
                {
                    return(false);
                }
                else
                {
                    if (pagamento.Valor == pagamento.ValorParcial)
                    {
                        GravarParcial(pagamento.Valor, pagamento.dtVencimento, pagamento.Descriçao, pagamento.FormaPag, valorparcial, dt[0]);

                        string update = @"update pagamento set ValorParcial = @ValorParcial, Quitado = @Quitado where Id =" + id;

                        //var parametros = _bd.GerarParametros();
                        Dictionary <string, object> parametros = new Dictionary <string, object>();
                        parametros.Add("@ValorParcial", pagamento.ValorParcial);
                        parametros.Add("@Quitado", true);

                        linhasAfetadas = _bd.ExecutarNonQuery(update, parametros);
                    }
                    else
                    {
                        GravarParcial(pagamento.Valor, pagamento.dtVencimento, pagamento.Descriçao, pagamento.FormaPag, valorparcial, dt[0]);
                        string update = @"update pagamento set ValorParcial = @ValorParcial where Id =" + id;

                        //var parametros = _bd.GerarParametros();
                        Dictionary <string, object> parametros = new Dictionary <string, object>();
                        parametros.Add("@ValorParcial", pagamento.ValorParcial);

                        linhasAfetadas = _bd.ExecutarNonQuery(update, parametros);
                    }
                }
            }
            catch (Exception ex)
            {
                string erro = ex.Message;
            }

            return(linhasAfetadas > 0);
        }
Exemplo n.º 10
0
        public async Task <PagamentoResult> InserirAsync(PagamentoSignature signature)
        {
            var pagamento = new Models.Pagamento(signature.NumeroCartao, signature.NumeroParcelas, signature.Total);

            if (!pagamento.ValidarCartao())
            {
                throw new System.ArgumentException("Cartão de crédito inválido");
            }

            await _pagamentoRepository.InserirAsync(pagamento);

            return(pagamento.ToResult());
        }
Exemplo n.º 11
0
        internal Models.Pagamento Map(DataRow row)
        {
            Models.Pagamento pagamento = new Models.Pagamento();

            pagamento.Id           = Convert.ToInt32(row["Id"]);
            pagamento.FormaPag     = row["FormaPag"].ToString();
            pagamento.Descriçao    = row["Descriçao"].ToString();
            pagamento.dtVencimento = row["DtVencimento"].ToString();
            pagamento.dtPagamento  = row["DtPagamento"].ToString();
            pagamento.Valor        = Convert.ToDouble(row["Valor"]);
            pagamento.ValorParcial = Convert.ToDouble(row["ValorParcial"]);
            pagamento.Quitado      = Convert.ToBoolean(row["Quitado"]);

            return(pagamento);
        }
Exemplo n.º 12
0
        public bool Extornar(int id) //revisar
        {
            Models.Pagamento pagamento = new Models.Pagamento();

            pagamento = Obter(id);
            int    linhasAfetadas = 0;
            bool   quitado        = false;
            double valorparcial   = 0;
            string dt             = "";
            int    nid            = 0;

            if (pagamento.Valor == pagamento.ValorParcial)
            {
                nid = id;
            }
            else
            {
                List <Models.Pagamento> receb = ObterExtorno(id, pagamento.Valor, pagamento.Descriçao);

                foreach (var d in receb)
                {
                    if (d.ValorParcial == pagamento.Valor || d.Quitado == false)
                    {
                        nid          = d.Id;
                        valorparcial = d.ValorParcial - pagamento.ValorParcial;
                    }
                }
                Excluir(id);
            }
            try
            {
                string update = @"update pagamento set Quitado = @Quitado, DtPagamento = @DtPagamento, ValorParcial = @ValorParcial where Id =" + nid;

                //var parametros = _bd.GerarParametros();
                Dictionary <string, object> parametros = new Dictionary <string, object>();
                parametros.Add("@Quitado", quitado);
                parametros.Add("@ValorParcial", valorparcial);
                parametros.Add("@DtPagamento", dt);

                linhasAfetadas = _bd.ExecutarNonQuery(update, parametros);
            }
            catch (Exception ex)
            {
                string erro = ex.Message;
            }

            return(linhasAfetadas > 0);
        }
Exemplo n.º 13
0
        public Models.Pagamento Obter(int id)
        {
            Models.Pagamento pagamento = null;

            string select = @"select * 
                              from pagamento 
                              where id = " + id;

            DataTable dt = _bd.ExecutarSelect(select);

            if (dt.Rows.Count == 1)
            {
                //ORM - Relacional -> Objeto
                pagamento = Map(dt.Rows[0]);
            }

            return(pagamento);
        }
Exemplo n.º 14
0
        private async Task <ResponseMessage> AutorizarPagamento(PedidoIniciadoIntegrationEvent message)
        {
            ResponseMessage response;

            using (var scope = _serviceProvider.CreateScope())
            {
                var pagamentoService = scope.ServiceProvider.GetRequiredService <IPagamentoService>();
                var pagamento        = new Models.Pagamento
                {
                    PedidoId      = message.PedidoId,
                    TipoPagamento = (TipoPagamento)message.TipoPagamento,
                    Valor         = message.Valor,
                    CartaoCredito = new CartaoCredito(message.NomeCartao, message.NumeroCartao, message.MesAnoVencimento, message.CVV)
                };

                response = await pagamentoService.AutorizarPagamento(pagamento);
            }

            return(response);
        }
Exemplo n.º 15
0
        public List <Models.Pagamento> ObterExtorno(int id, double valor, string desc)
        {
            List <Models.Pagamento> dados = new List <Models.Pagamento>();

            try
            {
                string sql = @"select * from pagamento where Descriçao like @Descriçao";

                var parametros = _bd.GerarParametros();
                parametros.Add("@Descriçao", "%" + desc + "%");

                DataTable dt = _bd.ExecutarSelect(sql, parametros);
                foreach (DataRow row in dt.Rows)
                {
                    Models.Pagamento pagamento = new Models.Pagamento();
                    pagamento.Id           = Convert.ToInt32(row["Id"]);
                    pagamento.Descriçao    = row["Descriçao"].ToString();
                    pagamento.FormaPag     = row["FormaPag"].ToString();
                    pagamento.dtVencimento = row["DtVencimento"].ToString();
                    pagamento.Valor        = Convert.ToDouble(row["Valor"]);
                    pagamento.Quitado      = Convert.ToBoolean(row["Quitado"]);
                    pagamento.dtPagamento  = row["DtPagamento"].ToString();
                    pagamento.ValorParcial = Convert.ToDouble(row["ValorParcial"]);
                    dados.Add(pagamento);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                _bd.Fechar();
            }
            return(dados);
        }
Exemplo n.º 16
0
 public void AdicionarPagamento(Models.Pagamento pagamento)
 {
     _context.Pagamentos.Add(pagamento);
 }
Exemplo n.º 17
0
 public async Task InserirAsync(Models.Pagamento pagamento)
 {
     await _contexto.Pagamento.InsertOneAsync(pagamento);
 }