private DataRow obtenerDatosActividadCliente(String idActividad)
    {
        DataRow resultado = null;

        actividad _actividad = new actividad(Session["idEmpresa"].ToString());

        DataTable tablaActividad = _actividad.ObtenerActividPorIdActividad(idActividad);

        if (tablaActividad.Rows.Count > 0)
        {
            resultado = tablaActividad.Rows[0];
        }

        return resultado;
    }
    private void cargar_GridView_ACTIVIDADES(String ID_CLASE)
    {
        actividad _actividad = new actividad(Session["idEmpresa"].ToString());
        DataTable tablaInfo = _actividad.ObtenerActividadesPorIdClase(ID_CLASE);

        if (tablaInfo.Rows.Count <= 0)
        {
            if (_actividad.MensajError != null)
            {
                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _actividad.MensajError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "ADVERTENCIA: No se encontró información de ACTIVIDADES asociadas a la CLASE seleccionada.", Proceso.Error);
            }

            GridView_ACTIVIDADES.DataSource = null;
            GridView_ACTIVIDADES.DataBind();
        }
        else
        {
            cargar_GridView_ACTIVIDADES_desde_tabla(tablaInfo);
            admin_columnas_grilla(GridView_ACTIVIDADES, false, true, true, false);
        }
    }
    private void cargar_DropDownList_ACTIVIDAD(String idClase)
    {
        DropDownList_ACTIVIDAD.Items.Clear();

        actividad _actividad = new actividad(Session["idEmpresa"].ToString());
        DataTable tablaActividades = _actividad.ObtenerActividadesPorIdClase(idClase);

        ListItem item = new ListItem("Seleccione Actividad", "");
        DropDownList_ACTIVIDAD.Items.Add(item);

        foreach (DataRow fila in tablaActividades.Rows)
        {
            item = new ListItem(fila["ID_ACTIVIDAD"].ToString() + " - " + fila["NOMBRE"].ToString(), fila["ID_ACTIVIDAD"].ToString());
            DropDownList_ACTIVIDAD.Items.Add(item);
        }

        DropDownList_ACTIVIDAD.DataBind();
    }
    protected void GridView_ACTIVIDADES_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value = GrillasFormulario.Actividades.ToString();

        int indexSeleccionado = Convert.ToInt32(e.CommandArgument);

        TextBox datoGrilla;

        HiddenField_FILA_ACTIVIDAD.Value = indexSeleccionado.ToString();
        HiddenField_ID_ACTIVIDAD.Value = GridView_ACTIVIDADES.DataKeys[indexSeleccionado].Values["ID_ACTIVIDAD"].ToString();

        datoGrilla = GridView_ACTIVIDADES.Rows[indexSeleccionado].FindControl("TextBox_DESCRIPCION_ACTIVIDAD") as TextBox;
        HiddenField_DESCRIPCION_ACTIVIDAD.Value = datoGrilla.Text.Trim();

        if (e.CommandName == "modificar")
        {
            HiddenField_ACCION_ACTIVIDAD.Value = AccionesGrilla.modificar.ToString();

            habilitar_fila_grilla(GridView_ACTIVIDADES, indexSeleccionado, 5, false, false, false);

            ocultar_paneles_generales(true, true, true, true);

            acciones_sobre_botones_deacicon_grillas(Button_NUEVO_ACTIVIDAD, Button_GUARDAR_ACTIVIDAD, Button_CANCELAR_ACTIVIDAD, false, true, true);
        }
        else
        {
            if (e.CommandName == "eliminar")
            {
                HiddenField_ACCION_ACTIVIDAD.Value = AccionesGrilla.Eliminar.ToString();

                ocultar_paneles_generales(true, true, true, true);

                acciones_sobre_botones_deacicon_grillas(Button_NUEVO_ACTIVIDAD, Button_GUARDAR_ACTIVIDAD, Button_CANCELAR_ACTIVIDAD, false, false, false);

                actividad _actividad = new actividad(Session["idEmpresa"].ToString());
                DataTable tablaInfoActividad = _actividad.ObtenerEmpresaPorIdActividad(HiddenField_ACCION_ACTIVIDAD.Value);
                DataRow filaInfoActividad = tablaInfoActividad.Rows[0];

                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_ACCION_SECCION, Panel_MENSAJE_ACCION_SECCION, Label_MENSAJE_ACCION_SECCION, "Al eliminar la ACTIVIDAD seleccionada se verán afectadas " + filaInfoActividad["NUM_EMPRESAS"].ToString() + " EMPRESAS, Desea continuar?", Proceso.Pregunta);
            }
        }
    }
    protected void Button_OK_SECCION_Click(object sender, EventArgs e)
    {
        int filaSeleccionada = 0;
        GridViewRow filaGrilla;
        TextBox datoGrilla;
        String ID_SELECCIONADO = null;
        String NOMBRE = null;
        Boolean verificador = true;

        if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Secciones.ToString())
        {
            filaSeleccionada = Convert.ToInt32(HiddenField_FILA_SECCION.Value);
            filaGrilla = GridView_SECCIONES.Rows[filaSeleccionada];

            datoGrilla = filaGrilla.FindControl("TextBox_ID_SECCION") as TextBox;
            ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

            datoGrilla = filaGrilla.FindControl("TextBox_DESCRIPCION_SECCION") as TextBox;
            NOMBRE = datoGrilla.Text.Trim().ToUpper();

            seccion _seccion = new seccion(Session["idEmpresa"].ToString());

            ocultar_mensaje(Panel_FONDO_MENSAJE_SECCION, Panel_MENSAJE_ACCION_SECCION);

            if (HiddenField_ACCION_SECCION.Value == AccionesGrilla.modificar.ToString())
            {
                verificador = _seccion.ActualizarSeccion(ID_SELECCIONADO, NOMBRE, Session["USU_LOG"].ToString());

                if (verificador == false)
                {
                    Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _seccion.MensajError, Proceso.Error);
                }
                else
                {
                    Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se modificó correctamente la SECCIÓN.", Proceso.Correcto);
                }
            }
            else
            {
                verificador = _seccion.EliminarSeccion(ID_SELECCIONADO, Session["USU_LOG"].ToString());

                if (verificador == false)
                {
                    Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _seccion.MensajError, Proceso.Error);
                }
                else
                {
                    Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se eliminó correctamente la SECCIÓN.", Proceso.Correcto);
                }
            }

            cargar_GridView_SECCIONES();

            acciones_sobre_botones_deacicon_grillas(Button_NUEVO_SECCION, Button_GUARDAR_SECCION, Button_CANCELAR_SECCION, true, false, false);
        }
        else
        {
            if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Divisiones.ToString())
            {
                filaSeleccionada = Convert.ToInt32(HiddenField_FILA_DIVISION.Value);
                filaGrilla = GridView_DIVISIONES.Rows[filaSeleccionada];

                datoGrilla = filaGrilla.FindControl("TextBox_ID_DIVISION") as TextBox;
                ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

                datoGrilla = filaGrilla.FindControl("TextBox_DESCRIPCION_DIVISION") as TextBox;
                NOMBRE = datoGrilla.Text.Trim().ToUpper();

                division _division = new division(Session["idEmpresa"].ToString());

                ocultar_mensaje(Panel_FONDO_MENSAJE_SECCION, Panel_MENSAJE_ACCION_SECCION);

                if (HiddenField_ACCION_DIVISION.Value == AccionesGrilla.modificar.ToString())
                {
                    verificador = _division.ActualizarDivision(ID_SELECCIONADO, NOMBRE, Session["USU_LOG"].ToString());

                    if (verificador == false)
                    {
                        Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _division.MensajError, Proceso.Error);
                    }
                    else
                    {
                        Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se modificó correctamente la DIVISIÓN.", Proceso.Correcto);
                    }
                }
                else
                {
                    verificador = _division.EliminarDivision(ID_SELECCIONADO, Session["USU_LOG"].ToString());

                    if (verificador == false)
                    {
                        Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _division.MensajError, Proceso.Error);
                    }
                    else
                    {
                        Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se eliminó correctamente la DIVISIÓN.", Proceso.Correcto);
                    }
                }

                String ID_SECCION = HiddenField_ID_SECCION.Value;
                cargar_GridView_DIVISIONES(ID_SECCION);

                acciones_sobre_botones_deacicon_grillas(Button_NUEVA_DIVISION, Button_GUARDAR_DIVISION, Button_CANCELAR_DIVISION, true, false, false);
            }
            else
            {
                if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Clases.ToString())
                {
                    filaSeleccionada = Convert.ToInt32(HiddenField_FILA_CLASE.Value);
                    filaGrilla = GridView_CLASES.Rows[filaSeleccionada];

                    datoGrilla = filaGrilla.FindControl("TextBox_ID_CLASE") as TextBox;
                    ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

                    datoGrilla = filaGrilla.FindControl("TextBox_DESCRIPCION_CLASE") as TextBox;
                    NOMBRE = datoGrilla.Text.Trim().ToUpper();

                    clase _clase = new clase(Session["idEmpresa"].ToString());

                    ocultar_mensaje(Panel_FONDO_MENSAJE_SECCION, Panel_MENSAJE_ACCION_SECCION);

                    if (HiddenField_ACCION_CLASE.Value == AccionesGrilla.modificar.ToString())
                    {
                        verificador = _clase.ActualizarClase(ID_SELECCIONADO, NOMBRE, Session["USU_LOG"].ToString());

                        if (verificador == false)
                        {
                            Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _clase.MensajError, Proceso.Error);
                        }
                        else
                        {
                            Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se modificó correctamente la CLASE.", Proceso.Correcto);
                        }
                    }
                    else
                    {
                        verificador = _clase.EliminarClase(ID_SELECCIONADO, Session["USU_LOG"].ToString());

                        if (verificador == false)
                        {
                            Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _clase.MensajError, Proceso.Error);
                        }
                        else
                        {
                            Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se eliminó correctamente la CLASE.", Proceso.Correcto);
                        }
                    }

                    String ID_DIVISION = HiddenField_ID_DIVISION.Value;
                    cargar_GridView_CLASES(ID_DIVISION);

                    acciones_sobre_botones_deacicon_grillas(Button_NUEVO_CLASE, Button_GUARDAR_CLASE, Button_CANCELAR_CLASE, true, false, false);
                }
                else
                {
                    if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Actividades.ToString())
                    {
                        filaSeleccionada = Convert.ToInt32(HiddenField_FILA_ACTIVIDAD.Value);
                        filaGrilla = GridView_ACTIVIDADES.Rows[filaSeleccionada];

                        datoGrilla = filaGrilla.FindControl("TextBox_ID_ACTIVIDAD") as TextBox;
                        ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

                        datoGrilla = filaGrilla.FindControl("TextBox_DESCRIPCION_ACTIVIDAD") as TextBox;
                        NOMBRE = datoGrilla.Text.Trim().ToUpper();

                        actividad _actividad = new actividad(Session["idEmpresa"].ToString());

                        ocultar_mensaje(Panel_FONDO_MENSAJE_SECCION, Panel_MENSAJE_ACCION_SECCION);

                        if (HiddenField_ACCION_ACTIVIDAD.Value == AccionesGrilla.modificar.ToString())
                        {
                            verificador = _actividad.ActualizarActividad(ID_SELECCIONADO, NOMBRE, Session["USU_LOG"].ToString());

                            if (verificador == false)
                            {
                                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _actividad.MensajError, Proceso.Error);
                            }
                            else
                            {
                                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se modificó correctamente la ACTIVIDAD.", Proceso.Correcto);
                            }
                        }
                        else
                        {
                            verificador = _actividad.EliminarActividad(ID_SELECCIONADO, Session["USU_LOG"].ToString());

                            if (verificador == false)
                            {
                                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _actividad.MensajError, Proceso.Error);
                            }
                            else
                            {
                                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se eliminó correctamente la ACTIVIDAD.", Proceso.Correcto);
                            }
                        }

                        String ID_CLASE = HiddenField_ID_CLASE.Value;
                        cargar_GridView_ACTIVIDADES(ID_CLASE);

                        acciones_sobre_botones_deacicon_grillas(Button_NUEVO_ACTIVIDAD, Button_GUARDAR_ACTIVIDAD, Button_CANCELAR_ACTIVIDAD, true, false, false);
                    }
                }
            }
        }
    }
    private void Modificar()
    {
        int filaSeleccionada = 0;
        GridViewRow filaGrilla = null;
        TextBox datoGrilla;
        String ID_SELECCIONADO = null;
        DataTable tablaInfo;
        DataRow filaInfo;

        if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Secciones.ToString())
        {
            filaSeleccionada = Convert.ToInt32(HiddenField_FILA_SECCION.Value);
            filaGrilla = GridView_SECCIONES.Rows[filaSeleccionada];
            datoGrilla = filaGrilla.FindControl("TextBox_ID_SECCION") as TextBox;

            ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

            seccion _seccion = new seccion(Session["idEmpresa"].ToString());
            tablaInfo = _seccion.ObtenerDivisionesClasesActidadesEmpresaPorIdSeccion(ID_SELECCIONADO);
            filaInfo = tablaInfo.Rows[0];

            Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_ACCION_SECCION, Panel_MENSAJE_ACCION_SECCION, Label_MENSAJE_ACCION_SECCION, "Al modificar la SECCIÓN seleccionada se verán afectadas " + filaInfo["NUM_DIVISIONES"].ToString() + " DIVISIONES, " + filaInfo["NUM_CLASES"].ToString() + " CLASES, " + filaInfo["NUM_ACTIVIDADES"].ToString() + " ACTIVIDADES y " + filaInfo["NUM_EMPRESAS"].ToString() + " EMPRESAS, Desea continuar?", Proceso.Pregunta);
        }
        else
        {
            if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Divisiones.ToString())
            {
                filaSeleccionada = Convert.ToInt32(HiddenField_FILA_DIVISION.Value);
                filaGrilla = GridView_DIVISIONES.Rows[filaSeleccionada];
                datoGrilla = filaGrilla.FindControl("TextBox_ID_DIVISION") as TextBox;

                ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

                division _division = new division(Session["idEmpresa"].ToString());
                tablaInfo = _division.ObtenerClasesActidadesEmpresaPorIdDivision(ID_SELECCIONADO);
                filaInfo = tablaInfo.Rows[0];

                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_ACCION_SECCION, Panel_MENSAJE_ACCION_SECCION, Label_MENSAJE_ACCION_SECCION, "Al modificar la DIVISIÓN seleccionada se verán afectadas " + filaInfo["NUM_CLASES"].ToString() + " CLASES, " + filaInfo["NUM_ACTIVIDADES"].ToString() + " ACTIVIDADES y " + filaInfo["NUM_EMPRESAS"].ToString() + " EMPRESAS, Desea continuar?", Proceso.Pregunta);
            }
            else
            {
                if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Clases.ToString())
                {
                    filaSeleccionada = Convert.ToInt32(HiddenField_FILA_CLASE.Value);
                    filaGrilla = GridView_CLASES.Rows[filaSeleccionada];
                    datoGrilla = filaGrilla.FindControl("TextBox_ID_CLASE") as TextBox;

                    ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

                    clase _clase = new clase(Session["idEmpresa"].ToString());
                    tablaInfo = _clase.ObtenerActidadesEmpresaPorIdClase(ID_SELECCIONADO);
                    filaInfo = tablaInfo.Rows[0];

                    Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_ACCION_SECCION, Panel_MENSAJE_ACCION_SECCION, Label_MENSAJE_ACCION_SECCION, "Al modificar la CLASE seleccionada se verán afectadas " + filaInfo["NUM_ACTIVIDADES"].ToString() + " ACTIVIDADES y " + filaInfo["NUM_EMPRESAS"].ToString() + " EMPRESAS, Desea continuar?", Proceso.Pregunta);
                }
                else
                {
                    if (HiddenField_GRIILA_SELECCIONADA_ACTUALMENTE.Value == GrillasFormulario.Actividades.ToString())
                    {
                        filaSeleccionada = Convert.ToInt32(HiddenField_FILA_ACTIVIDAD.Value);
                        filaGrilla = GridView_ACTIVIDADES.Rows[filaSeleccionada];
                        datoGrilla = filaGrilla.FindControl("TextBox_ID_ACTIVIDAD") as TextBox;

                        ID_SELECCIONADO = datoGrilla.Text.Trim().ToUpper();

                        actividad _actividad = new actividad(Session["idEmpresa"].ToString());
                        tablaInfo = _actividad.ObtenerEmpresaPorIdActividad(ID_SELECCIONADO);
                        filaInfo = tablaInfo.Rows[0];

                        Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_ACCION_SECCION, Panel_MENSAJE_ACCION_SECCION, Label_MENSAJE_ACCION_SECCION, "Al modificar la ACTIVIDAD seleccionada se verán afectadas " + filaInfo["NUM_EMPRESAS"].ToString() + " EMPRESAS, Desea continuar?", Proceso.Pregunta);
                    }
                }
            }
        }
    }
    private void Guardar_ACTIVIDAD()
    {
        String ID_CLASE = HiddenField_ID_CLASE.Value;

        int filaSeleccionada = Convert.ToInt32(HiddenField_FILA_ACTIVIDAD.Value);

        GridViewRow filaGrilla = GridView_ACTIVIDADES.Rows[filaSeleccionada];

        TextBox datoGrilla;

        datoGrilla = filaGrilla.FindControl("TextBox_ID_ACTIVIDAD") as TextBox;
        String ID_ACTIVIDAD = datoGrilla.Text.Trim().ToUpper();

        datoGrilla = filaGrilla.FindControl("TextBox_DESCRIPCION_ACTIVIDAD") as TextBox;
        String NOMBRE = datoGrilla.Text.Trim().ToUpper();

        if (ID_ACTIVIDAD.Length != 4)
        {
            Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "ADVERTENCIA: El código de una ACTIVIDAD está compuesto por cuatro números.", Proceso.Error);
        }
        else
        {
            if (determinar_actividades_con_id(ID_ACTIVIDAD) > 0)
            {
                Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "ADVERTENCIA: Ya existe una ACTIVIDAD con el identificador " + ID_ACTIVIDAD + ".", Proceso.Error);
            }
            else
            {
                actividad _actividad = new actividad(Session["idEmpresa"].ToString());

                Boolean verificador = _actividad.Adicionar(ID_ACTIVIDAD, ID_CLASE, NOMBRE, Session["USU_LOG"].ToString());

                if (verificador == false)
                {
                    Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, _actividad.MensajError, Proceso.Error);
                }
                else
                {
                    cargar_GridView_ACTIVIDADES(ID_CLASE);
                    Informar(Panel_FONDO_MENSAJE_SECCION, Image_MENSAJE_SECCION_POPUP, Panel_MENSAJE_SECCION, Label_MENSAJE_SECCION, "Se creó correctamente la nueva ACTIVIDAD.", Proceso.Correcto);
                }
            }
        }
    }
    private int determinar_actividades_con_id(String ID_ACTIVIDAD)
    {
        int resultado = 0;

        actividad _actividad = new actividad(Session["idEmpresa"].ToString());
        DataTable tablaInfo = _actividad.ObtenerActividPorIdActividad(ID_ACTIVIDAD);

        resultado = tablaInfo.Rows.Count;

        return resultado;
    }