Пример #1
0
        public ActionResult RealizarPagamento([FromBody] DTOs.Pagamento pagamento)
        {
            var retorno = reservaNegocio.RealizarPagamento(pagamento);

            if (reservaNegocio.erros.Count > 0)
            {
                return(Ok(new { erros = reservaNegocio.erros }));
            }
            else
            {
                return(Ok(retorno));
            }
        }
Пример #2
0
        public bool RealizarPagamento(DTOs.Pagamento pagamento)
        {
            try
            {
                using (HSContext hs = new HSContext())
                {
                    var reserva = hs.Tbreserva.First(x => x.Idreserva == pagamento.idreserva);

                    var totalPagamentos = hs.Tbpagamento.Where(x => x.Idreserva == pagamento.idreserva).Sum(x => x.Valor);

                    var totalDividaCheckout = hs.Tbprodutoreserva.Where(x => x.Idreserva == pagamento.idreserva).Sum(x => x.Valor * x.Quantidade);

                    var totalPagamentoComCheckout = reserva.Valor + totalDividaCheckout;

                    if (totalPagamentos + decimal.Parse(pagamento.valor) > totalPagamentoComCheckout)
                    {
                        erros.Add("Não pode ser adicionado esse pagamento, porque o valor fica superior ao devido pelo cliente.");
                        return(false);
                    }
                    else
                    {
                        Tbpagamento pagamentoAdd = new Tbpagamento();
                        pagamentoAdd.Idreserva       = pagamento.idreserva;
                        pagamentoAdd.Datapagamento   = DateTime.Now;
                        pagamentoAdd.Valor           = Decimal.Parse(pagamento.valor);
                        pagamentoAdd.Chavepagamento  = pagamento.chavepagamento;
                        pagamentoAdd.Idtipopagamento = pagamento.idtipopagamento;
                        hs.Tbpagamento.Add(pagamentoAdd);
                        hs.SaveChanges();
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                erros.Add("O pagamento não foi inserido.");
                erros.Add(ex.Message);
                return(false);
            }
        }