public ActionResult <DetalleMesa> PutAgregarPedido(Int16 id, [FromBody] DetalleMesa value) { if (value.Pedido != null) { int noOfRowUpdated = context.Database.ExecuteSqlCommand("Update DetallesMesa set PedidoId = " + value.Pedido.Id + "where Id =" + value.Id); } return(Ok()); }
public ActionResult Put(Int16 id, [FromBody] DetalleMesa value) { DetalleMesa detalle = new DetalleMesa(); if (id != value.Id) { return(BadRequest()); } detalle = context.DetallesMesa.FirstOrDefault(x => x.Id == value.Id); context.Entry(detalle).CurrentValues.SetValues(value); if (value.Pedido != null) { int noOfRowUpdated = context.Database.ExecuteSqlCommand("Update DetallesMesa set PedidoId = " + value.Pedido.Id); } context.Entry(detalle).State = EntityState.Modified; context.SaveChanges(); return(Ok()); }
public ActionResult PutAbrir([FromQuery] Int16 id, [FromQuery] Int16 cantComensales, [FromBody] Mesa value) { if (id != value.Id) { return(BadRequest()); } //asigno los valoras de la mesa context.Entry(value).State = EntityState.Modified; var mesa = context.Mesas.First(x => x.Id == value.Id); //creo el detall de la mesa. DetalleMesa detalleMesa = new DetalleMesa(); detalleMesa.FechaApertura = DateTime.Now; detalleMesa.HoraApertura = DateTime.Now.TimeOfDay; detalleMesa.CantidadComensales = cantComensales; detalleMesa.IdMesa = value.Id; //creo el pedido Pedido pedido = new Pedido(); pedido.FechaAlta = DateTime.Now; pedido.HoraAlta = DateTime.Now.TimeOfDay; pedido.NroPedido = Convert.ToInt16((context.Pedidos.Where(x => x.FechaAlta.Value.Date.Day == DateTime.Now.Date.Day).Count()) + 1); pedido.EstadoPedido = context.EstadosPedido.FirstOrDefaultAsync(x => x.Id == 1).Result; //lo agrego al context; context.Pedidos.Add(pedido); context.SaveChanges(); //agrego el pedido a la mesa detalleMesa.Pedido = pedido; context.DetallesMesa.Add(detalleMesa); context.SaveChanges(); pedido.IdDetalleMesa = detalleMesa.Id; context.SaveChanges(); mesa.DetalleAbierto = detalleMesa; context.Entry(mesa).State = EntityState.Modified; context.SaveChanges(); return(Ok()); }
public async Task <ActionResult> PutCerrar([FromQuery] Int16 id, [FromQuery] Int16 idDetalle, [FromBody] Mesa value) { if (id != value.Id) { return(BadRequest()); } value.DetalleAbierto = null; context.Entry(value).State = EntityState.Modified; var mesa = context.Mesas.First(x => x.Id == value.Id); DetalleMesa detalleMesa = await context.DetallesMesa.Include(x => x.Pedido).FirstOrDefaultAsync(x => x.Id == idDetalle); detalleMesa.FechaCierre = DateTime.Now; detalleMesa.HoraCierre = DateTime.Now.TimeOfDay; if (detalleMesa.Pedido != null) { detalleMesa.Pedido.EstadoPedido = await context.EstadosPedido.FirstOrDefaultAsync(x => x.Id == 6); context.Entry(detalleMesa.Pedido).State = EntityState.Modified; } context.SaveChanges(); return(Ok()); }
public ActionResult Post([FromBody] DetalleMesa value) { context.DetallesMesa.Add(value); context.SaveChanges(); return(new CreatedAtRouteResult("ObtenerDetalleMesaById", new { id = value.Id }, value)); }
public ActionResult PostCobrar([FromBody] List <Pago> value, [FromQuery] Int32 idPedido, [FromQuery] Int32 idDetalleCaja) { using (var transaction = context.Database.BeginTransaction()) { try { Pedido pedido = context.Pedidos.Include(g => g.Cobros).ThenInclude(t => t.FormaPago).FirstOrDefault(x => x.Id == idPedido); DetalleCaja detalle = context.DetallesCaja.Include(g => g.Cobros).ThenInclude(t => t.FormaPago).FirstOrDefault(x => x.Id == idDetalleCaja); List <Pago> listaPago = new List <Pago>(); foreach (Pago p in value.Where(x => x.Id == null || x.Id == 0 || x.Id < 0)) { p.FormaPago = context.FormasPago.FirstOrDefault(x => x.Id == p.FormaPago.Id); if (p.MarcaTarjeta != null) { p.MarcaTarjeta = context.Tarjetas.FirstOrDefault(x => x.Id == p.MarcaTarjeta.Id); context.Entry(p.MarcaTarjeta).State = EntityState.Modified; } if (p.Banco != null) { p.Banco = context.Bancos.FirstOrDefault(x => x.Id == p.Banco.Id); context.Entry(p.Banco).State = EntityState.Modified; } p.PedidoId = idPedido; p.DetalleCajaId = idDetalleCaja; p.FechaAlta = DateTime.Now.Date; p.HoraAlta = DateTime.Now.TimeOfDay; context.Entry(p.FormaPago).State = EntityState.Modified; listaPago.Add(p); } context.Pagos.AddRange(listaPago); List <Int32> idsCobros = new List <int>(); context.SaveChanges(); //context.SaveChanges(); foreach (Pago p in value) { idsCobros.Add(p.Id); } // pedido.Cobros.AddRange(context.Pagos.Where(t => idsCobros.Contains(t.Id))); //detalle.Cobros.AddRange(context.Pagos.Where(t => idsCobros.Contains(t.Id))); if (pedido.Cobros.Sum(x => x.Monto) == pedido.MontoTotal) { pedido.EstadoPedido = context.EstadosPedido.FirstOrDefault(x => x.Id == 10); if ((pedido.IdDetalleMesa != null && pedido.IdDetalleMesa != 0)) { Mesa mesa = context.Mesas.Include(x => x.DetalleAbierto).First(x => x.DetalleAbierto.Id == pedido.IdDetalleMesa); DetalleMesa det = context.DetallesMesa.First(x => x.Id == mesa.DetalleAbierto.Id); det.FechaCierre = DateTime.Now.Date; det.HoraCierre = DateTime.Now.TimeOfDay; context.Entry(det).State = EntityState.Modified; mesa.DetalleAbierto = null; context.Entry(mesa).State = EntityState.Modified; context.SaveChanges(); } } context.Entry(pedido).State = EntityState.Modified; context.Entry(detalle).State = EntityState.Modified; context.SaveChanges(); transaction.Commit(); return(Ok(value)); } catch (Exception ex) { transaction.Rollback(); return(BadRequest(ex)); } finally{ transaction.Dispose(); } } }