Пример #1
0
 public ActionResult PutCerrar(Int16 id, [FromBody] Caja value)
 {
     using (var transaction = context.Database.BeginTransaction())
     {
         try
         {
             if (id != value.Id)
             {
                 return(BadRequest());
             }
             DetalleCaja det = context.DetallesCaja.FirstOrDefault(x => x.Id == value.DetalleAbierto.Id);
             det.HoraCierre             = value.DetalleAbierto.HoraCierre;
             det.FechaCierre            = value.DetalleAbierto.FechaCierre;
             det.MontoCierre            = value.DetalleAbierto.Cobros.Where(v => v.FechaBaja == null).Sum(x => x.Monto);
             context.Entry(det).State   = EntityState.Modified;
             context.Entry(value).State = EntityState.Modified;
             context.SaveChanges();
             transaction.Commit();
             return(Ok());
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             return(BadRequest(ex));
         }
         finally
         {
             transaction.Dispose();
         }
     }
 }
Пример #2
0
        public List <Caja> consultarCajas(Conexion _conexion, short Caja)
        {
            List <Caja> ListaResultado;
            DetalleCaja objDatos = new DetalleCaja();

            ListaResultado = objDatos.consultarCajas(_conexion, Caja);
            return(ListaResultado);
        }
Пример #3
0
 public ActionResult Put(Int16 id, [FromBody] DetalleCaja value)
 {
     if (id != value.Id)
     {
         return(BadRequest());
     }
     context.Entry(value).State = EntityState.Modified;
     context.SaveChanges();
     return(Ok());
 }
Пример #4
0
        public void InsertarDetalle(DetalleCajaDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var nuevoDetalle = new DetalleCaja();

                nuevoDetalle.Id       = dto.Id;
                nuevoDetalle.CajaId   = dto.CajaId;
                nuevoDetalle.Monto    = dto.Monto;
                nuevoDetalle.TipoPago = dto.FormaPago;

                context.DetalleCajas.Add(nuevoDetalle);
                context.SaveChanges();
            }
        }
Пример #5
0
        public ActionResult Post([FromQuery] Int32 IdDetalleCaja, [FromQuery] String CerrarCaja, [FromBody] ArqueoCaja value)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    value.Estado = context.EstadosArqueo.FirstOrDefault(x => x.Id == value.Estado.Id);
                    context.ArqueoCajas.Add(value);
                    context.Entry(value.Estado).State = EntityState.Detached;
                    DetalleCaja det = context.DetallesCaja.FirstOrDefault(x => x.Id == IdDetalleCaja);
                    foreach (DetalleArqueo d in value.Detalles)
                    {
                        context.Entry(d.FormaPago).State = EntityState.Detached;
                    }

                    context.SaveChanges();

                    det.Arqueo = value;

                    Caja caja = new Caja();
                    if (CerrarCaja == "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();
                }
            }
        }
Пример #6
0
        public List <DetalleCaja> DetallesFolio(int _idfolio)
        {
            var lista = from det in db.wl_detcajassku
                        where det.wl_cajas_Id == _idfolio
                        select new { sku = det.skus.codigobarras, cantidad = det.Cantidad };

            List <DetalleCaja> listaDetalle = new List <DetalleCaja>();

            foreach (var item in lista.GroupBy(x => x.sku))
            {
                DetalleCaja detalleTemp = new DetalleCaja();
                detalleTemp.sku               = item.Key;
                detalleTemp.cantidad          = (int)lista.Where(x => x.sku.Equals(item.Key)).Sum(x => x.cantidad);
                detalleTemp.cantidadescaneada = 0;
                listaDetalle.Add(detalleTemp);
            }

            return(listaDetalle);
        }
