/// <summary> /// Retorna DataSet con la tabla LISTA que contiene los tipo fondo y la tabla FONDO /// que obtiene la lista de fondos con su fecha de precierre, valor cuota y si se ha ejecutado el /// proceso tributario. /// </summary> public DataSet obtenerFondos() { DataSet ds = new DataSet(); FondoDA da = new FondoDA(); ds.Tables.Add(da.ObtenerLista("TIPFON")); DataTable fondo = da.ObtenerFondosPrecierre(); /*INICIO 8844*/ TablaGeneralDA tgDa = new TablaGeneralDA(); DataTable dtFondosInversiones = tgDa.ListarTablaGeneral(ConstantesING.CODIGO_TABLA_FONDOS_INVERSIONES); /*FIN 8844*/ if (da.obtenerParametroXCodigo("GENERAR_RETENCIONES").Equals("S")) { foreach (DataRow rw in fondo.Rows) { //OT 4792 PSC2 Inicio------------------------------------------------------ /*da.Database = INGFondos.Constants.Conexiones.BaseDeDatosTributacion; * da.Server = INGFondos.Constants.Conexiones.ServidorTributacion;*/ //OT 4792 PSC2 Fin--------------------------------------------------------- //rw["FLAG_EJECUTO_TRIBUTACION"] = da.verificarTributacionEjecutada(Int32.Parse(rw["ID_FONDO"].ToString()),Convert.ToDateTime(rw["FECHA_PRECIERRE"].ToString()))?"S":"N"; /*rw["FLAG_EJECUTO_TRIBUTACION"] = da.verificarTributacionEjecutada(Convert.ToInt32(rw["ID_FONDO"].ToString()),Convert.ToDateTime(rw["FECHA_PRECIERRE"]))?"S":"N";*/ da.Database = INGFondos.Constants.Conexiones.BaseDeDatosOperaciones; da.Server = INGFondos.Constants.Conexiones.ServidorOperaciones; int resultado = 0; resultado = da.ObtenerCantidadOperacionesTipoFlu(Convert.ToInt32(rw["ID_FONDO"].ToString()), Convert.ToDateTime(rw["FECHA_PRECIERRE"].ToString())); if (resultado == 0)//!= null && pagoCupon.Equals("S")) { //OT 4792 PSC2 Inicio------------------------------------------------------ da.Database = INGFondos.Constants.Conexiones.BaseDeDatosTributacion; da.Server = INGFondos.Constants.Conexiones.ServidorTributacion; //OT 4792 PSC2 Fin--------------------------------------------------------- //rw["FLAG_EJECUTO_TRIBUTACION"] = da.verificarTributacionEjecutada(Convert.ToInt32(rw["ID_FONDO"].ToString()), Convert.ToDateTime(rw["FECHA_PRECIERRE"])) ? "S" : "S"; rw["FLAG_EJECUTO_TRIBUTACION"] = "S"; } else { //OT 4792 PSC2 Inicio------------------------------------------------------ da.Database = INGFondos.Constants.Conexiones.BaseDeDatosTributacion; da.Server = INGFondos.Constants.Conexiones.ServidorTributacion; //OT 4792 PSC2 Fin--------------------------------------------------------- //rw["FLAG_EJECUTO_TRIBUTACION"] = da.verificarTributacionEjecutada(Int32.Parse(rw["ID_FONDO"].ToString()),Convert.ToDateTime(rw["FECHA_PRECIERRE"].ToString()))?"S":"N"; rw["FLAG_EJECUTO_TRIBUTACION"] = da.verificarTributacionEjecutada(Convert.ToInt32(rw["ID_FONDO"].ToString()), Convert.ToDateTime(rw["FECHA_PRECIERRE"])) ? "S" : "N"; } /*INICIO 8844: Se obtienen los datos tributarios. No se incluyó en el método anterior porque la idea es que ya no se verifique la atribucion ejecutada.*/ DataRow[] dr = dtFondosInversiones.Select("LLAVE_TABLA = '" + rw["ID_FONDO"].ToString() + "'"); if (dr.Length == 1) { string descripcionLarga = dr[0]["DESCRIPCION_LARGA"].ToString().Trim(); string[] portafolioSerie = descripcionLarga.Split("|".ToCharArray()); rw["PORTAFOLIO"] = dr[0]["DESCRIPCION_CORTA"].ToString().Trim(); rw["SERIE"] = portafolioSerie.Length == 2 ? portafolioSerie[1] : ""; } /*FIN 8844*/ } } ds.Tables.Add(fondo); return(ds); }
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(); } }