private void GuardarCumplir()
    {
        Decimal ID_REQUISICION = Convert.ToDecimal(HiddenField_ID_REQUERIMIENTO.Value);

        String CANCELADO = "N";
        String TIPO_CANCELA = null;
        String MOTIVO_CANCELA = null;
        String CUMPLIDO = "S";

        String CUMPLE_OPORTUNO = "N";
        if (CheckBox_ReqOportuna.Checked == true)
        {
            CUMPLE_OPORTUNO = "S";
        }

        String CUMPLE_EECTIVA = "N";
        if (CheckBox_ReqEfectiva.Checked == true)
        {
            CUMPLE_EECTIVA = "S";
        }

        String MOTIVO_CUMPLIDO = DropDownList_MOTIVO_CUMPLIR.SelectedValue;

        requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        parametro _p = new parametro(Session["idEmpresa"].ToString());
        Int32 contratadosPorReq = 0;
        Boolean correcto = true;
        Boolean ajustarCantidad = false;

        DataTable tablaMotivoCumplido = _p.ObtenerDescripcionParametroPorCodigo(tabla.PARAMETROS_MOTIVO_CUMPLIDO_REQ, MOTIVO_CUMPLIDO);
        if (tablaMotivoCumplido.Rows.Count > 0)
        {
            DataRow filaMotivoCumplido = tablaMotivoCumplido.Rows[0];
            if (filaMotivoCumplido["VARIABLE"].ToString().Trim().ToUpper() == "AJUSTAR_CANTIDAD")
            {
                ajustarCantidad = true;
            }
        }

        if (ajustarCantidad == true)
        {
            DataTable tablaConteoContratatos = _requisicion.ObtenerTrabajadoresContratadosPorReq(ID_REQUISICION);

            if (tablaConteoContratatos.Rows.Count > 0)
            {
                DataRow filaConteoContratados = tablaConteoContratatos.Rows[0];
                contratadosPorReq = Convert.ToInt32(filaConteoContratados["CONTRATADOS"].ToString());
            }
        }

        if (ajustarCantidad == true)
        {
            if (contratadosPorReq == 0)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El requerimiento no puede ser cumplido utilizando el motivo: " + MOTIVO_CUMPLIDO + ", porque no se contrataron personas.", Proceso.Advertencia);
                correcto = false;
            }
        }

        if (correcto == true)
        {
            Boolean resultado = _requisicion.ActualizarConRequerimeintosBanderas(ID_REQUISICION, CUMPLIDO, CUMPLE_OPORTUNO, CUMPLE_EECTIVA, MOTIVO_CUMPLIDO, CANCELADO, TIPO_CANCELA, MOTIVO_CANCELA);

            if (resultado == false)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _requisicion.MensajeError, Proceso.Error);
            }
            else
            {
                Cargar(ID_REQUISICION);

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La requisición #: " + ID_REQUISICION.ToString() + " fue cumplida correctamente.", Proceso.Correcto);
            }
        }
    }
    private void CargarInformacionPerfilSeleccionado(Decimal ID_PERFIL)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);

        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoPefil = _perfil.ObtenerPorRegistro(Convert.ToInt32(ID_PERFIL));
        DataRow filaInfoPerfil = tablaInfoPefil.Rows[0];

        Decimal ID_OCUPACION = Convert.ToDecimal(filaInfoPerfil["ID_OCUPACION"]);

        cargo _cargo = new cargo(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoCargo = _cargo.ObtenerOcupacionPorIdOcupacion(ID_OCUPACION);
        DataRow filaInfoCargo = tablaInfoCargo.Rows[0];

        Label_NOM_OCUPACION.Text = filaInfoCargo["ID_OCUPACION"].ToString() + "-" + filaInfoCargo["NOM_OCUPACION"].ToString();
        Label_EDAD_MIN.Text = filaInfoPerfil["EDAD_MIN"].ToString();
        Label_EDAD_MAX.Text = filaInfoPerfil["EDAD_MAX"].ToString();
        Label_EXPERIENCIA.Text = filaInfoPerfil["EXPERIENCIA"].ToString();
        Label_SEXO.Text = filaInfoPerfil["SEXO"].ToString();

        parametro _parametro = new parametro(Session["idEmpresa"].ToString());
        DataTable tablaParametro = _parametro.ObtenerDescripcionParametroPorCodigo(tabla.PARAMETROS_NIV_ESTUDIOS, filaInfoPerfil["NIV_ESTUDIOS"].ToString());
        DataRow filaInfoParametro = tablaParametro.Rows[0];
        Label_NIVEL_ACADEMICO.Text = filaInfoParametro["DESCRIPCION"].ToString();
    }