예제 #1
0
        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());
        }
예제 #2
0
        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());
        }
예제 #3
0
        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());
        }
예제 #4
0
        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());
        }
예제 #5
0
 public ActionResult Post([FromBody] DetalleMesa value)
 {
     context.DetallesMesa.Add(value);
     context.SaveChanges();
     return(new CreatedAtRouteResult("ObtenerDetalleMesaById", new { id = value.Id }, value));
 }
예제 #6
0
        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();
                }
            }
        }