Beispiel #1
0
 public ActionResult Put(Int16 id, [FromBody] DetalleArqueo value)
 {
     if (id != value.Id)
     {
         return(BadRequest());
     }
     context.Entry(value).State = EntityState.Modified;
     context.SaveChanges();
     return(Ok());
 }
Beispiel #2
0
 public ActionResult Post([FromBody] DetalleArqueo value)
 {
     context.DetallesArqueo.Add(value);
     context.SaveChanges();
     return(new CreatedAtRouteResult("ObtenerDetalleArqueoById", new { id = value.Id }, value));
 }
        public ActionResult Put(Int32 Id, [FromQuery] Int32 IdDetalleCaja, [FromQuery] String CerrarArqueo, [FromBody] ArqueoCaja value)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    ArqueoCaja arqEx = context.ArqueoCajas.Include(x => x.Detalles).ThenInclude(y => y.FormaPago)
                                       .Include(x => x.Estado).First(x => x.Id == Id);



                    arqEx.Estado = context.EstadosArqueo.FirstOrDefault(x => x.Id == value.Estado.Id);
                    if (CerrarArqueo == "si")
                    {
                        arqEx.Estado = context.EstadosArqueo.FirstOrDefault(x => x.Id == 2);
                        context.Entry(arqEx.Estado).State = EntityState.Modified;
                    }
                    DetalleCaja det = context.DetallesCaja.Include(x => x.Cobros).FirstOrDefault(x => x.Id == IdDetalleCaja);

                    for (int i = 0; i < value.Detalles.Count; i++)
                    {
                        DetalleArqueo d = value.Detalles[i];
                        if (d.Id == 0 || d.Id < 0)
                        {
                            arqEx.Detalles.Add(d);
                        }
                        else
                        {
                            DetalleArqueo deta = arqEx.Detalles.FirstOrDefault(x => x.Id == d.Id);
                            deta.FechaBaja            = d.FechaBaja;
                            deta.HoraBaja             = d.HoraBaja;
                            deta.Monto                = d.Monto;
                            deta.Observaciones        = d.Observaciones;
                            context.Entry(deta).State = EntityState.Modified;
                        }
                        context.Entry(d.FormaPago).State = EntityState.Detached;
                    }
                    context.Entry(value.Estado).State = EntityState.Detached;
                    context.SaveChanges();

                    Caja caja = new Caja();
                    if (CerrarArqueo == "si")
                    {
                        caja             = context.Cajas.FirstOrDefault(x => x.Id == det.CajaId);
                        det.HoraCierre   = DateTime.Now.TimeOfDay;
                        det.FechaCierre  = DateTime.Now.Date;
                        det.MontoCierre  = det.Cobros.Where(v => v.FechaBaja == null).Sum(x => x.Monto);
                        caja.EstaAbierta = false;

                        context.Entry(caja).State = EntityState.Modified;
                    }
                    context.Entry(det).State = EntityState.Modified;

                    context.SaveChanges();
                    transaction.Commit();
                    return(new CreatedAtRouteResult("ObtenerArqueoCajaById", new { id = value.Id }, value));
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }
                finally
                {
                    transaction.Dispose();
                }
            }
        }