/*FIN 10110*/
        //INI OT11264 PSC002
        public void ReversionAlertaActividadCliente(int idFondo, DateTime fecha, string usuario)
        {
            ReversionDA da = new ReversionDA();

            da.Database = INGFondos.Constants.Conexiones.BaseDeDatosOperaciones;
            da.Server   = INGFondos.Constants.Conexiones.ServidorOperaciones;
            SqlConnection cn = da.GetConnection2();

            cn.Open();
            SqlTransaction trans = cn.BeginTransaction();

            try
            {
                da.ReversionAlertaActividadCliente(cn, trans, idFondo, fecha, usuario);
                trans.Commit();
            }
            catch (Exception e)
            {
                trans.Rollback();
                throw e;
            }
            finally
            {
                trans.Dispose();
                cn.Close();
            }
        }
        /*INI 10110*/
        public DataTable ObtenerUsuario(string codUsuario)
        {
            ReversionDA da = new ReversionDA();

            da.Database = INGFondos.Constants.Conexiones.BaseDeDatosAccesos;
            da.Server   = INGFondos.Constants.Conexiones.ServidorAccesos;
            SqlConnection cn = da.GetConnection2();

            cn.Open();
            SqlTransaction trans = cn.BeginTransaction();

            try
            {
                ProspectoMasivoDA prospectoMasivoDA = new ProspectoMasivoDA();
                DataTable         dtUsuario         = prospectoMasivoDA.ObtenerUsuario(codigoUsuario, cn, trans);
                trans.Commit();
                return(dtUsuario);
            }
            catch (Exception ex)
            {
                trans.Rollback();
                trans.Rollback();
                throw ex;
            }
            finally
            {
                trans.Dispose();
                cn.Close();
            }
        }
        /// <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
            }
        }
        //FIN OT11264 PSC002

        //OT11777 INI
        public DataTable ObtenerSolicitudReversionAprobada(int idFondo, int fecha)
        {
            ReversionDA da = new ReversionDA();

            return(da.ObtenerSolicitudReversionAprobada(idFondo, fecha));
        }
        /// <summary>
        /// Obtiene la fecha que se podría revertir un fondo
        /// </summary>
        /// <param name="idFondo">Fondo que se desea revertir</param>
        /// <returns>Devuelve la fecha que se podría revertir el fondo seleccionado</returns>
        public string ObtenerFechaReversion(int idFondo)
        {
            ReversionDA da = new ReversionDA();

            return(da.ObtenerFechaReversion(idFondo));
        }
        /// <summary>
        /// Obtiene la lista de fondos que el usuario puede elegir para revertir
        /// </summary>
        /// <returns>Tabla con los datos de los fondos que se puede seleccionar</returns>
        public DataTable ListarFondos()
        {
            ReversionDA da = new ReversionDA();

            return(da.ObtenerFondos());
        }