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); } } }
//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); }
private int InsertarPrecierre(SqlConnection cn, SqlTransaction trans, PrecierreTD.PrecierreRow drPrecierre) { SqlCommand cmd = new SqlCommand("dbo.INGF_INS_PRECIERRE", cn, trans); cmd.CommandType = CommandType.StoredProcedure; SqlParameter prmIdFondo = cmd.Parameters.Add("@idFondo", SqlDbType.Decimal); prmIdFondo.Value = drPrecierre.ID_FONDO; SqlParameter prmFecha = cmd.Parameters.Add("@fecha", SqlDbType.DateTime); prmFecha.Value = drPrecierre.FECHA; SqlParameter prmHorarioOperacion = cmd.Parameters.Add("@horarioOperacion", SqlDbType.DateTime); prmHorarioOperacion.Value = drPrecierre.HORARIO_OPERACION; SqlParameter prmValorCuota = cmd.Parameters.Add("@valorCuota", SqlDbType.Decimal); prmValorCuota.Value = drPrecierre.VALOR_CUOTA; SqlParameter prmFlagEliminado = cmd.Parameters.Add("@flagEliminado", SqlDbType.Char, 1); prmFlagEliminado.Value = drPrecierre.FLAG_ELIMINADO; SqlParameter prmUsuario = cmd.Parameters.Add("@usuario", SqlDbType.VarChar, 20); prmUsuario.Value = drPrecierre.USUARIO; SqlParameter prmFechaProceso = cmd.Parameters.Add("@fechaProceso", SqlDbType.DateTime); prmFechaProceso.Value = drPrecierre.FECHA_PROCESO; SqlParameter prmId = cmd.Parameters.Add("@id", SqlDbType.Int); prmId.Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); return(Convert.ToInt32(prmId.Value)); }