示例#1
0
        public bool CancelarReserva(DTOs.Reserva reserva)
        {
            List <DTOs.produtosReserva> produtos = reserva.produtos;

            try
            {
                using (HSContext hs = new HSContext())
                {
                    var cancelar = hs.Tbreserva.First(x => x.Idreserva == reserva.idreserva);

                    cancelar.Datacancelamento   = DateTime.Now;
                    cancelar.Motivocancelamento = reserva.motivocancelamento;
                    hs.SaveChanges();
                    return(true);
                }
            }
            catch (Exception ex)
            {
                erros.Add("Reserva não foi cancelada.");
                erros.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    erros.Add(ex.InnerException.Message);
                }
                return(false);
            }
        }
示例#2
0
        public bool FinalizarReserva(DTOs.Reserva reserva)
        {
            List <DTOs.produtosReserva> produtos = reserva.produtos;

            try
            {
                using (HSContext hs = new HSContext())
                {
                    var finalizar = hs.Tbreserva.First(x => x.Idreserva == reserva.idreserva);


                    var valorcheckout  = hs.Tbprodutoreserva.Where(x => x.Idreserva == reserva.idreserva).Sum(x => x.Valor * x.Quantidade);
                    var valorpagamento = hs.Tbpagamento.Where(x => x.Idreserva == reserva.idreserva).Sum(x => x.Valor);

                    var totalPagamentoComCheckout = valorcheckout + valorpagamento;

                    if (finalizar.Checkout == false)
                    {
                        erros.Add("Não foi possível finalizar a reserva.");
                        erros.Add("O checkout dessa reserva ainda não foi realizado.");
                    }
                    else
                    {
                        if (valorpagamento == 0)
                        {
                            erros.Add("Não foi possível finalizar a reserva.");
                            erros.Add("Não foi identificado nenhum pagamento para a reserva.");
                        }
                        else
                        {
                            if ((finalizar.Valor + valorcheckout) > valorpagamento)
                            {
                                erros.Add("Não foi possível finalizar a reserva.");
                                erros.Add("O pagamento da reserva não bateu com o total da reserva, verifique novamente o pagamento dessa reserva.");
                            }
                            else
                            {
                                finalizar.Datafinalizacao = DateTime.Now;
                                hs.SaveChanges();
                            }
                        }
                    }
                    return(true);
                }
            }
            catch (Exception ex)
            {
                erros.Add("Reserva não finalizada.");
                erros.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    erros.Add(ex.InnerException.Message);
                }
                return(false);
            }
        }
示例#3
0
        public ActionResult AdicionarProdutosReservaCheckout([FromBody] DTOs.Reserva produtos)
        {
            var retorno = reservaNegocio.AdicionarProdutosReservaCheckout(produtos);

            if (reservaNegocio.erros.Count > 0)
            {
                return(Ok(new { erros = reservaNegocio.erros }));
            }
            else
            {
                return(Ok(retorno));
            }
        }
示例#4
0
        public IActionResult IncluirReserva([FromBody] DTOs.Reserva reserva)
        {
            var retorno = reservaNegocio.IncluirReserva(reserva);

            if (reservaNegocio.erros.Count > 0)
            {
                return(Ok(new { erros = reservaNegocio.erros }));
            }
            else
            {
                return(Ok(retorno));
            }
        }
示例#5
0
 public IActionResult CheckOut([FromBody] DTOs.Reserva reserva)
 {
     return(Ok(reservaNegocio.CheckOut(reserva.idreserva)));
 }