Пример #7
0
        public ActionResult PutAbrir(Int16 id, [FromBody] Caja value)
        {
            if (id != value.Id)
            {
                return(BadRequest());
            }

            DetalleCaja det = new DetalleCaja();

            det.MontoApertura = value.DetalleAbierto.MontoApertura;
            det.FechaApertura = DateTime.Now.Date;
            det.HoraApertura  = DateTime.Now.TimeOfDay;
            det.CajaId        = value.Id;
            context.DetallesCaja.Add(det);
            context.SaveChanges();
            value.DetalleAbierto       = det;
            context.Entry(value).State = EntityState.Modified;
            context.SaveChanges();
            return(Ok(value));
        }
        public List <DetalleCaja> listaDetalle(int IdCaja)
        {
            try
            {
                List <DetalleCaja> listaTemp = new List <DetalleCaja>();

                foreach (var item in db.wl_detcajassku.Where(x => x.wl_cajas_Id == IdCaja).ToList())
                {
                    DetalleCaja detalle = new DetalleCaja();
                    detalle.sku               = db.skus.Where(x => x.id == item.skus_Id).FirstOrDefault().codigobarras;
                    detalle.cantidad          = (int)item.Cantidad;
                    detalle.cantidadescaneada = 0;

                    listaTemp.Add(detalle);
                }

                return(listaTemp);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        private async Task Calcular(bool valor)
        {
            Cuentas.Clear();
            if (CuentaCorrientes != null)
            {
                if (Operaciones != null)
                {
                    var bancos = Operaciones.Where(x => x.FechaVencimiento <= DateTime.Now && x.CuentaCorrienteId != 3).Sum(x => x.Debe) - Operaciones.Where(x => x.FechaVencimiento <= DateTime.Now && x.CuentaCorrienteId != 3).Sum(x => x.Haber);
                    Cuentas.Add(new CuentaDto {
                        Id = 1, DescripcionCuenta = $"Bancos", SaldoCuenta = bancos
                    });
                }
                foreach (var i in CuentaCorrientes)
                {
                    if (valor)
                    {
                        Operaciones = new ObservableCollection <OperacionDto>(await ApiProcessor.GetApi <OperacionDto[]>($"Operacion/GetByFecha/{FechaDesde.ToString("MM-dd-yyyy")}/{FechaHasta.ToString("MM-dd-yyyy")}/{i.Id}"));
                    }
                    else
                    {
                        Operaciones = new ObservableCollection <OperacionDto>(await ApiProcessor.GetApi <OperacionDto[]>($"Operacion/GetByBanco/{i.BancoId}"));
                    }
                    var total = 0m;
                    foreach (var item in Operaciones.Where(x => x.FechaEmision.Value.Year == DateTime.Now.Year && x.CuentaCorrienteId != 3).OrderBy(x => x.FechaEmision))
                    {
                        if (item.Haber != 0)
                        {
                            total -= (decimal)item.Haber;
                        }
                        else
                        {
                            total += (decimal)item.Debe;
                        }
                    }
                    if (i.BancoId != 3)
                    {
                        Cuentas.Add(new CuentaDto {
                            Id = 1, DescripcionSubRubro = $"Banco {i.Banco.RazonSocial}", SaldoSubRubro = total
                        });
                    }
                }
                foreach (var i in CuentaCorrientes.Where(x => x.BancoId == 3))
                {
                    var valoresDep = 0m;
                    foreach (var item in Operaciones.Where(x => x.FechaEmision.Value.Year == DateTime.Now.Year).OrderBy(x => x.FechaEmision))
                    {
                        if (item.Haber != 0)
                        {
                            valoresDep -= (decimal)item.Haber;
                        }
                        else
                        {
                            valoresDep += (decimal)item.Debe;
                        }
                    }
                    Cuentas.Add(new CuentaDto {
                        Id = 1, DescripcionCuenta = $"{i.Banco.RazonSocial}", SaldoCuenta = valoresDep
                    });
                }
            }

            if (DetalleCaja != null)
            {
                var caja  = DetalleCaja.Where(x => x.Caja.FechaApertura == DetalleCaja.Max(y => y.Caja.FechaApertura));
                var total = caja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Ingreso).Sum(x => x.Monto) - caja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Egreso).Sum(x => x.Monto);
                Cuentas.Add(new CuentaDto {
                    Id = 1, DescripcionCuenta = $"Caja", SaldoCuenta = total
                });
            }
            if (ComprobantesSalidas != null)
            {
                var lista = ComprobantesSalidas.Where(x => x.SubRubroId != null).GroupBy(x => x.SubRubro.Rubro.Descripcion).ToList();
                foreach (var item in lista)
                {
                    Cuentas.Add(new CuentaDto {
                        DescripcionCuenta = item.Key, SaldoCuenta = item.Sum(x => x.Total)
                    });
                    var sub = item.GroupBy(x => x.SubRubro.Descripcion).ToList();
                    foreach (var i in sub)
                    {
                        Cuentas.Add(new CuentaDto {
                            DescripcionSubRubro = i.Key, SaldoSubRubro = i.Sum(x => x.Total)
                        });
                    }
                }
            }
            if (ComprobanteEntrada != null)
            {
                var lista = ComprobanteEntrada.Where(x => x.SubRubroId != null).GroupBy(x => x.SubRubro.Rubro.Descripcion).ToList();
                foreach (var item in lista)
                {
                    Cuentas.Add(new CuentaDto {
                        DescripcionCuenta = item.Key, SaldoCuenta = item.Sum(x => x.Total)
                    });
                    var sub = item.GroupBy(x => x.SubRubro.Descripcion).ToList();
                    foreach (var i in sub)
                    {
                        Cuentas.Add(new CuentaDto {
                            DescripcionSubRubro = i.Key, SaldoSubRubro = i.Sum(x => x.Total)
                        });
                    }
                }
            }
        }
Пример #10
0
 public ActionResult Post([FromBody] DetalleCaja value)
 {
     context.DetallesCaja.Add(value);
     context.SaveChanges();
     return(new CreatedAtRouteResult("ObtenerDetalleCajasById", new { id = value.Id }, value));
 }
Пример #11
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();
                }
            }
        }
Пример #12
0
        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();
                }
            }
        }