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); } }
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); } }
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)); } }
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)); } }
public IActionResult CheckOut([FromBody] DTOs.Reserva reserva) { return(Ok(reservaNegocio.CheckOut(reserva.idreserva))); }
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); } }
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); }