public void AjustarBalance(int idCuenta, decimal balance) { /* El ajuste se realliza con la misma transacción, sin * necesidad de hacerlo manualmente */ EntitieCuenta cuenta = GetCuentaById(idCuenta); EntitieTipoTransaccion tipoTransaccion = ControllerTipoTransacciones.Instance.GetTipoTransaccionByNombre("AJUSTE"); EntitieTransaccion transaccion = new EntitieTransaccion(idCuenta, tipoTransaccion.GetIdTipoTransaccion(), balance - cuenta.GetBalance()); ControllerTransacciones.Instance.NuevaTransaccion(transaccion); }
public List <EntitieTransaccion> GetTransacciones(int idTipoTransaccion, DateTime desde, DateTime hasta) { List <EntitieTransaccion> transacciones = new List <EntitieTransaccion>(); String query = "SELECT * FROM Transacciones "; Boolean whereAdded = false; if (idTipoTransaccion > 0) { query += "WHERE ID_Tipo_Transaccion = " + idTipoTransaccion + " "; whereAdded = true; } if (desde != null) { if (whereAdded) { query += "AND Fecha_Hora >= '" + desde.ToShortDateString() + "' "; } else { query += "WHERE Fecha_Hora >= '" + desde.ToShortDateString() + "' "; whereAdded = true; } } if (hasta != null) { if (whereAdded) { query += "AND Fecha_Hora <= '" + hasta.AddDays(1).ToShortDateString() + "' "; } else { query += "WHERE Fecha_Hora <= '" + hasta.AddDays(1).ToShortDateString() + "' "; whereAdded = true; } } DataTable dt = ManagerDatabase.Instance.ExecuteQuery(query); for (int i = 0; i < dt.Rows.Count; i++) { EntitieTransaccion transaccion = new EntitieTransaccion( Convert.ToInt32(dt.Rows[i][0]), Convert.ToInt32(dt.Rows[i][1]), Convert.ToInt32(dt.Rows[i][2]), Convert.ToDecimal(dt.Rows[i][3]), Convert.ToDateTime(dt.Rows[i][4])); transacciones.Add(transaccion); } return(transacciones); }
public void Transferir(EntitieCuenta cuentaA, EntitieCuenta cuentaB, decimal monto) { EntitieTipoTransaccion tipoTransaccion = ControllerTipoTransacciones.Instance.GetTipoTransaccionByNombre("TRANSFERENCIA"); // Descuenta el balance de la cuenta A EntitieTransaccion transaccion = new EntitieTransaccion(cuentaA.GetIdCuenta(), tipoTransaccion.GetIdTipoTransaccion(), -monto); ControllerTransacciones.Instance.NuevaTransaccion(transaccion); // Aumenta el balance de la cuenta B transaccion = new EntitieTransaccion(cuentaB.GetIdCuenta(), tipoTransaccion.GetIdTipoTransaccion(), monto); ControllerTransacciones.Instance.NuevaTransaccion(transaccion); }
// |==============================METODOS Y FUNCIONES PRIVADOS==============================| private EntitieTransaccion GetTransaccionById(int idTransaccion) { DataTable dt = ManagerDatabase.Instance.ExecuteQuery("SELECT * FROM Transacciones WHERE ID_Transaccion = " + idTransaccion); EntitieTransaccion transaccion = null; if (dt.Rows.Count > 0) { transaccion = new EntitieTransaccion( Convert.ToInt32(dt.Rows[0][0]), Convert.ToInt32(dt.Rows[0][1]), Convert.ToInt32(dt.Rows[0][2]), Convert.ToDecimal(dt.Rows[0][3]), Convert.ToDateTime(dt.Rows[0][4])); } return(transaccion); }
// |==============================METODOS Y FUNCIONES==============================| public int NuevaTransaccion(EntitieTransaccion transaccion) { ManagerDatabase.Instance.Execute("INSERT INTO Transacciones " + "VALUES(" + transaccion.GetIdCuenta() + ", " + transaccion.GetIdTipoTransaccion() + ", " + transaccion.GetMonto().ToString().Replace(",", ".") + ", '" + transaccion.GetFechaHora().ToString() + "')"); String signo = ""; if (transaccion.GetMonto() >= 0) { signo = "+"; } ManagerDatabase.Instance.Execute("UPDATE Cuentas SET Balance = Balance " + signo + " " + transaccion.GetMonto().ToString().Replace(",", ".") + " " + "WHERE ID_Cuenta = " + transaccion.GetIdCuenta()); ActualizarResumenHome(); return(Convert.ToInt32(ManagerDatabase.Instance.ExecuteQuery("SELECT MAX(ID_Transaccion) FROM Transacciones").Rows[0][0])); }
public void RollBackTransaccion(int idTransaccion) { EntitieTransaccion transaccion = GetTransaccionById(idTransaccion); ManagerDatabase.Instance.Execute("DELETE FROM Transacciones WHERE ID_Transaccion = " + transaccion.GetIdTransaccion()); String signo = "+"; String stringMonto = transaccion.GetMonto().ToString().Replace(",", "."); if (stringMonto.Substring(0, 1) == "-") { stringMonto = stringMonto.Substring(1); } // Inversa if (transaccion.GetMonto() >= 0) { signo = "-"; } ManagerDatabase.Instance.Execute("UPDATE Cuentas SET Balance = Balance " + signo + " " + stringMonto + " " + "WHERE ID_Cuenta = " + transaccion.GetIdCuenta()); ActualizarResumenHome(); }