Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        // |==============================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);
        }
Ejemplo n.º 5
0
        // |==============================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]));
        }
Ejemplo n.º 6
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();
        }