internal async Task GuardarAsync(CierreCaja cierreCaja) { if (cierreCaja.Id == 0) { _context.CierreCaja.Add(cierreCaja); } else { CierreCaja cierreCajaBD = await ObtenerConsulta().Where(x => x.Id == cierreCaja.Id).FirstOrDefaultAsync(); if (cierreCaja.Estado == EstadoCaja.Abierta) { cierreCajaBD.Abrir(cierreCaja.UsuarioApertura); _context.Ingresos.RemoveRange(cierreCajaBD.Ingresos); _context.Egresos.RemoveRange(cierreCajaBD.Egresos); } else { cierreCajaBD.AgregarEgresos(cierreCaja.Egresos); cierreCajaBD.AgregarIngresos(cierreCaja.Ingresos); cierreCajaBD.Cerrar(cierreCaja.UsuarioCierre, cierreCaja.MontoEnCaja); } } await _context.SaveChangesAsync(); }
internal async Task CerraCajaAsync() { cierreCajaModel.Cerrar(Sesion.Usuario.Alias, MontoCierreCaja); await CierreCajaService.GuardarAsync(cierreCajaModel); NotifyPropertyChanged(nameof(Estado)); }
private static async Task CerrarCaja(CierreCaja cierreCaja) { Task <List <MovimientoMonto> > gastoSaldo = Task.Run(() => GastoService.Saldo(DateTime.Now)); Task <List <MovimientoMonto> > ventaSaldo = Task.Run(() => VentaService.Saldo(DateTime.Now)); await Task.WhenAll(gastoSaldo, ventaSaldo); List <Ingresos> ingresos = new List <Ingresos>(); ingresos.AddRange(ventaSaldo.Result.Select(x => new Ingresos(x.Id, cierreCaja.Id, x.ModificaCaja, x.Concepto, x.Monto))); cierreCaja.AgregarIngresos(ingresos); List <Egresos> egresos = new List <Egresos>(); egresos.AddRange(gastoSaldo.Result.Select(x => new Egresos(x.Id, cierreCaja.Id, x.ModificaCaja, x.Concepto, x.Monto))); cierreCaja.AgregarEgresos(egresos); decimal montoEnCaja = ingresos.Where(x => x.ModificaCaja).Sum(x => x.Monto); cierreCaja.Cerrar("Automático", montoEnCaja); }