public void Eliminar(MovimientosModel datos) { using (var c = new Contexto()) { CuentasRepository RepoCuentas = new CuentasRepository(); CuentaModel _cuenta = RepoCuentas.Devolver(datos.CuentaId); RepoCuentas.MovimientosCuenta(null, _cuenta, datos.Monto); _cuenta.Movimientos = null; datos.Cuenta = null; c.Entry(_cuenta).State = EntityState.Modified; c.Entry(datos).State = EntityState.Deleted; c.SaveChanges(); } }
public void Grabar(MovimientosModel datos) { using (var c = new Contexto()) { CuentasRepository RepoCuentas = new CuentasRepository(); CuentaModel _cuenta = RepoCuentas.Devolver(datos.CuentaId); if (!datos.Tipo.Value) { RepoCuentas.MovimientosCuenta(_cuenta, null, datos.Monto); } else { RepoCuentas.MovimientosCuenta(null, _cuenta, datos.Monto); } c.Movimiento.Add(datos); c.Entry(_cuenta).State = EntityState.Modified; c.SaveChanges(); } }
public void Eliminar(TransaccionModel datos) { using (var c = new Contexto()) { CuentasRepository cr = new CuentasRepository(); CuentaModel _cuentaOrigen = cr.Devolver(datos.CuentaIdOrigen); CuentaModel _cuentaDestino = cr.Devolver(datos.CuentaIdDestino); cr.MovimientosCuenta(_cuentaDestino, _cuentaOrigen, datos.Monto); _cuentaOrigen.TransaccionesCuentaOrigen = null; _cuentaOrigen.TransaccionesCuentaDestino = null; _cuentaDestino.TransaccionesCuentaOrigen = null; _cuentaDestino.TransaccionesCuentaDestino = null; c.Entry(_cuentaOrigen).State = EntityState.Modified; c.Entry(_cuentaDestino).State = EntityState.Modified; c.Entry(datos).State = EntityState.Deleted; c.SaveChanges(); } }
//le paso el modelo a actualizar o agregar y el monto que es la diferencia a actualizar en el caso que haya cambiado el monto, //lo hago todo en una transaccion para que aplique todos los cambios public void Grabar(TransaccionModel datos, double monto) { using (var c = new Contexto()) { CuentasRepository cr = new CuentasRepository(); CuentaModel _cuentaOrigen = cr.Devolver(datos.CuentaIdOrigen); CuentaModel _cuentaDestino = cr.Devolver(datos.CuentaIdDestino); if (datos.Id > 0) { c.Entry(datos).State = EntityState.Modified; //Si monto es mayor que 0 tiene que devolver a la cuentaOrigen y restarle a la destino if (monto > 0) { cr.MovimientosCuenta(_cuentaDestino, _cuentaOrigen, monto); } //Caso contrario tiene que sumarle la diferencia que es el Monto a cuentaOrigen y restarle a Destino else { cr.MovimientosCuenta(_cuentaOrigen, _cuentaDestino, monto); } _cuentaOrigen.TransaccionesCuentaOrigen = null; _cuentaOrigen.TransaccionesCuentaDestino = null; _cuentaDestino.TransaccionesCuentaOrigen = null; _cuentaDestino.TransaccionesCuentaDestino = null; } else { c.Transaccion.Add(datos); cr.MovimientosCuenta(_cuentaOrigen, _cuentaDestino, datos.Monto); } c.Entry(_cuentaOrigen).State = EntityState.Modified; c.Entry(_cuentaDestino).State = EntityState.Modified; c.SaveChanges(); } }
public void Actualizar(MovimientosModel datos, double MontoAnterior, int CuentaAnteriorId, bool TipoAnterior) { using (var c = new Contexto()) { CuentasRepository RepoCuentas = new CuentasRepository(); CuentaModel _cuentaAnterior = RepoCuentas.Devolver(CuentaAnteriorId); CuentaModel _cuentaActual; if (CuentaAnteriorId == datos.CuentaId) { _cuentaActual = _cuentaAnterior; } else { _cuentaActual = RepoCuentas.Devolver(datos.CuentaId); } //if (TipoAnterior) //{ // RepoCuentas.MovimientosCuenta(_cuentaAnterior, null, MontoAnterior); // if (!datos.Tipo.Value) // RepoCuentas.MovimientosCuenta(_cuentaActual, null, datos.Monto); // else // RepoCuentas.MovimientosCuenta(null, _cuentaActual, datos.Monto); //} //else //{ // RepoCuentas.MovimientosCuenta(null, _cuentaAnterior, MontoAnterior); // if (!datos.Tipo.Value) // RepoCuentas.MovimientosCuenta(_cuentaActual, null, datos.Monto); // else // RepoCuentas.MovimientosCuenta(null, _cuentaActual, datos.Monto); //} if ((TipoAnterior != datos.Tipo) || (CuentaAnteriorId != datos.CuentaId) || (MontoAnterior != datos.Monto)) { if (datos.CuentaId == CuentaAnteriorId) { if (TipoAnterior) { RepoCuentas.MovimientosCuenta(_cuentaAnterior, null, MontoAnterior); } else { RepoCuentas.MovimientosCuenta(null, _cuentaAnterior, MontoAnterior); } } if (datos.Tipo.Value) { RepoCuentas.MovimientosCuenta(null, _cuentaActual, datos.Monto); } else { RepoCuentas.MovimientosCuenta(_cuentaActual, null, datos.Monto); } } c.Entry(datos).State = EntityState.Modified; if (_cuentaActual.Id == _cuentaAnterior.Id) { _cuentaActual.Movimientos = null; c.Entry(_cuentaActual).State = EntityState.Modified; } else { _cuentaActual.Movimientos = null; _cuentaAnterior.Movimientos = null; c.Entry(_cuentaActual).State = EntityState.Modified; c.Entry(_cuentaAnterior).State = EntityState.Modified; } c.SaveChanges(); } }