protected void Button_ADICIONAR_CARGO_Click(object sender, EventArgs e)
    {
        Decimal ID_FUENTE = Convert.ToDecimal(HiddenField_ID_FUENTE.Value);

        Decimal ID_OCUPACION = Convert.ToDecimal(DropDownList_ID_OCUPACION.SelectedValue);
        String OBSERVACIONES = TextBox_Cargo_Comentario.Text.Trim();
        String LLAVE = ID_FUENTE.ToString() + "-" + ID_OCUPACION.ToString();

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal REGISTRO = _fuentesReclutamiento.AdicionarRecOcupacionesFuente(ID_FUENTE, ID_OCUPACION, OBSERVACIONES, LLAVE);

        if (REGISTRO <= 0)
        {
            Informar(Panel_FONDO_MENSAJE_ABAJO, Image_MENSAJE_ABAJO_POPUP, Panel_MENSAJES_ABAJO, Label_MENSAJE_ABAJO, _fuentesReclutamiento.MensajeError, Proceso.Error);
        }
        else
        {
            cargar_cargos_en_fuente(ID_FUENTE);

            Panel_NUEVO_CARGO.Visible = false;

            Informar(Panel_FONDO_MENSAJE_ABAJO, Image_MENSAJE_ABAJO_POPUP, Panel_MENSAJES_ABAJO, Label_MENSAJE_ABAJO, "El Cargo fue adicionado correctamente.", Proceso.Correcto);
        }
    }
    protected void Button_ADICIONAR_COMUNICACION_Click(object sender, EventArgs e)
    {
        Decimal ID_FUENTE = Convert.ToDecimal(HiddenField_ID_FUENTE.Value);

        DateTime FECHA_R = Convert.ToDateTime(TextBox_fecha.Text);
        String COMUNICAION = TextBox_Comentarios_comunicacion.Text.Trim();

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal REGISTRO = _fuentesReclutamiento.AdicionarRecComFuentes(ID_FUENTE, FECHA_R, COMUNICAION);

        if (REGISTRO <= 0)
        {
            Informar(Panel_FONDO_MENSAJE_ABAJO, Image_MENSAJE_ABAJO_POPUP, Panel_MENSAJES_ABAJO, Label_MENSAJE_ABAJO, _fuentesReclutamiento.MensajeError, Proceso.Error);
        }
        else
        {
            cargar_comunicaciones(ID_FUENTE);

            Panel_NUEVA_COMUNICACION.Visible = false;

            Informar(Panel_FONDO_MENSAJE_ABAJO, Image_MENSAJE_ABAJO_POPUP, Panel_MENSAJES_ABAJO, Label_MENSAJE_ABAJO, "La comunicación fue registrada correctamente", Proceso.Correcto);
        }
    }
    private void cargar_DropDownList_ID_FUENTE()
    {
        DropDownList_ID_FUENTE.Items.Clear();

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaFuentes = _fuentesReclutamiento.ObtenerRecFuentesTodos();

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

        foreach (DataRow fila in tablaFuentes.Rows)
        {
            item = new ListItem(fila["NOM_FUENTE"].ToString(), fila["ID_FUENTE"].ToString());
            DropDownList_ID_FUENTE.Items.Add(item);
        }

        DropDownList_ID_FUENTE.DataBind();
    }
    private void Modificar()
    {
        Decimal ID_FUENTE = Convert.ToDecimal(HiddenField_ID_FUENTE.Value);

        String NOM_FUENTE = TextBox_NOM_FUENTE.Text.ToUpper().Trim();
        String DIR_FUENTE = TextBox_DIR_FUENTE.Text.ToUpper().Trim();
        String ENCARGADO = TextBox_ENCARGADO.Text.ToUpper().Trim();
        String CARGO_ENC = TextBox_CARGO_ENC.Text.ToUpper().Trim();
        String TEL_FUENTE = TextBox_TEL_FUENTE.Text.ToUpper().Trim();
        String EMAIL_ENCARGADO = TextBox_EMAIL_CONTACTO.Text.Trim();
        String CIU_FUENTE = DropDownList_CIUDAD.SelectedValue;
        String OBSERVACIONES = TextBox_Observaciones.Text.ToUpper().Trim();

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Boolean verificador = _fuentesReclutamiento.ActualizarRecFuentes(ID_FUENTE, NOM_FUENTE, DIR_FUENTE, CIU_FUENTE, TEL_FUENTE, ENCARGADO, CARGO_ENC, OBSERVACIONES, EMAIL_ENCARGADO);

        if (verificador == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuentesReclutamiento.MensajeError, Proceso.Error);
        }
        else
        {
            Cargar(ID_FUENTE);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La Fuente de Reclutamiento fue modificada correctamente.", Proceso.Correcto);
        }
    }
    private void Guardar()
    {
        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        String NOM_FUENTE = TextBox_NOM_FUENTE.Text.ToUpper().Trim();
        String DIR_FUENTE = TextBox_DIR_FUENTE.Text.ToUpper().Trim();
        String ENCARGADO = TextBox_ENCARGADO.Text.ToUpper().Trim();
        String CARGO_ENC = TextBox_CARGO_ENC.Text.ToUpper().Trim();
        String TEL_FUENTE = TextBox_TEL_FUENTE.Text.ToUpper().Trim();
        String EMAIL_ENCARGADO = TextBox_EMAIL_CONTACTO.Text.Trim();
        String CIU_FUENTE = DropDownList_CIUDAD.SelectedValue;
        String OBSERVACIONES = TextBox_Observaciones.Text.ToUpper().Trim();

        Decimal REGISTRO = _fuentesReclutamiento.AdicionarRecFuentes(NOM_FUENTE, DIR_FUENTE, DropDownList_CIUDAD.SelectedValue, TEL_FUENTE, ENCARGADO, CARGO_ENC, OBSERVACIONES, EMAIL_ENCARGADO);

        if (REGISTRO == 0)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuentesReclutamiento.MensajeError, Proceso.Error);
        }
        else
        {
            Cargar(REGISTRO);
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La Fuente de Reclutamiento " + NOM_FUENTE + " fue creada correctamente. Se le asignó el ID: " + REGISTRO.ToString() + ".", Proceso.Correcto);
        }
    }
    private void cargar_GridView_RESULTADOS_BUSQUEDA()
    {
        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaFuentes = _fuentesReclutamiento.ObtenerRecFuentesTodos();

        if (tablaFuentes.Rows.Count <= 0)
        {
            if (_fuentesReclutamiento.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuentesReclutamiento.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron resultados para mostrar.", Proceso.Advertencia);
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaFuentes;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
    private void cargar_comunicaciones(Decimal ID_FUENTE)
    {
        Mostrar(Acciones.CargarComunicaciones);

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaComunicaciones = _fuentesReclutamiento.ObtenerRecComFuentesPorIdFuente(ID_FUENTE);

        if (tablaComunicaciones.Rows.Count <= 0)
        {
            GridView_COMUNICACION.DataSource = null;
            GridView_COMUNICACION.DataBind();

            if (_fuentesReclutamiento.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuentesReclutamiento.MensajeError, Proceso.Error);
            }
        }
        else
        {
            GridView_COMUNICACION.DataSource = tablaComunicaciones;
            GridView_COMUNICACION.DataBind();
            Panel_GRILLA_COMUNICACIONES.Visible = true;
        }
    }
    private void cargar_cargos_en_fuente(Decimal ID_FUENTE)
    {
        Mostrar(Acciones.CargarCargos);

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaCargos = _fuentesReclutamiento.ObtenerRecOcupacionesFuentesPorFuente(ID_FUENTE);

        if(tablaCargos.Rows.Count <= 0)
        {
            GridView_CARGOS_INCLUIDOS.DataSource = null;
            GridView_CARGOS_INCLUIDOS.DataBind();

            if (_fuentesReclutamiento.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuentesReclutamiento.MensajeError, Proceso.Error);
            }
        }
        else
        {
            GridView_CARGOS_INCLUIDOS.DataSource = tablaCargos;
            GridView_CARGOS_INCLUIDOS.DataBind();
            Panel_GRILLA_OCUPACIONES_FUENTE.Visible = true;
        }
    }
    private void Cargar(Decimal REGISTRO)
    {
        HiddenField_ID_FUENTE.Value = REGISTRO.ToString();

        Ocultar(Acciones.Inicio);
        Desactivar(Acciones.Inicio);

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaFuente = _fuentesReclutamiento.ObtenerRecFuentesPorIdFuente(Convert.ToInt32(REGISTRO));

        if (tablaFuente.Rows.Count <= 0)
        {
            Mostrar(Acciones.Inicio);
            Limpiar(Acciones.Nuevo);

            if (_fuentesReclutamiento.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuentesReclutamiento.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información de la fuente seleccionad.", Proceso.Advertencia);
            }
        }
        else
        {
            Mostrar(Acciones.CargarFuente);

            DataRow filaFuente = tablaFuente.Rows[0];

            cargar_informacion_control_registro(filaFuente);

            cargar_informacion_fuente(filaFuente);
        }
    }
    private void Buscar()
    {
        Ocultar(Acciones.Inicio);
        Desactivar(Acciones.Inicio);
        Mostrar(Acciones.Inicio);

        String datosCapturados = HiddenField_FILTRO_DATO.Value;
        String campo = HiddenField_FILTRO_DROP.Value;

        fuentesReclutamiento _fuentesReclutamiento = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaResultadosBusqueda = new DataTable();

        if (DropDownList_BUSCAR.SelectedValue == "NOM_FUENTE")
        {
            tablaResultadosBusqueda = _fuentesReclutamiento.ObtenerRecFuentesPorNomFuente(datosCapturados);
        }
        else
        {
            if (DropDownList_BUSCAR.SelectedValue == "ENCARGADO")
            {
                tablaResultadosBusqueda = _fuentesReclutamiento.ObtenerRecFuentesPorEncargado(datosCapturados);
            }
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_fuentesReclutamiento.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuentesReclutamiento.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron registros que cumplieran los datos de busqueda.", Proceso.Advertencia);
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
    protected void Button_OcultarFuente_Click(object sender, EventArgs e)
    {
        Decimal ID_FUENTE = Convert.ToDecimal(HiddenField_ID_FUENTE.Value);

        fuentesReclutamiento _fuente = new fuentesReclutamiento(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Boolean verificador = _fuente.OcultarRecFuentes(ID_FUENTE);

        if (verificador == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _fuente.MensajeError, Proceso.Error);
        }
        else
        {
            Ocultar(Acciones.Inicio);
            Desactivar(Acciones.Inicio);
            Mostrar(Acciones.Inicio);

            if (HiddenField_TIPO_BUSQUEDA_ACTUAL.Value == "SIN_FILTRO")
            {
                cargar_GridView_RESULTADOS_BUSQUEDA();
            }
            else
            {
                Buscar();
            }
        }
    }