private void Cargar_GridView_DetallesPresupuestoGeneral_DesdeDataTable(DataTable tablaPresupuestosEmpresa)
    {
        tools _tools = new tools();

        GridView_DetallesPresupuestoGeneral.SelectedIndex = Convert.ToInt32(HiddenField_INDEX_GRID_DET_PRES_GEN.Value);
        GridView_DetallesPresupuestoGeneral.PageIndex = Convert.ToInt32(HiddenField_PAGE_GRID_DET_PRES_GEN.Value);

        GridView_DetallesPresupuestoGeneral.DataSource = tablaPresupuestosEmpresa;
        GridView_DetallesPresupuestoGeneral.DataBind();

        String letraSeleciconada = "A";
        if (String.IsNullOrEmpty(HiddenField_LETRA_PAGINACION_EMPRESA.Value) == false)
        {
            letraSeleciconada = HiddenField_LETRA_PAGINACION_EMPRESA.Value;
        }

        for (int i = 0; i < GridView_DetallesPresupuestoGeneral.Rows.Count; i++)
        {
            DataRow filaTabla = tablaPresupuestosEmpresa.Rows[(GridView_DetallesPresupuestoGeneral.PageIndex * GridView_DetallesPresupuestoGeneral.PageSize) + i];

            Decimal presupuesto = 0;
            Decimal asignado = 0;
            Decimal ejecutado = 0;
            Decimal saldo = 0;

            Decimal ID_EMPRESA = Convert.ToDecimal(GridView_DetallesPresupuestoGeneral.DataKeys[i].Values["ID_EMPRESA"]);

            try
            {
                presupuesto = Convert.ToDecimal(filaTabla["PRESUPUESTO"]);
            }
            catch
            {
                presupuesto = 0;
            }

            try
            {
                asignado = Convert.ToDecimal(filaTabla["ASIGNADO"]);
            }
            catch
            {
                asignado = 0;
            }

            try
            {
                ejecutado = Convert.ToDecimal(filaTabla["EJECUTADO"]);
            }
            catch
            {
                ejecutado = 0;
            }

            saldo = presupuesto - (asignado + ejecutado);

            TextBox textoPresupuesto = GridView_DetallesPresupuestoGeneral.Rows[i].FindControl("TextBox_Presupuesto") as TextBox;
            textoPresupuesto.Text = Convert.ToDecimal(filaTabla["PRESUPUESTO"]).ToString();

            TextBox textoAsignado = GridView_DetallesPresupuestoGeneral.Rows[i].FindControl("TextBox_AsignadoEmpresa") as TextBox;
            textoAsignado.Text = Convert.ToDecimal(filaTabla["ASIGNADO"]).ToString();

            TextBox textoEjecutado = GridView_DetallesPresupuestoGeneral.Rows[i].FindControl("TextBox_EjecutadoEmpresa") as TextBox;
            textoEjecutado.Text = Convert.ToDecimal(filaTabla["EJECUTADO"]).ToString();

            TextBox textoSaldo = GridView_DetallesPresupuestoGeneral.Rows[i].FindControl("TextBox_SaldoEmpresa") as TextBox;
            textoSaldo.Text = saldo.ToString();

            TextBox textoObservaciones = GridView_DetallesPresupuestoGeneral.Rows[i].FindControl("TextBox_ObservacionesEmpresa") as TextBox;
            textoObservaciones.Text = filaTabla["OBSERVACIONES"].ToString().Trim();

            if (HiddenField_ID_AREA.Value == Programa.Areas.GESTIONHUMANA.ToString())
            {
                if (ID_EMPRESA == _tools.ObtenerIdEmpleadorPorSession(Convert.ToInt32(Session["idEmpresa"])))
                {
                    GridView_DetallesPresupuestoGeneral.Rows[i].Visible = true;
                }
                else
                {
                    GridView_DetallesPresupuestoGeneral.Rows[i].Visible = false;
                }
            }
            else
            {
                GridView_DetallesPresupuestoGeneral.Rows[i].Visible = filaTabla["RAZ_SOCIAL"].ToString().Trim().ToUpper().StartsWith(letraSeleciconada.ToUpper());
            }
        }
    }
    private void CargarPresupuestoGeneralSeleccionado(Decimal ID_PRES_GEN, Int32 ANIO, Decimal MONTO, Decimal ASIGNADO, Decimal EJECUTADO)
    {
        tools _tools = new tools();

        HiddenField_ID_PRES_GEN_SELECCIONADO.Value = ID_PRES_GEN.ToString();
        HiddenField_ANNO_SELECCIONADO.Value = ANIO.ToString();
        HiddenField_MONTO_PRES_GEN_SELECCIONADO.Value = MONTO.ToString();
        HiddenField_ASIGNADO_PRES_GEN_SELECCIONADO.Value = ASIGNADO.ToString();
        HiddenField_EJECUTADO_PRES_GEN_SELECCIONADO.Value = EJECUTADO.ToString();

        presupuesto _pres = new presupuesto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaHistorial = _pres.ObtenerHistPresupuestoGeneral(ID_PRES_GEN);
        if (tablaHistorial.Rows.Count <= 0)
        {
            if (_pres.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _pres.MensajeError, Proceso.Error);
            }

            Panel_DatosPresupuestoAnioSeleccionado.Visible = false;
        }
        else
        {
            Panel_DatosPresupuestoAnioSeleccionado.Visible = true;

            GridView_HistorialPresupuestoGeneral.DataSource = tablaHistorial;
            GridView_HistorialPresupuestoGeneral.DataBind();
        }

        DataTable tablaPresupuestosEmpresas = null;

        if (HiddenField_ID_AREA.Value != Programa.Areas.GESTIONHUMANA.ToString())
        {
            tablaPresupuestosEmpresas = _pres.ObtenerPresupuestosEmpresasesPorPresGen(ID_PRES_GEN, ANIO, 0);
        }
        else
        {
            Decimal ID_EMPRESA = _tools.ObtenerIdEmpleadorPorSession(Convert.ToInt32(Session["idEmpresa"]));
            tablaPresupuestosEmpresas = _pres.ObtenerPresupuestosEmpresasesPorPresGen(ID_PRES_GEN, ANIO, ID_EMPRESA);
        }

        HiddenField_INDEX_GRID_DET_PRES_GEN.Value = "-1";
        HiddenField_PAGE_GRID_DET_PRES_GEN.Value = "0";

        if (tablaPresupuestosEmpresas.Rows.Count <= 0)
        {
            if (_pres.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _pres.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información de empresa y presupuestos para el año seleccionado.", Proceso.Advertencia);
            }

            GridView_DetallesPresupuestoGeneral.PageIndex = 0;
            GridView_DetallesPresupuestoGeneral.DataSource = null;
            GridView_DetallesPresupuestoGeneral.DataBind();

            Panel_DetallesPresupuestoGeneral.Visible = false;
        }
        else
        {
            Panel_DetallesPresupuestoGeneral.Visible = true;

            Cargar_GridView_DetallesPresupuestoGeneral_DesdeDataTable(tablaPresupuestosEmpresas);

            InhabilitarFilasGrilla(GridView_DetallesPresupuestoGeneral, 4);
            ConfigurarBotonesEdicion_GridView_DetallesPresupuestoGeneral(GridView_DetallesPresupuestoGeneral, true, true, false, false);
        }
    }