Example #1
0
        //Ejecutar Precierre de Depositos
        private bool EjecutarPrecierre(decimal idFondo, DateTime fecha, DateTime horarioOperacion, decimal valorCuota, SqlConnection cn, SqlTransaction trans)
        {
            // Si la fecha esta cerrada no se puede volver a ejecutar el precierre.
            CierreBO cierreBO = new CierreBO(codigoUsuario);

            if (cierreBO.VerificarFechaCerrada(idFondo, fecha))
            {
                return(false);
            }

            // Si existe un precierre para la fecha y el fondo se marca como eliminado
            PrecierreDA precierreDA = new PrecierreDA();

            PrecierreTD.PrecierreRow drPrecierreAnterior = precierreDA.ObtenerPrecierre(idFondo, fecha);
            if (drPrecierreAnterior != null)
            {
                drPrecierreAnterior.FLAG_ELIMINADO = "S";
            }

            // Seteando los datos del precierre.
            DateTime serverDate = precierreDA.GetServerDate();

            PrecierreTD.PrecierreRow drPrecierre = new PrecierreTD().Precierre.NewPrecierreRow();
            drPrecierre.ID_FONDO          = idFondo;
            drPrecierre.FECHA             = fecha;
            drPrecierre.HORARIO_OPERACION = horarioOperacion;
            drPrecierre.VALOR_CUOTA       = valorCuota;
            drPrecierre.FLAG_ELIMINADO    = "N";
            drPrecierre.USUARIO           = codigoUsuario;
            drPrecierre.FECHA_PROCESO     = serverDate;

            DepositoTD.DepositoPrecierreDataTable dtDepositosPrecierre = null;

            // Actualizando los datos de los depositos que entran al precierre
            if (fecha.DayOfWeek != DayOfWeek.Saturday && fecha.DayOfWeek != DayOfWeek.Sunday && !precierreDA.EsFeriado(fecha))
            {
                dtDepositosPrecierre = precierreDA.ObtenerDepositosPrecierre(idFondo, fecha, horarioOperacion);
                foreach (DepositoTD.DepositoPrecierreRow drDeposito in dtDepositosPrecierre.Rows)
                {
                    drDeposito.NUMERO_CUOTAS = Math.Round(drDeposito.MONTO / valorCuota, INGFondos.Constants.Formatos.NumeroDecimalesCuotas);
                }
            }

            // Grabando la informaciĆ³n
            precierreDA.EjecutarPrecierre(drPrecierreAnterior, drPrecierre, dtDepositosPrecierre, cn, trans);

            return(true);
        }
Example #2
0
        public void EjecutarPrecierre(PrecierreTD.PrecierreRow drPrecierreAnterior, PrecierreTD.PrecierreRow drPrecierre, DepositoTD.DepositoPrecierreDataTable dtDepositosPrecierre, SqlConnection cn, SqlTransaction trans)
        {
            PrecierreTD.PrecierreDataTable precierreMetadata = new PrecierreTD().Precierre;
            if (drPrecierreAnterior != null)
            {
                EliminarPrecierre(cn, trans, drPrecierreAnterior.ID);
                ////RecordLog(cn, trans, precierreMetadata, drPrecierreAnterior, INGFondos.Constants.Log.DELETE_CODE, Tablas.ID_TABLA_PRECIERRE, drPrecierreAnterior.ID);
            }

            drPrecierre.ID = InsertarPrecierre(cn, trans, drPrecierre);
            string usuario = drPrecierre.USUARIO;

            ////RecordLog(cn, trans, precierreMetadata, drPrecierre, INGFondos.Constants.Log.INSERT_CODE, Tablas.ID_TABLA_PRECIERRE, drPrecierre.ID);

            if (dtDepositosPrecierre != null)
            {
                DepositoTD.DepositoPrecierreDataTable depositoMetadata = new DepositoTD().DepositoPrecierre;
                SqlCommand cmdActualizarDepositoPrecierre = ObtenerSqlCommandActualizarDepositoPrecierre(cn, trans);
                foreach (DepositoTD.DepositoPrecierreRow drDeposito in dtDepositosPrecierre.Rows)
                {
                    drDeposito.ID_PRECIERRE = drPrecierre.ID;
                    cmdActualizarDepositoPrecierre.Parameters["@id"].Value           = drDeposito.ID;
                    cmdActualizarDepositoPrecierre.Parameters["@numeroCuotas"].Value = drDeposito.NUMERO_CUOTAS;
                    cmdActualizarDepositoPrecierre.Parameters["@idPrecierre"].Value  = drDeposito.ID_PRECIERRE;
                    cmdActualizarDepositoPrecierre.Parameters["@usuario"].Value      = usuario;
                    cmdActualizarDepositoPrecierre.ExecuteNonQuery();
                    ////RecordLog(cn, trans, depositoMetadata, drDeposito, INGFondos.Constants.Log.UPDATE_CODE, Tablas.ID_TABLA_DEPOSITO, drDeposito.ID);
                }
            }
        }