public async Task <IActionResult> Edit(int id, R.Recibo recibo)
        {
            if (id != recibo.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(recibo);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ReciboExists(recibo.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TransID"] = new SelectList(_context.TransaccionHeaders, "TransID", "TransID", recibo.TransID);
            return(View(recibo));
        }
        // GET: Recibo/Create
        public async Task <IActionResult> Create(int transId)
        {
            R.Recibo recibo = new R.Recibo();
            recibo.TransID = transId;
            var transaccion = this._context.TransaccionHeaders.FirstOrDefault(t => t.TransID == transId);

            if (transaccion == null)
            {
                return(NotFound());
            }
            recibo.Parent = transaccion;
            recibo.Fecha  = DateTime.Today;

            var caja = await this._context.AperturaCierreCaja.FirstOrDefaultAsync(c => c.Tipo == TipoCaja.Cierre && c.Fecha.Value.ToShortDateString() == DateTime.Today.ToShortDateString());

            if (caja != null)
            {
                this.ViewData["CajaMessage"] = "Ya cerró caja el día de hoy, si registra un nuevo recibo se actualizará el cierre.";
            }
            return(View(recibo));
        }
        public async Task <IActionResult> Create(R.Recibo recibo)
        {
            if (ModelState.IsValid)
            {
                _context.Add(recibo);
                await _context.SaveChangesAsync();

                //Actualizar Caja
                Caja caja = await this._context.AperturaCierreCaja.AsNoTracking().FirstOrDefaultAsync(c => c.Tipo == TipoCaja.Cierre && c.Fecha.Value.ToShortDateString() == DateTime.Today.ToShortDateString());

                if (caja != null)
                {
                    caja.Monto += recibo.Abono;
                    _context.AperturaCierreCaja.Update(caja);
                    await _context.SaveChangesAsync();
                }


                return(RedirectToAction(nameof(Edit), "TransaccionHeader", new { @id = recibo.TransID }));
            }
            return(View(recibo));
        }