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

        String CANCELADO      = "S";
        String TIPO_CANCELA   = RadioButtonList_TIPO_CANCELACION.SelectedValue;
        String MOTIVO_CANCELA = null;

        if (TIPO_CANCELA == "CLIENTE")
        {
            MOTIVO_CANCELA = DropDownList_MOTIVO_CANCELACION.SelectedValue;
        }
        String CUMPLIDO = "N";

        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 = null;

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

        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 cancelada correctamente.", Proceso.Correcto);
        }
    }
    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);
            }
        }
    }