public void RevertirTributacion(int idFondo, DateTime fechaProceso, string usuario, string tipoProceso) { AtribucionDA atribucionDA = new AtribucionDA(); SqlConnection conTributacion = atribucionDA.GetConnection2(); SqlTransaction transaccionTributacion = null; try { conTributacion.Open(); transaccionTributacion = conTributacion.BeginTransaction(IsolationLevel.ReadUncommitted); atribucionDA.RevertirTributacion(idFondo, fechaProceso, usuario, tipoProceso, conTributacion, transaccionTributacion); transaccionTributacion.Commit(); } catch (Exception ex) { transaccionTributacion.Rollback(); throw ex; } finally { transaccionTributacion.Dispose(); conTributacion.Close(); conTributacion.Dispose(); } }
/// <summary> /// Ejecuta la reversión del precierre /// </summary> /// <param name="idFondo">Fondo que se desea revertir</param> /// <param name="fecha">Fecha de reversión</param> /// <param name="usuario">Usuario responsable de la reversión</param> /*INI 10110*/ /// <param name="motivo">Motivo de la reversión</param> //public void RevertirPrecierre(int idFondo,DateTime fecha, string usuario) public void RevertirPrecierre(int idFondo, DateTime fecha, string usuario, string motivo) /*FIN 10110*/ { ReversionDA da = new ReversionDA(); /*INICIO 8844*/ AtribucionDA atribucionDA = new AtribucionDA(); /*FIN 8844*/ da.Database = INGFondos.Constants.Conexiones.BaseDeDatosOperaciones; da.Server = INGFondos.Constants.Conexiones.ServidorOperaciones; //OT 7968 INI ReversionDA daDepositos = new ReversionDA(); daDepositos.Database = INGFondos.Constants.Conexiones.BaseDeDatosBancos; daDepositos.Server = INGFondos.Constants.Conexiones.ServidorBancos; //OT 7968 FIN SqlConnection cn = da.GetConnection2(); //OT 7968 INI //SqlConnection cnDepositos = daDepositos.GetConnection2(); SqlConnection cnDepositos = daDepositos.GetConnection2(); //OT 7968 FIN //INICIO OT8844 SqlConnection cnTributacion = atribucionDA.GetConnection2(); cnTributacion.Open(); SqlTransaction transTributacion = cnTributacion.BeginTransaction(IsolationLevel.ReadUncommitted); //FIN OT8844 cn.Open(); //OT 7968 INI cnDepositos.Open(); //OT 7968 FIN SqlTransaction trans = cn.BeginTransaction(); //OT 7968 INI SqlTransaction transDepositos = cnDepositos.BeginTransaction(); //OT 7968 FIN try { //OT 8292 INI //da.RevertirPrecierre(cn, trans, idFondo, fecha, usuario); /*INI 10110*/ //decimal idPrecierre = da.RevertirPrecierre(cn, trans, idFondo, fecha, usuario); decimal idPrecierre = da.RevertirPrecierre(cn, trans, idFondo, fecha, usuario, motivo); /*FIN 10110*/ //OT 8292 FIN da.EjecutarReversionExcesos(idFondo, fecha, usuario, cn, trans); // 7370 - PSC001 da.EjecutarReversionRescatesSignificativos(idFondo, fecha, usuario, cn, trans); // 7370 - PSC001 //OT 7968 INI //OT 8292 INI //daDepositos.EjecutarReversionDepositos(cnDepositos, transDepositos, idFondo, fecha, usuario); daDepositos.EjecutarReversionDepositos(cnDepositos, transDepositos, idFondo, fecha, idPrecierre, usuario); //OT 8292 FIN //OT 7968 FIN //INICIO OT8844 if (fecha.Year < fecha.AddDays(1).Year) // Si al día siguiente es otro año { atribucionDA.RevertirTributacion(idFondo, fecha, usuario, "S", cnTributacion, transTributacion); } atribucionDA.RevertirTributacion(idFondo, fecha, usuario, "D", cnTributacion, transTributacion); transTributacion.Commit(); //FIN OT8844 trans.Commit(); //OT 7968 INI transDepositos.Commit(); //OT 7968 FIN } catch (Exception e) { trans.Rollback(); //OT 7968 INI transDepositos.Rollback(); //OT 7968 FIN throw e; } finally { trans.Dispose(); cn.Close(); //OT 7968 INI transDepositos.Dispose(); cnDepositos.Close(); //OT 7968 FIN } }
public string GenerarAtribucionPrecierre(int idFondo, DateTime fechaProceso, string usuario, bool blnProAlterno, string desFondo, string tipoAcceso) { AtribucionDA atribucionDA = new AtribucionDA(); ValorCuotaDA valorCuotaDA = new ValorCuotaDA(); ConsultaContabilidadDA consultaContabilidadDA = new ConsultaContabilidadDA(); SqlConnection conTributacion = atribucionDA.GetConnection2(); SqlTransaction transaccionTributacion = null; try { conTributacion.Open(); transaccionTributacion = conTributacion.BeginTransaction(IsolationLevel.ReadUncommitted); DataTable dtValorCuota = valorCuotaDA.obtenerValorCuota(fechaProceso.ToString("yyyy-MM-dd"), idFondo); decimal valorCuota = Convert.ToDecimal(dtValorCuota.Rows[0]["VALOR_CUOTA"]); DataTable tipoCambio = consultaContabilidadDA.ObtenerTipoCambioContable(fechaProceso); if (tipoCambio.Rows.Count == 0) { throw new Exception("No se ha registrado el tipo de cambio para la fecha " + fechaProceso.ToString("dd/MM/yyyy")); } else { if (Convert.ToDecimal(tipoCambio.Rows[0]["VENSBS"]) == 1) { throw new Exception("El tipo de cambio para la fecha " + fechaProceso.ToString("dd/MM/yyyy") + " tiene valor 1."); } } TablaGeneralDA mantenimientoDA = new TablaGeneralDA(); DataTable dtTipoCalculo; dtTipoCalculo = mantenimientoDA.ListarTablaGeneral(ConstantesING.CODIGO_TABLA_TIPO_CALCULO); DataRow drTipoCalculo = dtTipoCalculo.Rows[0]; string tipoCalculo = drTipoCalculo["DESCRIPCION_LARGA"].ToString(); DataTable dtTipoAccesoCalculo; dtTipoAccesoCalculo = mantenimientoDA.ListarTablaGeneral(ConstantesING.CODIGO_TABLA_TIPO_ACCESO_FONDO); string tipoAcceso1; string tipoAccesoCalculo = ""; foreach (DataRow dato in dtTipoAccesoCalculo.Rows) { tipoAcceso1 = dato["LLAVE_TABLA"].ToString(); if (tipoAcceso1.Equals(tipoAcceso)) { tipoAccesoCalculo = dato["DESCRIPCION_CORTA"].ToString(); } } /*Se comenta codigo temporalmente para no tener que implementar hasta que se implemente para fondos privados * if (tipoCalculo == "PEPS" || tipoAccesoCalculo == "ANTIGUO") * { * if (!blnProAlterno) * { * if (!ExistenDifereciasVC(fechaProceso, idFondo)) * { * throw new Exception("Existen diferencias entre los Valores Cuota de Tributación y Operaciones para la fecha y fondo indicados."); * } * } * ////////////////////////////////////////////////////////////////////////////// * Int32 iCantReg = procesoDA.RegistrosRentabilidad(idFondo.ToString(), fechaProceso, dbTributacion); * if (iCantReg <= 0) * { * if (blnProAlterno) * { * procesoDA.RegistrarRentabilidadAlterno(desFondo, fechaProceso, usuario, dbTributacion, transaccionTributacion); * procesoDA.ActualizarDatosArchivo(fechaProceso, desFondo, usuario, dbTributacion, transaccionTributacion); * } * else * { * throw new Exception("No se ha cargado el archivo de Rentabilidad MIDAS del día " + fechaProceso.ToString("dd/MM/yyyy") + " para este Fondo."); * } * } * } */ atribucionDA.GenerarTributacionPrecierre(idFondo, fechaProceso, usuario, valorCuota, tipoAcceso, conTributacion, transaccionTributacion); transaccionTributacion.Commit(); return(tipoAccesoCalculo); } catch (Exception ex) { transaccionTributacion.Rollback(); throw ex; } finally { transaccionTributacion.Dispose(); conTributacion.Close(); conTributacion.Dispose(); } }