示例#6
0
        public bool AdicionarProdutosReservaCheckout(DTOs.Reserva reserva)
        {
            List <DTOs.produtosReserva> produtos = reserva.produtos;

            try
            {
                using (HSContext hs = new HSContext())
                {
                    var produtosdaReserva         = hs.Tbprodutoreserva.Where(x => x.Idreserva == reserva.idreserva).ToList();
                    var idprodutoscheckout        = produtosdaReserva.Select(x => x.Idprodutocheckout).ToList();
                    var idprodutoscheckoutReserva = produtos.Select(x => x.idprodutocheckout).ToList();

                    var idsParaDeletar = idprodutoscheckout.Except(idprodutoscheckoutReserva.Where(x => x != 0)).ToList();

                    var produtosDeletados = hs.Tbprodutoreserva.Where(x => idsParaDeletar.Contains(x.Idprodutocheckout)).ToList();

                    var reservaAtual = hs.Tbreserva.First(x => x.Idreserva == reserva.idreserva);
                    reservaAtual.Checkout = true;
                    if (produtos.Count > 0)
                    {
                        foreach (var item in produtos)
                        {
                            if (item.idprodutocheckout == 0)
                            {
                                hs.Tbprodutoreserva
                                .Add(new Tbprodutoreserva()
                                {
                                    Idproduto  = item.idproduto,
                                    Idreserva  = item.idreserva,
                                    Quantidade = item.quantidade,
                                    Valor      = decimal.Parse(item.valor.Replace(".", ","))
                                });
                            }
                            else
                            {
                                var produtoreserva = hs.Tbprodutoreserva.First(x => x.Idprodutocheckout == item.idprodutocheckout);
                                produtoreserva.Quantidade = item.quantidade;
                                produtoreserva.Valor      = decimal.Parse(item.valor.Replace(".", ","));
                            }
                        }

                        foreach (var item in produtosDeletados)
                        {
                            hs.Tbprodutoreserva.Remove(item);
                        }

                        hs.SaveChanges();
                        return(true);
                    }
                    else
                    {
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                erros.Add("Produtos do checkout não inseridos.");
                erros.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    erros.Add(ex.InnerException.Message);
                }
                return(false);
            }
        }
示例#7
0
        public bool IncluirReserva(DTOs.Reserva reserva)
        {
            try
            {
                var idcliente = this.Decrypt(reserva.idusuariocripto);
                using (HSContext hs = new HSContext())
                {
                    //var podeCadastrar = hs.Tbreserva
                    //    .Where
                    //    (
                    //        x =>
                    //        (
                    //            (x.Dataentrada >= DateTime.Parse(reserva.dataentrada) && x.Datasaida <= DateTime.Parse(reserva.dataentrada))
                    //                ||
                    //            (x.Datasaida <= DateTime.Parse(reserva.datasaida))
                    //        )
                    //            &&
                    //        (x.Idquarto == reserva.idquarto)

                    //    ).ToList();

                    //if (podeCadastrar.Count() > 0)
                    //{
                    //    this.erros.Add("Infelizmente esse quarto já foi reservado.");
                    //    this.erros.Add("Escolha outro quarto.");
                    //    return false;
                    //}                    //var podeCadastrar = hs.Tbreserva
                    //    .Where
                    //    (
                    //        x =>
                    //        (
                    //            (x.Dataentrada >= DateTime.Parse(reserva.dataentrada) && x.Datasaida <= DateTime.Parse(reserva.dataentrada))
                    //                ||
                    //            (x.Datasaida <= DateTime.Parse(reserva.datasaida))
                    //        )
                    //            &&
                    //        (x.Idquarto == reserva.idquarto)

                    //    ).ToList();

                    //if (podeCadastrar.Count() > 0)
                    //{
                    //    this.erros.Add("Infelizmente esse quarto já foi reservado.");
                    //    this.erros.Add("Escolha outro quarto.");
                    //    return false;
                    //}

                    Tbreserva reservaAdd = new Tbreserva();

                    reservaAdd.Idquarto     = reserva.idquarto;
                    reservaAdd.Idusuario    = Int32.Parse(idcliente);
                    reservaAdd.Valor        = Decimal.Parse(reserva.valor.Replace(".", ","));
                    reservaAdd.Checkout     = false;
                    reservaAdd.Dataentrada  = DateTime.Parse(reserva.dataentrada);
                    reservaAdd.Datasaida    = DateTime.Parse(reserva.datasaida);
                    reservaAdd.Datacadastro = DateTime.Now;
                    hs.Tbreserva.Add(reservaAdd);
                    hs.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                erros.Add("A reserva não foi adicionada.");
                erros.Add(ex.Message);
                return(false);
            }
            return(true);
        }