Esempio n. 1
0
        public JsonResult DenominacionesData()
        {
            var billetes = _db.Set <DenominacionDeMoneda>().Where(d => d.Billete).GroupBy(d => d.Valor).OrderByDescending(d => d.Key).Select(d => new DenominacionViewModel()
            {
                Valor       = d.Key,
                CantidadCup = 0,
                CantidadCuc = 0,
                Cup         = d.Any(e => e.Moneda.Sigla == "CUP"),
                Cuc         = d.Any(e => e.Moneda.Sigla == "CUC")
            });

            var monedas = _db.Set <DenominacionDeMoneda>().Where(d => !d.Billete).GroupBy(d => d.Valor).OrderByDescending(d => d.Key).Select(d => new DenominacionViewModel()
            {
                Valor       = d.Key,
                CantidadCup = 0,
                CantidadCuc = 0,
                Cup         = d.Any(e => e.Moneda.Sigla == "CUP"),
                Cuc         = d.Any(e => e.Moneda.Sigla == "CUC")
            });

            var denominaciones = new DesgloceEfectivoViewModel()
            {
                Billetes = billetes.ToList(),
                Monedas  = monedas.ToList(),
            };

            return(Json(denominaciones, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
 public JsonResult CerrarPeriodo(DesgloceEfectivoViewModel desgloceEfectivoViewModel, decimal importeAExtraer, decimal pagoTrabajadores)
 {
     if (importeAExtraer >= 0)
     {
         var dia = _service.GetDiaContableActual();
         if (_db.Set <Venta>().Any(v => v.DiaContableId == dia.Id && (v.EstadoDeVenta == EstadoDeVenta.Facturada || v.EstadoDeVenta == EstadoDeVenta.Pendiente)))
         {
             return(Json(new { result = false, mensaje = "No se puede cerrar, ventas pendientes de pago" }, JsonRequestBehavior.AllowGet));
         }
         var cuentaCaja  = _cuentasServices.FindCuentaByNombre("Caja");
         var cuentaBanco = _cuentasServices.FindCuentaByNombre("Banco");
         var cuentaGasto = _cuentasServices.FindCuentaByNombre("Gastos");
         if (cuentaCaja.Disponibilidad.Saldo < importeAExtraer + pagoTrabajadores)
         {
             return(Json(new { result = false, mensaje = "No se puede realizar la extraccion de la caja, saldo en caja inferior al extraer" }, JsonRequestBehavior.AllowGet));
         }
         _cuentasServices.AgregarOperacion(cuentaCaja.Id, cuentaBanco.Id, importeAExtraer, DateTime.Now, "Cierre del dia",
                                           User.Identity.GetUserId());
         _cuentasServices.AgregarOperacion(cuentaCaja.Id, cuentaGasto.Id, pagoTrabajadores, DateTime.Now, "Trabajadores : Pago al cierre",
                                           User.Identity.GetUserId());
         var caja   = _db.Set <Caja>().FirstOrDefault();
         var cierre = new CierreDeCaja()
         {
             CajaId        = caja.Id,
             DiaContableId = dia.Id
         };
         var cuc = _db.Set <Moneda>().SingleOrDefault(m => m.Sigla == "CUC");
         var cup = _db.Set <Moneda>().SingleOrDefault(m => m.Sigla == "CUP");
         foreach (var billete in desgloceEfectivoViewModel.Billetes)
         {
             if (billete.Cuc && billete.CantidadCuc > 0)
             {
                 var denominacion =
                     _db.Set <DenominacionDeMoneda>().SingleOrDefault(d => d.Billete && d.MonedaId == cuc.Id && d.Valor == billete.Valor);
                 cierre.Desglose.Add(new DenominacionesEnCierreDeCaja()
                 {
                     DenominacionDeMonedaId = denominacion.Id,
                     Cantidad = billete.CantidadCuc
                 });
             }
             if (billete.Cup && billete.CantidadCup > 0)
             {
                 var denominacion =
                     _db.Set <DenominacionDeMoneda>().SingleOrDefault(d => d.Billete && d.MonedaId == cup.Id && d.Valor == billete.Valor);
                 cierre.Desglose.Add(new DenominacionesEnCierreDeCaja()
                 {
                     DenominacionDeMonedaId = denominacion.Id,
                     Cantidad = billete.CantidadCup
                 });
             }
         }
         foreach (var moneda in desgloceEfectivoViewModel.Monedas)
         {
             if (moneda.Cuc && moneda.CantidadCuc > 0)
             {
                 var denominacion =
                     _db.Set <DenominacionDeMoneda>().SingleOrDefault(d => !d.Billete && d.MonedaId == cuc.Id && d.Valor == moneda.Valor);
                 cierre.Desglose.Add(new DenominacionesEnCierreDeCaja()
                 {
                     DenominacionDeMonedaId = denominacion.Id,
                     Cantidad = moneda.CantidadCuc
                 });
             }
             if (moneda.Cup && moneda.CantidadCup > 0)
             {
                 var denominacion =
                     _db.Set <DenominacionDeMoneda>().SingleOrDefault(d => !d.Billete && d.MonedaId == cup.Id && d.Valor == moneda.Valor);
                 cierre.Desglose.Add(new DenominacionesEnCierreDeCaja()
                 {
                     DenominacionDeMonedaId = denominacion.Id,
                     Cantidad = moneda.CantidadCup
                 });
             }
         }
         _cierreService.CerrarCaja(cierre);
         _service.CerrarDiaContable();
         _db.SaveChanges();
         //HttpContext.GetOwinContext().Authentication.SignOut();
         return(Json(new { result = true, cierreId = cierre.DiaContableId, mensaje = "Cierre correcto" }, JsonRequestBehavior.AllowGet));
     }
     return(Json(new { result = false, mensaje = "No se puede cerrar, importe a extraer negativo" }, JsonRequestBehavior.AllowGet));
 }