protected void Button11_Click(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"].ToString());
        int ID_REQUERIMIENTO = Convert.ToInt32(QueryStringSeguro["requerimiento"]);

        DateTime FECHA_R_SEGUIMIENTO = Convert.ToDateTime(TextBox_FECHA_SEGUIMIENTO.Text);
        String ACCION = DropDownList_ACCION_SEGUIMIENTO.SelectedValue;
        String COMENTARIOS = TextBox_OBS_SEGUIMIENTO.Text.ToUpper();

        requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        Decimal RESULTADO = _requisicion.AdicionarConRegSeg(ID_REQUERIMIENTO, FECHA_R_SEGUIMIENTO, ACCION, COMENTARIOS);

        if (RESULTADO == 0)
        {
            configurarMensajes(true, System.Drawing.Color.Red);
            Label_MENSAJE.Text = _requisicion.MensajeError;
            configurarPaneles(false, false, false, false, false, true);

            Button_ENVIAR_CANDIDATOS.Visible = true;
        }
        else
        {
            DataTable tablaConRegSeg = _requisicion.ObtenerConRegSegPorIdRequerimiento(ID_REQUERIMIENTO);
            GridView_SEGUIMIENTO.DataSource = tablaConRegSeg;
            GridView_SEGUIMIENTO.DataBind();

            TextBox_FECHA_SEGUIMIENTO.Text = DateTime.Now.ToShortDateString();
            DropDownList_ACCION_SEGUIMIENTO.SelectedIndex = 0;
            TextBox_OBS_SEGUIMIENTO.Text = "";
        }
    }
    protected void Buscar()
    {
        Ocultar(Acciones.Inicio);
        requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable _dataTable = new DataTable();

        switch (this.DropDownList_BUSCAR.SelectedValue)
        {
            case "NUMERO_DOCUMENTO":
                _dataTable = _requisicion.ObtenerRequerimientosPorNumeroDocumento(this.TextBox_BUSCAR.Text);
                break;
            case "NOMBRE":
                _dataTable = _requisicion.ObtenerRequerimientosPorNombre(this.TextBox_BUSCAR.Text);
                break;
        }

        if (_dataTable.Rows.Count > 0)
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = _dataTable;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
            Mostrar(Acciones.BusquedaEncontro);
        }
        else
        {
            if (!String.IsNullOrEmpty(_requisicion.MensajeError))
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _requisicion.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "ADVERTENCIA: No se encontró información para " + this.DropDownList_BUSCAR.SelectedItem + " : " + this.TextBox_BUSCAR.Text, Proceso.Advertencia);
            }

            Mostrar(Acciones.BusquedaNoEncontro);
        }

        _dataTable.Dispose();

        HiddenField_ID_REQUERIMIENTO.Value = "";
        HiddenField_ID_SOLICITUD.Value = "";
    }
    protected void Button_CONFIRMAR_SUELDO_Click(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"].ToString());
        int ID_REQUERIMIENTO = Convert.ToInt32(QueryStringSeguro["requerimiento"]);

        radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Boolean resultado = true;

        int ID_SOLICITUD = Convert.ToInt32(Label_ID_SOLICITUD.Text);

        DateTime F_ING_C = Convert.ToDateTime(TextBox_FECHA_INICIACION.Text);
        Decimal SUELDO_C = Convert.ToDecimal(TextBox_CONFIRMAR_SUELDO.Text);

        resultado = _radicacionHojasDeVida.ActualizarEstadoFechaIngresoYSueldoIngresoContratoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, "POR CONTRATAR", F_ING_C, SUELDO_C);
        if (DropDownList_TIP_REQ.SelectedItem.ToString() == "TRASLADO")
        {
            requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            Decimal RESULTADO = _requisicion.AdicionarConRegSeg(ID_REQUERIMIENTO, System.DateTime.Today, "TRASLADO", "Se enviaron masivamente a contratar, sin validación de documentos");
        }

        if (resultado == true)
        {
            configurarMensajes(true, System.Drawing.Color.Green);
            Label_MENSAJE.Text = "El candidato seleccionado fue enviado a contratar correctamente.";
            configurarPaneles(false, false, false, false, false, true);

            Button_ENVIAR_CANDIDATOS.Visible = true;

        }
        else
        {
            configurarMensajes(true, System.Drawing.Color.Red);
            Label_MENSAJE.Text = _radicacionHojasDeVida.MensajeError;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.Header.Title = "ACTIVAR CONTRATO";

        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        Panel_MENSAJES.Visible = false;

        CargarQueryString();

        if (IsPostBack == false)
        {
            Configurar();

            String accion = QueryStringSeguro["accion"].ToString();
            if (accion == "inicial")
            {
                iniciar_interfaz_inicial();

                Panel_BOTONES_INTERNOS.Visible = true;
                cargar_menu_botones_modulos_internos(false);
            }
            else if (accion == "cargar")
            {
                Panel_Cargos_Por_Fuente.Visible = true;
                Panel_Informacion_Contrato.Visible = true;
                Panel_MENSAJES.Visible = false;

                registroContrato _contrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                DataTable tablaContratos = _contrato.ObtenerContratoPorNumeroIdentificacion(HiddenField_NUM_DOC_IDENTIDAD.Value);
                if (tablaContratos.Rows.Count == 0)
                {
                    Ocultar(Acciones.Contratar);
                    Decimal ID_REQUERIMIENTO = Convert.ToDecimal(HiddenField_ID_REQUISICION.Value);
                    Decimal ID_SOLICITUD = Convert.ToDecimal(HiddenField_ID_SOLICITUD.Value);

                    radicacionHojasDeVida _solIngreso = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    _solIngreso.ActualizarEstadoProcesoRegSolicitudesIngreso(Convert.ToInt32(ID_REQUERIMIENTO), Convert.ToInt32(ID_SOLICITUD), "ELABORAR CONTRATO", Session["USU_LOG"].ToString());

                    tablaContratos = _contrato.ObtenerDatosNuevoContrato(Convert.ToInt32(ID_REQUERIMIENTO), Convert.ToInt32(ID_SOLICITUD));
                    DataRow filaContrato = tablaContratos.Rows[0];
                    String nombre = filaContrato["NOMBRES"].ToString() + " " + filaContrato["APELLIDOS"].ToString();
                    String NUM_DOC_IDENTIDAD = filaContrato["TIP_DOC_IDENTIDAD"].ToString() + " " + filaContrato["NUM_DOC_IDENTIDAD"].ToString();

                    String Datos_persona = "Nombre: " + nombre + "<br> Numero Identificación: " + NUM_DOC_IDENTIDAD + "<br> Empresa: " + filaContrato["RAZ_SOCIAL"].ToString() + "<br>Cargo: " + filaContrato["NOM_OCUPACION"].ToString();
                    configurarInfoAdicionalModulo(true, Datos_persona);

                    cargar_menu_botones_modulos_internos(false);

                    requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    DataTable tablaReq = _req.ObtenerComRequerimientoPorIdRequerimiento(ID_REQUERIMIENTO);
                    DataRow filaReq = tablaReq.Rows[0];

                    HiddenField_ID_PERFIL.Value = filaReq["REGISTRO_PERFIL"].ToString().Trim();

                    TextBox_Apellidos.Text = filaContrato["APELLIDOS"].ToString();
                    TextBox_Nombres.Text = filaContrato["NOMBRES"].ToString();
                    TextBox_doc_identidad.Text = filaContrato["TIP_DOC_IDENTIDAD"].ToString() + " " + filaContrato["NUM_DOC_IDENTIDAD"].ToString();

                    DateTime fechaInicio;

                    try
                    {
                        fechaInicio = Convert.ToDateTime(filaContrato["F_ING_C"]);
                    }
                    catch
                    {
                        fechaInicio = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                    }

                    TextBox_fecha_inicio.Text = fechaInicio.ToShortDateString();
                    RangeValidator_TextBox_fecha_inicio.MinimumValue = DateTime.Now.ToShortDateString();
                    RangeValidator_TextBox_fecha_inicio.MaximumValue = DateTime.Now.AddDays(30).ToShortDateString();

                    TextBox_fecha_inicio.Enabled = true;

                    TextBox_Salario.Text = Convert.ToDecimal(filaContrato["SUELDO_C"]).ToString();
                    HiddenField_SUELDO.Value = filaContrato["SUELDO_C"].ToString();
                    TextBox_empresa.Text = filaContrato["RAZ_SOCIAL"].ToString();
                    TextBox_Cargo.Text = filaContrato["ID_Y_NOMBRE_CARGO"].ToString().Trim();

                    cargar_DropDownList_Clase_contrato();
                    cargar_DropDownList_tipo_Contrato();

                    cargar_DropDownList_FORMA_IMPRESION_CONTRATO(String.Empty);
                    DropDownList_FORMA_IMPRESION_CONTRATO.Enabled = false;
                    CheckBox_CON_CARNET_APARTE.Enabled = false;
                    CheckBox_CON_CARNET_APARTE.Checked = false;

                    cargar_DropDownList_Salario_integral();
                    cargar_DropDownList_SALARIO();

                    cargar_DropDownList_PERIODO_PAGO();

                    IniciarSeleccionDeUbicacion();

                    configurarBotonesDeAccion(false, true, true, false);
                }
                else
                {
                    DataRow filaContrato = tablaContratos.Rows[0];
                    HiddenField_ID_CONTRATO.Value += filaContrato["REGISTRO"].ToString();
                    HiddenField_persona.Value += "," + filaContrato["REGISTRO"].ToString() + ", " + filaContrato["ID_EMPLEADO"].ToString();
                    cargar_menu_botones_modulos_internos(false);

                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El empleado ya tiene contrato activo. Para realizar modificaciones por favor utlice el modulo de auditoría de contratos.", Proceso.Advertencia);

                    Panel_Informacion_Contrato.Visible = false;
                }
            }
        }
    }
    public byte[] GenerarPDFAperturaBancoBancolombia(String CIUDAD, 
        DateTime FECHA_APERTURA,
        String NOMBRE_BANCO,
        String NUM_CONVENIO,
        String CUENTA_SERTEMPO,
        String NOMBRE_COMPLETO_EMPLEADO,
        String NUMERO_IDENTIFICACION_EMPLEADO,
        String CARGO_EMPLEADO,
        Decimal ID_REQUERIMIENTO,
        String EMPRESA_USUARIA,
        String NOMBRE_EMPRESA,

        String NOMBRE_JEFE)
    {
        String SUELDO_BASICO;
        String html_encabezado = "<html>";
        html_encabezado += "<head>";
        html_encabezado += "</head>";
        html_encabezado += "<body>";

        String html_pie = "</body>";
        html_pie += "</html>";

        //obtenermos de la requisicion el salario
        //cargo,
        //tipo contrato,
        //y no me acuerdo que mas.
        requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaReq = _req.ObtenerComRequerimientoPorIdRequerimiento(ID_REQUERIMIENTO);
        DataRow filaReq = tablaReq.Rows[0];

        try
        {
            SUELDO_BASICO = Convert.ToDecimal(filaReq["SALARIO"]).ToString("C");
        }
        catch
        {
            SUELDO_BASICO = "Desconocido.";
        }

        ////variables obtenidas de la session
        //String EMPRESA;
        //String NIT_EMPRESA;
        //if (Session["idEmpresa"].ToString() == "1")
        //{
        //    EMPRESA = tabla.VAR_NOMBRE_SERTEMPO;
        //    NIT_EMPRESA = tabla.VAR_NIT_SERTEMPO;
        //}
        //else
        //{
        //    EMPRESA = tabla.VAR_NOMBRE_EYS;
        //    NIT_EMPRESA = tabla.VAR_NIT_EYS;
        //}

        //En esta variable cargamos el documento plantilla
        StreamReader archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\apertura_cuenta_bancolombia.htm"));

        String html_formato_apertura = html_encabezado + archivo_original.ReadToEnd();

        archivo_original.Dispose();
        archivo_original.Close();

        html_formato_apertura = html_formato_apertura.Replace("[CIUDAD]", CIUDAD);
        html_formato_apertura = html_formato_apertura.Replace("[FECHA_APERTURA]", FECHA_APERTURA.ToLongDateString());
        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_BANCO]", NOMBRE_BANCO);
        html_formato_apertura = html_formato_apertura.Replace("[NUM_CONVENIO]", NUM_CONVENIO);
        html_formato_apertura = html_formato_apertura.Replace("[CUENTA_SERTEMPO]", CUENTA_SERTEMPO);
        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_COMPLETO_EMPLEADO]", NOMBRE_COMPLETO_EMPLEADO);
        html_formato_apertura = html_formato_apertura.Replace("[NUMERO_IDENTIFICACION_EMPLEADO]", NUMERO_IDENTIFICACION_EMPLEADO);
        html_formato_apertura = html_formato_apertura.Replace("[CARGO_EMPLEADO]", CARGO_EMPLEADO);
        html_formato_apertura = html_formato_apertura.Replace("[SUELDO_BASICO]", SUELDO_BASICO);
        html_formato_apertura = html_formato_apertura.Replace("[EMPRESA_USUARIA]", EMPRESA_USUARIA);
        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_JEFE]", NOMBRE_JEFE);

        html_formato_apertura += html_pie;

        //creamos un configuramos el documento de pdf
        //(tamaño de la hoja,margen izq, margen der, margin arriba margen abajo)
        iTextSharp.text.Document document = new iTextSharp.text.Document(new Rectangle(595, 842), 65, 65, 160, 45);

        using (MemoryStream streamArchivo = new MemoryStream())
        {
            iTextSharp.text.pdf.PdfWriter writer = PdfWriter.GetInstance(document, streamArchivo);

            // Our custom Header and Footer is done using Event Handler
            pdfEvents PageEventHandler = new pdfEvents();
            writer.PageEvent = PageEventHandler;

            // Define the page header
            // Define the page header
            if (Session["idEmpresa"].ToString() == "1")
            {
                PageEventHandler.dirImagenHeader = Server.MapPath("~/imagenes/reportes/logo_sertempo.png");
            }
            else
            {
                PageEventHandler.dirImagenHeader = Server.MapPath("~/imagenes/reportes/logo_eficiencia.png");
            }

            PageEventHandler.fechaImpresion = DateTime.Now;
            PageEventHandler.tipoDocumento = "apertura_cuenta";

            document.Open();

            //capturamos el archivo temporal del response
            String tempFile = Path.GetTempFileName();

            //y lo llenamos con el html de la plantilla
            using (StreamWriter tempwriter = new StreamWriter(tempFile, false))
            {
                tempwriter.Write(html_formato_apertura);
            }

            //leeemos el archivo temporal y lo colocamos en el documento de pdf
            List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StreamReader(tempFile), new StyleSheet());

            foreach (IElement element in htmlarraylist)
            {
                if (element.Chunks.Count > 0)
                {
                    if (element.Chunks[0].Content == "linea para paginacion de pdf")
                    {
                        document.NewPage();
                    }
                    else
                    {
                        document.Add(element);
                    }
                }
                else
                {
                    document.Add(element);
                }
            }

            //limpiamos todo
            document.Close();

            writer.Close();

            return streamArchivo.ToArray();
        }
    }
    private void cargar_GridView_HOJA_DE_TRABAJO()
    {
        GridView_HOJA_DE_TRABAJO.PageIndex = Convert.ToInt32(HiddenField_PAGINA_GRID.Value);

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

        DataTable tablaRequisicionesHojaTrabajoOriginal = new DataTable();

        if (HiddenField_TIPO_BUSQUEDA_ACTUAL.Value == "SIN_FILTRO")
        {
            tablaRequisicionesHojaTrabajoOriginal = _requisicion.ObtenerTablaRequerimientosUsuario();
        }
        else
        {
            if (HiddenField_FILTRO_DROP.Value == "ID_REGIONAL")
            {
                tablaRequisicionesHojaTrabajoOriginal = _requisicion.ObtenerComRequerimientoPorUsuLogFiltroRegional(HiddenField_FILTRO_DATO.Value);
            }
            else
            {
                if (HiddenField_FILTRO_DROP.Value == "ID_CIUDAD")
                {
                    tablaRequisicionesHojaTrabajoOriginal = _requisicion.ObtenerComRequerimientoPorUsuLogFiltroCiudad(HiddenField_FILTRO_DATO.Value);
                }
                else
                {
                    if (HiddenField_FILTRO_DROP.Value == "ID_CLIENTE")
                    {
                        tablaRequisicionesHojaTrabajoOriginal = _requisicion.ObtenerComRequerimientoPorUsuLogFiltroCliente(HiddenField_FILTRO_DATO.Value);
                    }
                    else
                    {
                        if (HiddenField_FILTRO_DROP.Value == "ID_REQUERIMIENTO")
                        {
                            tablaRequisicionesHojaTrabajoOriginal = _requisicion.ObtenerComRequerimientoPorUsuLogFiltroREQ(HiddenField_FILTRO_DATO.Value);
                        }
                    }
                }
            }
        }

        tablaRequisicionesHojaTrabajoOriginal.AcceptChanges();

        DataRow filaTablaRequisicionesCreada = tablaRequisicionesHojaTrabajoOriginal.NewRow();

        filaTablaRequisicionesCreada["NUMERACION"] = DBNull.Value;
        filaTablaRequisicionesCreada["ID_REQUERIMIENTO"] = DBNull.Value;
        filaTablaRequisicionesCreada["COD_EMPRESA"] = DBNull.Value;
        filaTablaRequisicionesCreada["RAZ_SOCIAL"] = DBNull.Value;
        filaTablaRequisicionesCreada["TIPO_REQ"] = DBNull.Value;
        filaTablaRequisicionesCreada["FECHA_REQUERIDA"] = DBNull.Value;
        filaTablaRequisicionesCreada["COD_OCUPACION"] = DBNull.Value;
        filaTablaRequisicionesCreada["NOM_OCUPACION"] = DBNull.Value;
        filaTablaRequisicionesCreada["CANTIDAD"] = tablaRequisicionesHojaTrabajoOriginal.Compute("SUM(CANTIDAD)", null);
        filaTablaRequisicionesCreada["ENVIADOS"] = tablaRequisicionesHojaTrabajoOriginal.Compute("SUM(ENVIADOS)", null);
        filaTablaRequisicionesCreada["CONTRATAR"] = tablaRequisicionesHojaTrabajoOriginal.Compute("SUM(CONTRATAR)", null);
        filaTablaRequisicionesCreada["FALTAN"] = tablaRequisicionesHojaTrabajoOriginal.Compute("SUM(FALTAN)", null);
        filaTablaRequisicionesCreada["ALERTA"] = "NINGUNA";
        filaTablaRequisicionesCreada["FECHA_R"] = DBNull.Value;
        filaTablaRequisicionesCreada["ESTADO"] = DBNull.Value;
        filaTablaRequisicionesCreada["CUMPLIDO"] = DBNull.Value;
        filaTablaRequisicionesCreada["CANCELADO"] = DBNull.Value;
        filaTablaRequisicionesCreada["USU_CRE"] = DBNull.Value;

        tablaRequisicionesHojaTrabajoOriginal.Rows.Add(filaTablaRequisicionesCreada);

        tablaRequisicionesHojaTrabajoOriginal.AcceptChanges();

        GridView_HOJA_DE_TRABAJO.DataSource = tablaRequisicionesHojaTrabajoOriginal;
        GridView_HOJA_DE_TRABAJO.DataBind();

        DataRow filaParaColocarColor;
        int contadorAlertasBajas = 0;
        int contadorAlertasMedias = 0;
        int contadorAlertasAltas = 0;
        int contadorAlertasNinguna = 0;

        for (int i = 0; i < tablaRequisicionesHojaTrabajoOriginal.Rows.Count; i++)
        {

            filaParaColocarColor = tablaRequisicionesHojaTrabajoOriginal.Rows[i];

            if (filaParaColocarColor["ALERTA"].ToString().Trim() == "ALTA")
            {
                GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].BackColor = colorNo;
                contadorAlertasAltas += 1;
            }
            else
            {
                if (filaParaColocarColor["ALERTA"].ToString().Trim() == "MEDIA")
                {
                    GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].BackColor = colorMedio;
                    contadorAlertasMedias += 1;
                }
                else
                {
                    if (filaParaColocarColor["ALERTA"].ToString().Trim() == "BAJA")
                    {
                        GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].BackColor = colorSi;
                        contadorAlertasBajas += 1;
                    }
                    else
                    {
                        GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].BackColor = System.Drawing.Color.Gray;
                        contadorAlertasNinguna += 1;
                    }
                }
            }
        }
        for (int j = 0; j < GridView_HOJA_DE_TRABAJO.Rows.Count; j++)
        {
            GridViewRow filaGrilla = GridView_HOJA_DE_TRABAJO.Rows[j];
            String TXT_SI_NO = filaGrilla.Cells[16].Text;

            if (TXT_SI_NO != "&nbsp;")
            {
                GridView_HOJA_DE_TRABAJO.Rows[j].Cells[17].Enabled = false;
                GridView_HOJA_DE_TRABAJO.Rows[j].Cells[18].Enabled = true;
            }
        }

        Label_ALERTA_ALTA.Text = contadorAlertasAltas.ToString();
        Label_ALERTA_MEDIA.Text = contadorAlertasMedias.ToString();
        Label_ALERTA_BAJA.Text = contadorAlertasBajas.ToString();
    }
    private void Cargar_GridView_Examenes_Configurados_desde_tabla(DataTable tablaExamenes)
    {
        ObtenerVariablesUbicacionGlobales();

        GridView_Examenes_Configurados.DataSource = tablaExamenes;
        GridView_Examenes_Configurados.DataBind();

        registroContrato _contrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablainformacionCiudadCCYSUbCC = _contrato.ObtenerInformacionCompletaIdCiudadIdCentroCIdSubC(GLO_ID_CIUDAD, GLO_ID_CENTRO_C, GLO_ID_SUB_C);

        String ID_CIUDAD = null;

        if (tablainformacionCiudadCCYSUbCC.Rows.Count <= 0)
        {

            Decimal ID_REQUISICION = Convert.ToDecimal(HiddenField_ID_REQUERIMIENTO.Value);

            requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablareq = _req.ObtenerComRequerimientoPorIdRequerimiento(ID_REQUISICION);
            DataRow filareq = tablareq.Rows[0];

            ID_CIUDAD = filareq["CIUDAD_REQ"].ToString().Trim();

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La ciudad de los laboratorios clínicos se traerá desde la requisición.", Proceso.Correcto);
        }
        else
        {
            DataRow filaInfoCiudadCentroYSubC = tablainformacionCiudadCCYSUbCC.Rows[0];

            ID_CIUDAD = filaInfoCiudadCentroYSubC["ID_CIUDAD"].ToString();
        }

        for (int i = 0; i < GridView_Examenes_Configurados.Rows.Count; i++)
        {
            DataRow filaTabla = tablaExamenes.Rows[i];

            Decimal ID_PRODUCTO = Convert.ToDecimal(filaTabla["ID_PRODUCTO"]);

            DropDownList dropProveedores = GridView_Examenes_Configurados.Rows[i].FindControl("DropDownList_Proveedor") as DropDownList;
            Cargar_DropDownList_Proveedor(ID_PRODUCTO, ID_CIUDAD, dropProveedores);
        }
    }
    private void cargarDatosEfectiviadOportunidadSegunReq(Decimal ID_REQUERIMIENTO)
    {
        requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaReq = _req.ObtenerComRequerimientoPorIdRequerimiento(ID_REQUERIMIENTO);

        if (tablaReq.Rows.Count <= 0)
        {
            if (_req.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _req.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información de la requisición seleccionada. no se pudo determinar el estado actual de OPORTUNIDAD Y EFECTIVIDAD.", Proceso.Advertencia);
            }

            CheckBox_ReqEfectiva.Checked = false;
            CheckBox_ReqOportuna.Checked = false;
        }
        else
        {
            DataRow filaReq = tablaReq.Rows[0];

            if (filaReq["CUMPLE_OPORTUNO"].ToString().Trim().ToUpper() == "S")
            {
                CheckBox_ReqOportuna.Checked = true;
            }
            else
            {
                CheckBox_ReqOportuna.Checked = false;
            }

            if (filaReq["CUMPLE_EFECTIVA"].ToString().Trim().ToUpper() == "S")
            {
                CheckBox_ReqEfectiva.Checked = true;
            }
            else
            {
                CheckBox_ReqEfectiva.Checked = false;
            }
        }
    }
    private void Buscar()
    {
        Ocultar(Acciones.Inicio);
        Desactivar(Acciones.Inicio);
        Mostrar(Acciones.Inicio);

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

        String CUMPLIDO = HiddenField_CUMPLIDO.Value;
        String CANCELADO = HiddenField_CANCELADO.Value;

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

        DataTable tablaResultadosBusqueda = new DataTable();

        if (campo == "RAZ_SOCIAL")
        {
            tablaResultadosBusqueda = _requisicion.ObtenerComRequerimientoPorRazSocial(datosCapturados, CANCELADO, CUMPLIDO);
        }
        else
        {
            if (DropDownList_BUSCAR.SelectedValue == "COD_EMPRESA")
            {
                tablaResultadosBusqueda = _requisicion.ObtenerComRequerimientoPorCodEmpresa(datosCapturados, CANCELADO, CUMPLIDO);
            }
            else
            {
                if (DropDownList_BUSCAR.SelectedValue == "ID_REQUERIMIENTO")
                {
                    tablaResultadosBusqueda = _requisicion.ObtenerComRequerimientoPorIdRequerimiento(Convert.ToDecimal(datosCapturados));
                }
            }
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_requisicion.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _requisicion.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_GRID_RESULTADOS.Visible = false;
        }
        else
        {
            Panel_GRID_RESULTADOS.Visible = true;

            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
    protected void Button_SEGUIMIENTO_Click(object sender, EventArgs e)
    {
        TextBox_FECHA_SEGUIMIENTO.Text = DateTime.Now.ToShortDateString();
        TextBox_FECHA_SEGUIMIENTO.Enabled = false;
        DropDownList_ACCION_SEGUIMIENTO.SelectedIndex = 0;
        TextBox_OBS_SEGUIMIENTO.Text = "";
        configurarPaneles(false, false, false, false, true, true);

        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"].ToString());
        int ID_REQUERIMIENTO = Convert.ToInt32(QueryStringSeguro["requerimiento"]);

        requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaConRegSeg = _requisicion.ObtenerConRegSegPorIdRequerimiento(ID_REQUERIMIENTO);
        GridView_SEGUIMIENTO.DataSource = tablaConRegSeg;
        GridView_SEGUIMIENTO.DataBind();

        TextBox_FECHA_SEGUIMIENTO.Text = DateTime.Now.ToShortDateString();
        DropDownList_ACCION_SEGUIMIENTO.SelectedIndex = 0;
        TextBox_OBS_SEGUIMIENTO.Text = "";

        Button_ENVIAR_CANDIDATOS.Visible = true;
    }
    protected void Button_HISTORIAL_Click(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"].ToString());
        Decimal ID_REQUERIMIENTO = Convert.ToDecimal(QueryStringSeguro["requerimiento"]);

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

        if (tablaHistorial.Rows.Count <= 0)
        {
            configurarMensajes(true, System.Drawing.Color.Orange);
            Label_MENSAJE.Text = "No se encontró historial para esta requisición.";
            configurarPaneles(false, false, false, false, false, true);
        }
        else
        {
            GridView_HISTORIAL.DataSource = tablaHistorial;
            GridView_HISTORIAL.DataBind();
            configurarPaneles(false, false, false, true, false, true);
        }

        Button_ENVIAR_CANDIDATOS.Visible = true;
    }
    protected void Button_GUARDAR_Click(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"].ToString());

        Decimal ID_REQUERIMIENTO = Convert.ToDecimal(QueryStringSeguro["requerimiento"]);

        String SI_COPPIAR_REQ = QueryStringSeguro["copia"];
        if (String.IsNullOrEmpty(SI_COPPIAR_REQ) == true)
        {
            SI_COPPIAR_REQ = null;
        }
        else
        {
            SI_COPPIAR_REQ = "si";
        }

        String accion = QueryStringSeguro["accion"].ToString();

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

        String TIPO_REQ = DropDownList_TIP_REQ.SelectedValue;
        DateTime FECHA_REQUERIDA = Convert.ToDateTime(TextBox_FECHA_REQUERIDA.Text);

        DateTime FECHA_REFERENCIA_SISTEMA = new DateTime();
        if (String.IsNullOrEmpty(TextBox_FechaReferenciaSistema.Text) == false)
        {
            FECHA_REFERENCIA_SISTEMA = Convert.ToDateTime(TextBox_FechaReferenciaSistema.Text);
        }

        int ID_EMPRESA = Convert.ToInt32(DropDownList_ID_EMPRESA.SelectedValue);
        int CANTIDAD = Convert.ToInt32(TextBox_CANTIDAD.Text);
        Decimal SALARIO = Convert.ToDecimal(TextBox_SALARIO.Text);

        String HORARIO = DropDownList_HORARIO.SelectedValue;

        String CIUDAD_CONTRATO;

        cliente _cliente = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoEmpresaSeleccionada = _cliente.ObtenerEmpresaConIdEmpresa(Convert.ToDecimal(ID_EMPRESA));
        if (tablaInfoEmpresaSeleccionada.Rows.Count <= 0)
        {
            CIUDAD_CONTRATO = "";
        }
        else
        {
            DataRow filaTablaInfoEmpresaSeleccionada = tablaInfoEmpresaSeleccionada.Rows[0];
            CIUDAD_CONTRATO = filaTablaInfoEmpresaSeleccionada["CIU_EMP"].ToString();
        }

        String DURACION = DropDownList_DURACION.SelectedValue;

        String OBS_REQUERIMIENTO = TextBox_OBS_REQUERIMIENTO.Text;
        String CIUDAD_REQ = DropDownList_CIUDAD_REQ.SelectedValue;
        Decimal REGISTRO_PERFIL = Convert.ToDecimal(DropDownList_PERFILES.SelectedValue);

        if(HiddenField_ID_SERVICIO_RESPECTIVO.Value == "")
        {
            configurarMensajes(true, System.Drawing.Color.Orange);
            Label_MENSAJE.Text = "Para poder guardar la requisición, primero debe seleccionar el Servicio Respectivo. (En la sección DATOS DE CONTRATO DE SERVICIO / SERVICIO RESPECTIVO).";
        }
        else
        {
            Decimal ID_SERVICIO_RESPECTIVO = Convert.ToDecimal(HiddenField_ID_SERVICIO_RESPECTIVO.Value);

            Decimal REGISTRO_ENVIO_CANDIDATOS = Convert.ToDecimal(DropDownList_ENVIO_CANDIDATOS.SelectedValue);

            Decimal REGISTRO_REQUISICION;
            QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());
            QueryStringSeguro["img_area"] = "seleccion";
            QueryStringSeguro["nombre_area"] = "RECLUTAMIENTO, SELECCIÓN Y REQUISICIONES";
            QueryStringSeguro["nombre_modulo"] = "REGISTRO, ATENCIÓN DE REQUISICIONES";

            if (accion == "nuevo")
            {
                REGISTRO_REQUISICION = _requisicion.AdicionarConRequerimientos(TIPO_REQ, FECHA_REQUERIDA, ID_EMPRESA, CANTIDAD, SALARIO, HORARIO, CIUDAD_CONTRATO, DURACION, OBS_REQUERIMIENTO, CIUDAD_REQ, REGISTRO_PERFIL, ID_SERVICIO_RESPECTIVO, REGISTRO_ENVIO_CANDIDATOS, FECHA_REFERENCIA_SISTEMA);

                if (_requisicion.MensajeError == null)
                {
                    EnviarCorreoAColaboradoresInteresados(REGISTRO_REQUISICION);

                    QueryStringSeguro["accion"] = "cargarNuevo";
                    QueryStringSeguro["requerimiento"] = REGISTRO_REQUISICION.ToString();

                    Response.Redirect("~/seleccion/registroAtencionRequisiciones.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                }
                else
                {
                    configurarMensajes(true, System.Drawing.Color.Red);
                    Label_MENSAJE.Text = _cliente.MensajeError;
                }
            }
            else
            {
                if (accion == "copiarReq")
                {
                    REGISTRO_REQUISICION = _requisicion.AdicionarConRequerimientos(TIPO_REQ, FECHA_REQUERIDA, ID_EMPRESA, CANTIDAD, SALARIO, HORARIO, CIUDAD_CONTRATO, DURACION, OBS_REQUERIMIENTO, CIUDAD_REQ, REGISTRO_PERFIL, ID_SERVICIO_RESPECTIVO, REGISTRO_ENVIO_CANDIDATOS, FECHA_REFERENCIA_SISTEMA);

                    if (_requisicion.MensajeError == null)
                    {
                        QueryStringSeguro["accion"] = "cargarNuevo";
                        QueryStringSeguro["requerimiento"] = REGISTRO_REQUISICION.ToString();

                        Response.Redirect("~/seleccion/registroAtencionRequisiciones.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                    }
                    else
                    {
                        configurarMensajes(true, System.Drawing.Color.Red);
                        Label_MENSAJE.Text = _cliente.MensajeError;
                    }
                }
                else
                {
                    if (accion == "modificar")
                    {
                        DataTable tablaRequerimientoActual = _requisicion.ObtenerComRequerimientoPorIdRequerimiento(ID_REQUERIMIENTO);

                        Boolean verificador_fecha = true;

                        if (verificador_fecha == true)
                        {
                            if (tablaRequerimientoActual.Rows.Count <= 0)
                            {
                                configurarMensajes(true, System.Drawing.Color.Orange);
                                Label_MENSAJE.Text = "No se encontró la información previa del requerimineto que se desea actualizar.";
                            }
                            else
                            {
                                DataRow filaTablaRequerimientoActual = tablaRequerimientoActual.Rows[0];

                                Boolean verificador = true;
                                verificador = _requisicion.ActualizarConRequerimeintos(Convert.ToInt32(ID_REQUERIMIENTO), TIPO_REQ, FECHA_REQUERIDA, CANTIDAD, SALARIO, HORARIO, DURACION, OBS_REQUERIMIENTO, CIUDAD_REQ, REGISTRO_PERFIL, ID_SERVICIO_RESPECTIVO, REGISTRO_ENVIO_CANDIDATOS, FECHA_REFERENCIA_SISTEMA);

                                if (verificador == false)
                                {
                                    configurarMensajes(true, System.Drawing.Color.Red);
                                    Label_MENSAJE.Text = _requisicion.MensajeError;
                                }
                                else
                                {
                                    QueryStringSeguro["accion"] = "cargarModificado";
                                    QueryStringSeguro["requerimiento"] = ID_REQUERIMIENTO.ToString();

                                    Response.Redirect("~/seleccion/registroAtencionRequisiciones.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    protected void Button_ENVIAR_CANDIDATOS_SELECCIONADOS_Click(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"].ToString());
        int ID_REQUERIMIENTO = Convert.ToInt32(QueryStringSeguro["requerimiento"]);

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

        Int32 candidatosAEnviar = 0;
        for (int i = 0; i < GridView_ENVIAR_A_CLIENTE.Rows.Count; i++)
        {
            GridViewRow filaGrid = GridView_ENVIAR_A_CLIENTE.Rows[0];
            CheckBox check = filaGrid.FindControl("CheckBox_CANDIDATOS_SELECCIONADOS_ENVIAR") as CheckBox;

            if (check.Checked == true)
            {
                candidatosAEnviar += 1;
            }
        }

        radicacionHojasDeVida _solicitud = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        Decimal REGISTRO_RESULTADO = 0;

        int ID_SOLICITUD;
        int ID_EMPRESA;

        int contador_enviados = 0;
        int contador_errores = 0;

        DateTime FECHA_R = DateTime.Now;

        for (int i = 0; i < GridView_ENVIAR_A_CLIENTE.Rows.Count; i++)
        {
            GridViewRow filaGrid = GridView_ENVIAR_A_CLIENTE.Rows[i];
            CheckBox check = filaGrid.FindControl("CheckBox_CANDIDATOS_SELECCIONADOS_ENVIAR") as CheckBox;

            ID_SOLICITUD = Convert.ToInt32(GridView_ENVIAR_A_CLIENTE.DataKeys[i].Values["ID_SOLICITUD"]);

            if (check.Checked == true)
            {
                ID_EMPRESA = Convert.ToInt32(DropDownList_ID_EMPRESA.SelectedValue);

                DataTable temporalidad = _solicitud.ObtenerTemporalidad(ID_EMPRESA, ID_SOLICITUD);
                if (temporalidad.Rows.Count <= 0)
                {
                    REGISTRO_RESULTADO = _requisicion.AdicionarConAspEnviadosCliente(ID_SOLICITUD, ID_EMPRESA, ID_REQUERIMIENTO, FECHA_R);
                    if (REGISTRO_RESULTADO != 0)
                    {
                        contador_enviados += 1;
                    }
                    else
                    {
                        contador_errores += 1;
                    }
                }
                else
                {
                    DataRow filaTemporalidad = temporalidad.Rows[0];
                    if (Convert.ToInt32(filaTemporalidad["tiempo"].ToString()) < 96718)
                    {
                        REGISTRO_RESULTADO = _requisicion.AdicionarConAspEnviadosCliente(ID_SOLICITUD, ID_EMPRESA, ID_REQUERIMIENTO, FECHA_R);
                        if (REGISTRO_RESULTADO != 0)
                        {
                            contador_enviados += 1;
                        }
                        else
                        {
                            contador_errores += 1;
                        }
                    }
                    else
                    {
                        Label_MENSAJE.Text += "ADVERTENCIA: El candidato" + ID_SOLICITUD.ToString() + " no puede ser enviado a contratar por que ya cumplio el tiempo maximo de contratación con esta empresa" + ID_EMPRESA;
                    }
                }
            }
        }

        if (contador_enviados <= 0)
        {
            if (contador_errores > 0)
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text += "Ocurrieron " + contador_errores.ToString() + " errores al enviar candidatos.";
            }
            else
            {
                configurarMensajes(true, System.Drawing.Color.Orange);
                Label_MENSAJE.Text += "No se seleccionaron candidatos para enviar.";
            }
        }
        else
        {
            configurarMensajes(true, System.Drawing.Color.Green);
            Label_MENSAJE.Text = "Se enviaron a cliente los candidatos seleccionados correctamente.";

            if (contador_errores > 0)
            {
                Label_MENSAJE.Text += " Pero ocurrieron " + contador_errores.ToString() + " errores.";
            }
            configurarPaneles(false, false, false, false, false, true);
        }

        Button_ENVIAR_CANDIDATOS.Visible = true;
    }
    private Int32 ObtenerNumGestionReqPorContratarContratados(Decimal ID_REQUERIMIENTO)
    {
        requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Int32 numero = 0;
        String resultado = null;

        DataTable tablaEstadoAtencionReq = _requisicion.ObtenerEstadoGestionReqPorContratarContratados(Convert.ToDecimal(ID_REQUERIMIENTO));

        if (tablaEstadoAtencionReq.Rows.Count <= 0)
        {
            if (_requisicion.MensajeError != null)
            {
                resultado = "ERROR: " + _requisicion.MensajeError;
            }
            else
            {
                resultado = "ADVERTENCIA: " + "no se encontró información de genstión sobre la requisición seleccionada.";
            }
            numero = 0;
        }
        else
        {
            DataRow filaGestion = tablaEstadoAtencionReq.Rows[0];

            numero = Convert.ToInt32(filaGestion["numGestion"]);
            resultado = null;
        }

        return numero;
    }
    private void LlenarGridViewEnvioCorreos(Decimal ID_EMPRESA, String ID_CIUDAD)
    {
        requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaEnvios = _req.ObtenerEnvioEmailPorEmpresaCiudad(ID_EMPRESA, ID_CIUDAD);

        if (tablaEnvios.Rows.Count <= 0)
        {
            Panel_InformacionEnvioEmail.Visible = true;
            Panel_EnvioEmailIndeterminado.Visible = true;
            Label_EnvioEmailIndeterminado.Text = _mensaje_SinEnvioEmail;
            GridView_EnvioCorreos.DataSource = null;
        }
        else
        {
            Panel_InformacionEnvioEmail.Visible = true;
            Panel_EnvioEmailIndeterminado.Visible = false;
            GridView_EnvioCorreos.DataSource = tablaEnvios;
            GridView_EnvioCorreos.DataBind();
        }
    }
    private void Cargar(Decimal ID_REQUERIMIENTO, Decimal ID_SOLICITUD, Decimal ID_EMPRESA, Decimal ID_OCUPACION)
    {
        HiddenField_ID_REQUERIMIENTO.Value = ID_REQUERIMIENTO.ToString();
        HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString();
        HiddenField_ID_EMPRESA.Value = ID_EMPRESA.ToString();
        HiddenField_ID_OCUPACION.Value = ID_OCUPACION.ToString();

        radicacionHojasDeVida _solIngreso = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        _solIngreso.ActualizarEstadoProcesoRegSolicitudesIngreso(Convert.ToInt32(ID_REQUERIMIENTO), Convert.ToInt32(ID_SOLICITUD), "EN AFILIACIONES", Session["USU_LOG"].ToString());

        requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable _tablaReq = _requisicion.ObtenerComRequerimientoPorIdRequerimiento(ID_REQUERIMIENTO);
        DataRow _filaReq = _tablaReq.Rows[0];
        String CIUDAD_REQ = _filaReq["CIUDAD_REQ"].ToString().Trim();
        HiddenField_CIUDAD_REQ.Value = CIUDAD_REQ;

        perfil _PERFIL = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPerfil = _PERFIL.ObtenerPorRegistro(Convert.ToInt32(_filaReq["REGISTRO_PERFIL"]));
        DataRow filaPerfil = tablaPerfil.Rows[0];
        Decimal ID_PERFIL = Convert.ToDecimal(_filaReq["REGISTRO_PERFIL"]);
        ID_OCUPACION = Convert.ToDecimal(filaPerfil["ID_OCUPACION"]);
        if (!string.IsNullOrEmpty(filaPerfil["CODIGO"].ToString())) Label_RIESGO.Text = filaPerfil["CODIGO"].ToString();
        HiddenField_ID_PERFIL.Value = ID_PERFIL.ToString();
        HiddenField_ID_OCUPACION.Value = ID_OCUPACION.ToString();

        DataTable tablasol = _solIngreso.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
        DataRow filaSolIngreso = tablasol.Rows[0];
        String NOMBRE_TRABAJADOR = filaSolIngreso["NOMBRES"].ToString().Trim() + " " + filaSolIngreso["APELLIDOS"].ToString().Trim();
        String NUM_DOC_IDENTIDAD_COMPLETO = filaSolIngreso["TIP_DOC_IDENTIDAD"].ToString().Trim() + " " + filaSolIngreso["NUM_DOC_IDENTIDAD"].ToString().Trim();
        String NUM_DOC_IDENTIDAD = filaSolIngreso["NUM_DOC_IDENTIDAD"].ToString().Trim();
        HiddenField_NUM_DOC_IDENTIDAD.Value = NUM_DOC_IDENTIDAD;

        cliente _empresa = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaEmpresa = _empresa.ObtenerEmpresaConIdEmpresa(ID_EMPRESA);
        DataRow filaEmpresa = tablaEmpresa.Rows[0];
        String RAZ_SOCIAL = filaEmpresa["RAZ_SOCIAL"].ToString().Trim();
        HiddenField_ID_EMPRESA.Value = filaEmpresa["ID_EMPRESA"].ToString().Trim();

        cargo _cargo = new cargo(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaOcupacion = _cargo.ObtenerOcupacionPorIdOcupacion(ID_OCUPACION);
        DataRow filaOcupacion = tablaOcupacion.Rows[0];
        String CARGO = filaOcupacion["NOM_OCUPACION"].ToString().Trim();

        HiddenField_persona.Value = ID_SOLICITUD.ToString() + "," + ID_REQUERIMIENTO.ToString() + "," + ID_OCUPACION.ToString() + "," + ID_EMPRESA.ToString() + "," + NUM_DOC_IDENTIDAD.Trim();

        cargarDatosTrabajador(NOMBRE_TRABAJADOR, NUM_DOC_IDENTIDAD_COMPLETO, RAZ_SOCIAL, CARGO, ID_OCUPACION.ToString());

        ConRegContratoTemporal _contratoTemporal = new ConRegContratoTemporal(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCOntratoTemporal = _contratoTemporal.ObtenerConRegContratosTemporalPorIdRequerimientoIdSolicitud(ID_REQUERIMIENTO, ID_SOLICITUD);

        Panel_UbicacionTrabajador.Visible = true;

        if (tablaCOntratoTemporal.Rows.Count <= 0)
        {
            if (_contratoTemporal.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _contratoTemporal.MensajeError, Proceso.Error);
            }

            CargarSeccionUbicacionTrabajador();

            Panel_INFO_ADICIONAL_MODULO.Visible = true;
            Label_INFO_ADICIONAL_MODULO.Text = "SELECCIONE LA UBICACIÓN DONDE LABORARÁ EL TRABAJADOR, PARA PODER CONTINUAR CON LAS AFILIACIONES";
        }
        else
        {
            DataRow filaContratoTemporal = tablaCOntratoTemporal.Rows[0];
            CargarUbicacionTrabajadorSegunTemporal(filaContratoTemporal);
            Panel_INFO_ADICIONAL_MODULO.Visible = true;
            Label_INFO_ADICIONAL_MODULO.Text = "DILIGENCIAR AFILIACIONES DEL TRABAJADOR";
        }

        limpiar_DropDownList_ENTIDAD_ARP();
        limpiar_DropDownList_ENTIDAD_EPS();
        limpiar_DropDownList_ENTIDAD_Caja();
        limpiar_DropDownList(DropDownList_DepartamentoCajaC);
        limpiar_DropDownList(DropDownList_CiudadCajaC);
        limpiar_DropDownList_AFP();

        cargar_DropDownList_pensionado();

        if (HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value == "S")
        {
            Panel_ARP.Visible = true;
            Panel_EPS.Visible = true;
            Panel_CCF.Visible = true;
            Panel_AFP.Visible = true;

            cargar_DropDownList_ENTIDAD_AFP();
            cargar_DropDownList_ENTIDAD_ARP();
            cargar_DropDownList_ENTIDAD_CAJA();
            cargar_DropDownList_ENTIDAD_EPS();
        }

        cargar_GridView_AFP(ID_SOLICITUD.ToString(), ID_REQUERIMIENTO.ToString());
        cargar_GridView_ARP(ID_SOLICITUD.ToString(), ID_REQUERIMIENTO.ToString());
        cargar_GridView_CCF(ID_SOLICITUD.ToString(), ID_REQUERIMIENTO.ToString());
        cargar_GridView_EPS(ID_SOLICITUD.ToString(), ID_REQUERIMIENTO.ToString());

        TextBox_ARP_OBSERVACIONES.Text = "";
        TextBox_COMENTARIOS_AFP.Text = "";
        TextBox_COMENTARIOS_EPS.Text = "";
        TextBox_observaciones_Caja.Text = "";

        Panel_Registro_CCF.Visible = true;
        Panel_registro_EPS.Visible = true;
        Panel_registros_afp.Visible = true;
        Panel_registros_ARP.Visible = true;

        if (GridView_ARP.Rows.Count > 0)
        {
            Panel_registros_ARP.Visible = false;
        }
        if (GridView_AFP.Rows.Count > 0)
        {
            Panel_registros_afp.Visible = false;
        }
        if (GridView_CAJA.Rows.Count > 0)
        {
            Panel_Registro_CCF.Visible = false;
        }
        if (GridView_EPS.Rows.Count > 0)
        {
            Panel_registro_EPS.Visible = false;
        }
    }
    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 Buscar(Acciones accion)
    {
        String datoCapturado = HiddenField_CONTRATOS_DATO.Value;
        requisicion Requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable dataTable = new DataTable();

        if (accion.Equals(Acciones.BuscarAuditados))
        {
            Ocultar(Acciones.Inicio);
            Mostrar(Acciones.buscarContratos);
            switch (HiddenField_CONTRATOS_DROP.Value)
            {
                case "NUM_DOC_IDENTIDAD":
                    dataTable = Requisicion.ObtenerContratosPosiblesDeAuditarPorNumIdentidad(datoCapturado);
                    break;
                case "NOMBRES":
                    dataTable = Requisicion.ObtenerContratosPosiblesDeAuditarPorNombresEmpleado(datoCapturado);
                    break;
                case "APELLIDOS":
                    dataTable = Requisicion.ObtenerContratosPosiblesDeAuditarPorApellidosEmpleado(datoCapturado);
                    break;
            }

            if (dataTable.Rows.Count > 0)
            {
                Mostrar(Acciones.contratosEncontrados);
                Cargar(dataTable);
            }
            else
            {
                if (Requisicion.MensajeError == null)
                {
                    Informar(Panel_MENSAJES, Label_MENSAJE, "ADVERTENCIA: No se encontraron contratos activos para esta busqueda", Proceso.Error);
                }
                else
                {
                    Informar(Panel_MENSAJES, Label_MENSAJE, Requisicion.MensajeError, Proceso.Error);
                }
            }
        }
        else
        {
            dataTable = Requisicion.ObtenerPersonasPorAuditar(datoCapturado);
            Cargar(dataTable);
            if (!dataTable.Rows.Count.Equals(0)) colorear_filas_grilla_hoja_trabajo(dataTable);
        }
    }
    private void Cargar(Decimal ID_REQUERIMIENTO)
    {
        HiddenField_ID_REQUERIMIENTO.Value = ID_REQUERIMIENTO.ToString();

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

        if (TablaInfoRequisicion.Rows.Count <= 0)
        {
            if (_requisicion.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _requisicion.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _requisicion.MensajeError, Proceso.Advertencia);
            }
        }
        else
        {
            Ocultar(Acciones.Inicio);

            DataRow filainfoReq = TablaInfoRequisicion.Rows[0];

            if (filainfoReq["CANCELADO"].ToString().Trim() == "S")
            {
                Mostrar(Acciones.CargarReqCancelada);
                Desactivar(Acciones.Inicio);
            }
            else
            {
                if (filainfoReq["CUMPLIDO"].ToString().Trim() == "S")
                {
                    Mostrar(Acciones.CargarReqCumplida);
                    Desactivar(Acciones.Inicio);
                }
                else
                {
                    Mostrar(Acciones.CargarReqNormal);
                    Desactivar(Acciones.Inicio);
                }
            }

            cargar_informacion_control_registro(filainfoReq);

            cargar_info_datos_empresa(filainfoReq);

            cargar_fechas(filainfoReq);

            cargar_datos_envio(filainfoReq);

            cargar_datos_servicio_respectivo(filainfoReq);

            cargar_datos_perfil(filainfoReq);

            cargar_contrato_ubicacion(filainfoReq);

            TextBox_OBS_REQUERIMIENTO.Text = filainfoReq["OBS_REQUERIMIENTO"].ToString();

            if (filainfoReq["CANCELADO"].ToString().Trim() == "S")
            {
                cargar_info_req_cancelada(filainfoReq);
                cargarDatosEfectiviadOportunidadSegunReq(ID_REQUERIMIENTO);
            }
            else
            {
                if (filainfoReq["CUMPLIDO"].ToString().Trim() == "S")
                {
                    cargarDatosEfectiviadOportunidadSegunReq(ID_REQUERIMIENTO);
                    cargar_info_req_cumplida(filainfoReq);
                }
                else
                {
                    Mostrar(Acciones.CargarReqNormal);
                }
            }
        }
    }
    private void cargar_hoja_trabajo_auditoria()
    {
        requisicion _requisicion = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaInfoAuditoria = _requisicion.ObtenerPersonasPorAuditar();

        GridView_HOJA_DE_TRABAJO.DataSource = tablaInfoAuditoria;
        GridView_HOJA_DE_TRABAJO.DataBind();

        colorear_filas_grilla_hoja_trabajo(tablaInfoAuditoria);
    }
    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 cargar_GridView_HOJA_DE_TRABAJO()
    {
        Label_ALERTA_ALTA.Text = string.Empty;
        Label_ALERTA_MEDIA.Text = string.Empty;
        Label_Contrato_Vencido.Text = string.Empty;

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

        GridView_HOJA_DE_TRABAJO.DataSource = tablaRequisicionesHojaTrabajoOriginal;
        GridView_HOJA_DE_TRABAJO.DataBind();

        DataRow filaParaColocarColor;
        int contadorContratoVencido = 0;
        int contadorAlertasMedias = 0;
        int contadorAlertasAltas = 0;
        int contadorAlertasNinguna = 0;

        DateTime fechaActual = Convert.ToDateTime(DateTime.Now.ToShortDateString());
        for (int i = 0; i < tablaRequisicionesHojaTrabajoOriginal.Rows.Count; i++)
        {
            filaParaColocarColor = tablaRequisicionesHojaTrabajoOriginal.Rows[(GridView_HOJA_DE_TRABAJO.PageIndex * GridView_HOJA_DE_TRABAJO.PageSize) + i];

            if (filaParaColocarColor["ALERTA"].ToString().Trim() == "ALTA")
            {
                GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorNo;
                contadorAlertasAltas += 1;
            }
            else
            {
                if (filaParaColocarColor["ALERTA"].ToString().Trim() == "MEDIA")
                {
                    GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorMedio;
                    contadorAlertasMedias += 1;
                }
                else
                {
                    GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = System.Drawing.Color.Gray;
                    contadorAlertasNinguna += 1;
                }
            }

            if (Convert.ToDateTime(filaParaColocarColor["FECHA_VENCE"]) < fechaActual)
            {
                GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].Enabled = false;
                GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].Text = "";
                GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorVencido;
                contadorContratoVencido += 1;
            }

            if (filaParaColocarColor["ESTADO_PROCESO"].ToString().Trim() == "EN DESCARTE")
            {
                GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].Enabled = false;
                GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].Text = "";
                GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorDescarte;
                contadorContratoVencido += 1;
            }
        }

        Label_ALERTA_ALTA.Text = contadorAlertasAltas.ToString() + " Personas con plazo de contratación vencido.";
        Label_ALERTA_MEDIA.Text = contadorAlertasMedias.ToString() + " Personas en plazo de contratación.";
        Label_Contrato_Vencido.Text = contadorContratoVencido.ToString() + " Personas con objeto de contrato vencido.";
    }
    private void Buscar()
    {
        Ocultar(Acciones.Inicio);

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

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

        DataTable tablaResultadosBusqueda = new DataTable();

        if (campo == "NUM_DOC_IDENTIFICACION")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorNumDocIdentificacion(datosCapturados);
        }
        else if (campo == "NOMBRES")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorNombres(datosCapturados);
        }
        else if (campo == "APELLIDOS")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorApellidos(datosCapturados);
        }
        else if (campo == "RAZ_SOCIAL")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorEmpresa(datosCapturados);
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_requicision.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _requicision.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron resultados para a busqueda realizada.", Proceso.Error);
            }
        }
        else
        {
            Mostrar(Acciones.Buscar);
            Cargar_GridView_RESULTADOS_BUSQUEDA(tablaResultadosBusqueda);
        }
    }
    protected void Button_BUSCAR_Click(object sender, EventArgs e)
    {
        String datosCapturados = TextBox_BUSCAR.Text.ToUpper();
        String campo = DropDownList_BUSCAR.SelectedValue.ToString();

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

        DataTable tablaResultadosBusqueda = new DataTable();

        if (DropDownList_BUSCAR.SelectedValue == "NUM_DOC_IDENTIFICACION")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorNumDocIdentificacion(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "NOMBRES")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorNombres(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "APELLIDOS")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorApellidos(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "RAZ_SOCIAL")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarPorEmpresa(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "REGIONAL")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarRegional(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "CIUDAD")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasPorContratarCiudad(datosCapturados);
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_requicision.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _requicision.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_HOJA_DE_TRABAJO.Visible = false;
        }
        else
        {
            Panel_HOJA_DE_TRABAJO.Visible = true;
            GridView_HOJA_DE_TRABAJO.DataSource = tablaResultadosBusqueda;
            GridView_HOJA_DE_TRABAJO.DataBind();
            DataRow filaParaColocarColor;
            int contadorContratoVencido = 0;
            int contadorAlertasBajas = 0;
            int contadorAlertasMedias = 0;
            int contadorAlertasAltas = 0;
            int contadorAlertasNinguna = 0;
            DateTime fechaActual = Convert.ToDateTime(DateTime.Now.ToShortDateString());

            for (int i = 0; i < tablaResultadosBusqueda.Rows.Count; i++)
            {
                filaParaColocarColor = tablaResultadosBusqueda.Rows[(GridView_HOJA_DE_TRABAJO.PageIndex * GridView_HOJA_DE_TRABAJO.PageSize) + i];

                if (filaParaColocarColor["ALERTA"].ToString().Trim() == "ALTA")
                {
                    GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorNo;
                    contadorAlertasAltas += 1;
                }
                else
                {
                    if (filaParaColocarColor["ALERTA"].ToString().Trim() == "MEDIA")
                    {
                        GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorMedio;
                        contadorAlertasMedias += 1;
                    }
                    else
                    {
                        if (filaParaColocarColor["ALERTA"].ToString().Trim() == "BAJA")
                        {
                            GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorSi;
                            contadorAlertasBajas += 1;
                        }
                        else
                        {
                            GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = System.Drawing.Color.Gray;
                            contadorAlertasNinguna += 1;
                        }
                    }
                }

                if (Convert.ToDateTime(filaParaColocarColor["FECHA_VENCE"]) < fechaActual)
                {
                    GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].Enabled = false;
                    GridView_HOJA_DE_TRABAJO.Rows[i].Cells[0].Text = "";
                    GridView_HOJA_DE_TRABAJO.Rows[i].BackColor = colorVencido;
                    contadorContratoVencido += 1;
                }
            }

            Label_ALERTA_ALTA.Text = string.Empty;
            Label_ALERTA_MEDIA.Text = string.Empty;
            Label_Contrato_Vencido.Text = string.Empty;

            Label_ALERTA_ALTA.Text = contadorAlertasAltas.ToString() + " Personas con plazo de contratación vencido.";
            Label_ALERTA_MEDIA.Text = contadorAlertasMedias.ToString() + " Personas en plazo de contratación.";
            Label_Contrato_Vencido.Text = contadorContratoVencido.ToString() + " Personas con objeto de contrato vencido.";
        }
    }
    /// <summary>
    /// hecho por cesar puldio
    /// el dia 16 de abril de 2013
    /// para generar pdf de apertura de cuenta
    /// </summary>
    public byte[] GenerarPDFAperturaBancoAvvilla(String CIUDAD,
        DateTime FECHA_APERTURA,
        String NOMBRE_BANCO,
        String NOMBRE_EMPLEADO,
        String NUMERO_IDENTIFICACION_EMPLEADO,
        String NOMBRE_COMPLETO_EMPLEADO,
        Decimal ID_SOLICITUD,
        Decimal ID_REQUERIMIENTO,
        String NOMBRE_JEFE,
        String CARGO_JEFE,
        String CUENTA_MATRIZ)
    {
        String html_encabezado = "<html>";
        html_encabezado += "<head>";
        html_encabezado += "</head>";
        html_encabezado += "<body>";

        String html_pie = "</body>";
        html_pie += "</html>";

        //variables obtenidas de la session
        String NOMBRE_EMPRESA;
        String NIT_EMPRESA;
        if (Session["idEmpresa"].ToString() == "1")
        {
            NOMBRE_EMPRESA = tabla.VAR_NOMBRE_SERTEMPO;
            NIT_EMPRESA = tabla.VAR_NIT_SERTEMPO;
        }
        else
        {
            NOMBRE_EMPRESA = tabla.VAR_NOMBRE_EYS;
            NIT_EMPRESA = tabla.VAR_NIT_EYS;
        }

        String FECHA_INGRESO;
        String SUELDO_BASICO;
        String TIPO_CONTRATO;
        Decimal ID_PERFIL;
        String CARGO_EMPLEADO;

        //FECHA DE INGRESO DESDE SOLICITUD DE INGRESO
        radicacionHojasDeVida _rad = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaRad = _rad.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
        DataRow filaRad = tablaRad.Rows[0];

        try
        {
            FECHA_INGRESO = Convert.ToDateTime(filaRad["F_ING_C"]).ToShortDateString();
        }
        catch
        {
            FECHA_INGRESO = "Desconocida.";
        }

        //obtenermos de la requisicion el salario
        //cargo,
        //tipo contrato,
        //y no me acuerdo que mas.
        requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaReq = _req.ObtenerComRequerimientoPorIdRequerimiento(ID_REQUERIMIENTO);
        DataRow filaReq = tablaReq.Rows[0];

        try
        {
            SUELDO_BASICO = Convert.ToDecimal(filaReq["SALARIO"]).ToString("C");
        }
        catch
        {
            SUELDO_BASICO = "Desconocido.";
        }

        if (DBNull.Value.Equals(filaReq["NOMBRE_HORARIO"]) == false)
        {
            TIPO_CONTRATO = filaReq["NOMBRE_HORARIO"].ToString().Trim();
        }
        else
        {
            TIPO_CONTRATO = "Desconocido.";
        }

        try
        {
            ID_PERFIL = Convert.ToDecimal(filaReq["REGISTRO_PERFIL"]);
            perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaPerfil = _perfil.ObtenerPorRegistro(ID_PERFIL);
            DataRow filaPerfil = tablaPerfil.Rows[0];

            if (DBNull.Value.Equals(filaPerfil["NOM_OCUPACION"]) == false)
            {
                CARGO_EMPLEADO = filaPerfil["NOM_OCUPACION"].ToString().Trim();
            }
            else
            {
                CARGO_EMPLEADO = "Desconocido.";
            }
        }
        catch
        {
            CARGO_EMPLEADO = "Desconocido.";
        }

        //En esta variable cargamos el documento plantilla
        StreamReader archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\apertura_cuenta_avvillas.htm"));

        String html_formato_apertura = html_encabezado + archivo_original.ReadToEnd();

        archivo_original.Dispose();
        archivo_original.Close();

        html_formato_apertura = html_formato_apertura.Replace("[CIUDAD]", CIUDAD);
        html_formato_apertura = html_formato_apertura.Replace("[FECHA_APERTURA]", FECHA_APERTURA.ToLongDateString());
        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_BANCO]", NOMBRE_BANCO);
        html_formato_apertura = html_formato_apertura.Replace("[NIT_EMPRESA]", NIT_EMPRESA);
        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_EMPRESA]", NOMBRE_EMPRESA);
        html_formato_apertura = html_formato_apertura.Replace("[CUENTA_MATRIZ]", CUENTA_MATRIZ);

        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_EMPLEADO]", NOMBRE_EMPLEADO);
        html_formato_apertura = html_formato_apertura.Replace("[NUMERO_IDENTIFICACION_EMPLEADO]", NUMERO_IDENTIFICACION_EMPLEADO);
        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_COMPLETO_EMPLEADO]", NOMBRE_COMPLETO_EMPLEADO);

        html_formato_apertura = html_formato_apertura.Replace("[FECHA_INGRESO]", FECHA_INGRESO);
        html_formato_apertura = html_formato_apertura.Replace("[SUELDO_BASICO]", SUELDO_BASICO);
        html_formato_apertura = html_formato_apertura.Replace("[TIPO_CONTRATO]", TIPO_CONTRATO);
        html_formato_apertura = html_formato_apertura.Replace("[CARGO_EMPLEADO]", CARGO_EMPLEADO);

        html_formato_apertura = html_formato_apertura.Replace("[NOMBRE_JEFE]", NOMBRE_JEFE);
        html_formato_apertura = html_formato_apertura.Replace("[CARGO_JEFE]", CARGO_JEFE);

        html_formato_apertura += html_pie;

        //creamos un configuramos el documento de pdf
        //(tamaño de la hoja,margen izq, margen der, margin arriba margen abajo)
        iTextSharp.text.Document document = new iTextSharp.text.Document(new Rectangle(595, 842), 55, 55, 80, 45);

        using (MemoryStream streamArchivo = new MemoryStream())
        {
            iTextSharp.text.pdf.PdfWriter writer = PdfWriter.GetInstance(document, streamArchivo);

            // Our custom Header and Footer is done using Event Handler
            pdfEvents PageEventHandler = new pdfEvents();
            writer.PageEvent = PageEventHandler;

            // Define the page header
            // Define the page header
            if (Session["idEmpresa"].ToString() == "1")
            {
                PageEventHandler.dirImagenHeader = Server.MapPath("~/imagenes/reportes/logo_sertempo.png");
            }
            else
            {
                PageEventHandler.dirImagenHeader = Server.MapPath("~/imagenes/reportes/logo_eficiencia.png");
            }

            PageEventHandler.fechaImpresion = DateTime.Now;
            PageEventHandler.tipoDocumento = "apertura_cuenta_avvillas";

            document.Open();

            //capturamos el archivo temporal del response
            String tempFile = Path.GetTempFileName();

            //y lo llenamos con el html de la plantilla
            using (StreamWriter tempwriter = new StreamWriter(tempFile, false))
            {
                tempwriter.Write(html_formato_apertura);
            }

            //leeemos el archivo temporal y lo colocamos en el documento de pdf
            List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StreamReader(tempFile), new StyleSheet());

            foreach (IElement element in htmlarraylist)
            {
                if (element.Chunks.Count > 0)
                {
                    if (element.Chunks[0].Content == "linea para paginacion de pdf")
                    {
                        document.NewPage();
                    }
                    else
                    {
                        document.Add(element);
                    }
                }
                else
                {
                    document.Add(element);
                }
            }

            //limpiamos todo
            document.Close();

            writer.Close();

            return streamArchivo.ToArray();
        }
    }
    protected void GridView_RESULTADOS_BUSQUEDA_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView_RESULTADOS_BUSQUEDA.PageIndex = e.NewPageIndex;

        String datosCapturados = TextBox_BUSCAR.Text.ToUpper();
        String campo = DropDownList_BUSCAR.SelectedValue.ToString();

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

        DataTable tablaResultadosBusqueda = new DataTable();

        if (DropDownList_BUSCAR.SelectedValue == "NUM_DOC_IDENTIDDAD")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorNumDocIdentificacion(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "NOMBRES")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorNombres(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "APELLIDOS")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorApellidos(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "RAZ_SOCIAL")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorEmpresa(datosCapturados);
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            Panel_MENSAJES.Enabled = true;
            Panel_MENSAJES.Visible = true;
            Label_MENSAJE.ForeColor = System.Drawing.Color.Red;
            if (_requicision.MensajeError != null)
            {
                Label_MENSAJE.Text = _requicision.MensajeError;
            }
            else
            {
                Label_MENSAJE.Text = "ADVERTENCIA: No se encontraron registros que cumpliera con los datos de busqueda.";
            }
        }
        else
        {
            Panel_MENSAJES.Enabled = false;
            Panel_MENSAJES.Visible = false;
            Panel_RESULTADOS_GRID.Enabled = true;
            Panel_RESULTADOS_GRID.Visible = true;
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
        public String ElaborarContrato(int id_requerimiento, int id_solicitud, int id_empresa, int id_centro_Costo, int id_sub_cc, String ciudad,
            int ID_SERVICIO_RESPECTIVO, int servicio, int id_ARP, int id_caja_c, int id_EPS, int id_Pensiones, Decimal riesgo, String pensionado,
            String Clase_Contrato, String Tipo_Contrato, String Tipo_Pago, DateTime fecha_Inicia, DateTime fecha_termina, String sal_int,
            Decimal Salario, String vigente, String activo, String liquidado, String pago_Liquidacion, int id_entidad, String Num_Cuenta, String Forma_pago,
            String PAGO_DIAS_PRODUCTIVIDAD, String SENA_PRODICTIVO, String SENA_ELECTIVO, String PRACTICANTE_UNIVERSITARIO, Decimal VALOR_NOMINA, Decimal VALOR_CONTRATO,
            DateTime FECHA_INICIO_PERIODO, DateTime FECHA_FIN_PERIODO, String Periodo_Pago, String tipo_Cuenta, string descripcion_salario, decimal idPerfil)
        {
            String datosG = "";
            int id_perfil = 0;
            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                requisicion _req = new requisicion(Empresa, Usuario);
                DataTable tablaReq = _req.ObtenerComRequerimientoPorIdRequerimiento(Convert.ToDecimal(id_requerimiento), conexion);

                DataRow filaReq = tablaReq.Rows[0];
                id_perfil = Convert.ToInt32(filaReq["REGISTRO_PERFIL"].ToString());
                usuario _empleado = new usuario(Empresa);
                radicacionHojasDeVida _sol = new radicacionHojasDeVida(Empresa, Usuario);

                Decimal idEmpleado = _empleado.AdicionarNomEmpleados(0, id_solicitud, id_empresa, id_centro_Costo, id_sub_cc, fecha_Inicia, Salario,
                    pensionado, activo, liquidado, riesgo, id_ARP, id_caja_c, id_EPS, id_Pensiones, "C", id_entidad, Num_Cuenta, sal_int, ciudad, id_perfil, tipo_Cuenta, descripcion_salario, Forma_pago, conexion);

                if (idEmpleado <= 0)
                {
                    _mensaje_error = "\n El empleado no fue creado, " + _empleado.MensajeError;
                    conexion.DeshacerTransaccion();
                }
                else
                {
                    registroContrato _contrato = new registroContrato(Empresa, Usuario);

                    Decimal id_Contrato = 0;
                    /* revisado por cambio en riesgo */
                    id_Contrato = _contrato.AdicionarConRegContratos(Convert.ToInt32(idEmpleado), id_requerimiento, id_solicitud, id_centro_Costo,
                        id_sub_cc, Clase_Contrato, fecha_Inicia, fecha_termina, vigente, pago_Liquidacion, sal_int, Tipo_Contrato,
                        ID_SERVICIO_RESPECTIVO, ciudad, servicio, conexion, PAGO_DIAS_PRODUCTIVIDAD, SENA_PRODICTIVO, SENA_ELECTIVO, PRACTICANTE_UNIVERSITARIO,
                        VALOR_NOMINA, VALOR_CONTRATO, FECHA_INICIO_PERIODO, FECHA_FIN_PERIODO, Periodo_Pago);

                    if (String.IsNullOrEmpty(_contrato.MensajeError))
                    {
                        _empleado.ActualizarNomEmpleados(Convert.ToInt32(idEmpleado), Convert.ToInt32(id_Contrato), id_solicitud, id_empresa, id_centro_Costo, id_sub_cc, fecha_Inicia, Salario,
                        pensionado, activo, liquidado, riesgo, id_ARP, id_caja_c, id_EPS, id_Pensiones, "C", id_entidad, Num_Cuenta, sal_int, ciudad, id_perfil, Forma_pago, conexion);

                        if (String.IsNullOrEmpty(_empleado.MensajeError))
                        {

                            if (_sol.ActualizarEstadoProcesoRegSolicitudesIngreso(id_requerimiento, id_solicitud, "CONTRATADO", Usuario, conexion))
                            {
                                if (_sol.ActualizarEstadoRegSolicitudesIngreso(id_requerimiento, id_solicitud, "CONTRATADO", conexion))
                                {
                                    datosG = id_Contrato + "," + idEmpleado;

                                    try
                                    {
                                        conexion.ExecuteNonQuery("usp_ESC_CRT_ENTREGAS_SC_adicionar " + idEmpleado + ", '" + Usuario + "'");
                                        conexion.ExecuteNonQuery("usp_empleado_clausulas_contratar " + idEmpleado + ", " + idPerfil + ", '" + Usuario + "'");

                                        Int32 requerimientoActualizado = Convert.ToInt32(conexion.ExecuteScalar("usp_comprobar_cierre_requisicion_por_sistema " + id_requerimiento.ToString() + ", '" + Usuario + "'"));

                                        if (requerimientoActualizado <= 0)
                                        {
                                            conexion.DeshacerTransaccion();
                                            MensajeError = "El empleado no fue creado, Ocurrio un error al momento de determinar si la requisición debe ser cuplida por sistema.";
                                        }
                                        else
                                        {
                                            conexion.AceptarTransaccion();
                                        }
                                    }
                                    catch
                                    {
                                        _mensaje_error += "\n No fue posible registrar los servicios complementarios o clausulas para el perfil contratado " + _sol.MensajeError;
                                        conexion.AceptarTransaccion();
                                    }
                                }
                                else
                                {
                                    _mensaje_error += "\n No fue posible actualizar el estado de la solicitud: " + _sol.MensajeError;
                                    conexion.DeshacerTransaccion();
                                }
                            }
                            else
                            {
                                _mensaje_error += "\n No fue posible actualizar el estado del proceso de la soliciutd: " + _sol.MensajeError;
                                conexion.DeshacerTransaccion();
                            }

                        }
                        else
                        {
                            _mensaje_error += "\n Se presentó el siguiente error en la actualización del empleado: " + _empleado.MensajeError;
                            conexion.DeshacerTransaccion();
                        }
                    }
                    else
                    {
                        _mensaje_error += "\n Se presentó el siguiente error en la creación del contrato: " + _contrato.MensajeError;
                        conexion.DeshacerTransaccion();
                    }
                }
            }
            catch (Exception e)
            {
                MensajeError = e.Message;
                conexion.DeshacerTransaccion();
            }
            finally
            {
                conexion.Desconectar();
            }

            return datosG;
        }
    protected void Button_BUSCAR_Click(object sender, EventArgs e)
    {
        String datosCapturados = TextBox_BUSCAR.Text.ToUpper();
        String campo = DropDownList_BUSCAR.SelectedValue.ToString();

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

        DataTable tablaResultadosBusqueda = new DataTable();

        if (DropDownList_BUSCAR.SelectedValue == "NUM_DOC_IDENTIFICACION")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorNumDocIdentificacion(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "NOMBRES")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorNombres(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "APELLIDOS")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorApellidos(datosCapturados);
        }
        else if (DropDownList_BUSCAR.SelectedValue == "RAZ_SOCIAL")
        {
            tablaResultadosBusqueda = _requicision.ObtenerPersonasContratadasPorEmpresa(datosCapturados);
        }
        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            configurarMensajes(true, System.Drawing.Color.Red, Label_MENSAJE, Panel_MENSAJES);
            if (_requicision.MensajeError != null)
            {
                Label_MENSAJE.Text = _requicision.MensajeError;
            }
            else
            {
                Label_MENSAJE.Text = "ADVERTENCIA: No se encontraron registros que cumplieran los datos de busqueda.";
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            configurarMensajes(false, System.Drawing.Color.Green, Label_MENSAJE, Panel_MENSAJES);

            Panel_RESULTADOS_GRID.Visible = true;
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
            DataRow filaParaColocarColor;
            int contadorAlertasBajas = 0;
            int contadorAlertasMedias = 0;
            int contadorAlertasAltas = 0;
            int contadorAlertasNinguna = 0;

            for (int i = 0; i < tablaResultadosBusqueda.Rows.Count; i++)
            {
                filaParaColocarColor = tablaResultadosBusqueda.Rows[i];

                if (filaParaColocarColor["ALERTA"].ToString().Trim() == "ALTA")
                {
                    GridView_RESULTADOS_BUSQUEDA.Rows[i].BackColor = System.Drawing.Color.Red;
                    contadorAlertasAltas += 1;
                }
                else
                {
                    if (filaParaColocarColor["ALERTA"].ToString().Trim() == "MEDIA")
                    {
                        GridView_RESULTADOS_BUSQUEDA.Rows[i].BackColor = System.Drawing.Color.Yellow;
                        contadorAlertasMedias += 1;
                    }
                    else
                    {
                        if (filaParaColocarColor["ALERTA"].ToString().Trim() == "BAJA")
                        {
                            GridView_RESULTADOS_BUSQUEDA.Rows[i].BackColor = System.Drawing.Color.Green;
                            contadorAlertasBajas += 1;
                        }
                        else
                        {
                            GridView_RESULTADOS_BUSQUEDA.Rows[i].BackColor = System.Drawing.Color.Gray;
                            contadorAlertasNinguna += 1;
                        }
                    }
                }

                if (i == (GridView_RESULTADOS_BUSQUEDA.Rows.Count - 1))
                {
                    GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[1].Text = "";
                }
            }

            Label_ALERTA_ALTA.Text = contadorAlertasAltas.ToString();
            Label_ALERTA_MEDIA.Text = contadorAlertasMedias.ToString();
            Label_ALERTA_BAJA.Text = contadorAlertasBajas.ToString();
        }
    }
    protected void Button_Guardar_Click(object sender, EventArgs e)
    {
        try
        {
            if (DropDownList_Clase_contrato.SelectedValue == ClaseContrato.IN.ToString())
            {
                parametroSalarial ParametroSalarial = new parametroSalarial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                DataRow dataRow = ParametroSalarial.ObtenerPorAño(System.DateTime.Now.Year);
                if (dataRow != null)
                {
                    if (string.IsNullOrEmpty(dataRow["SMMLV"].ToString()))
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se ha definido el SMMLV para el año " + System.DateTime.Now.Year.ToString(), Proceso.Error);
                        return;
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(dataRow["SMMLV_SALARIO_INTEGRAL"].ToString()))
                        {
                            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se ha definido la cantidad de SMMLV del salario integral, para el año" + System.DateTime.Now.Year.ToString(), Proceso.Error);
                            return;
                        }
                        else
                        {

                            if ((Convert.ToDecimal(this.TextBox_Salario.Text)) < (Convert.ToDecimal(dataRow["SMMLV_SALARIO_INTEGRAL"].ToString()) * Convert.ToDecimal(dataRow["SMMLV"].ToString())))
                            {
                                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El salario integral es menor al permitido " + (Convert.ToDecimal(dataRow["SMMLV_SALARIO_INTEGRAL"].ToString()) * Convert.ToDecimal(dataRow["SMMLV"].ToString())), Proceso.Error);
                                return;
                            }
                            else
                            {
                                if (!(Convert.ToDecimal(TextBox_contrato_integral_porcentaje_parafiscales.Text).Equals(Convert.ToDecimal(dataRow["PORC_BASE_SEGSOC_SALINTEGRAL"].ToString()))))
                                {
                                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El porcentaje parafiscal debe ser " + dataRow["PORC_BASE_SEGSOC_SALINTEGRAL"].ToString(), Proceso.Error);
                                    return;
                                }
                                else
                                {
                                    if (!(Convert.ToDecimal(TextBox_contrato_integral_porcentaje_prestacional.Text).Equals(Convert.ToDecimal(dataRow["PORC_BASE_VACACIONES_SALINTEGRAL"].ToString()))))
                                    {
                                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El porcentaje prestacional debe ser " + dataRow["PORC_BASE_VACACIONES_SALINTEGRAL"].ToString(), Proceso.Error);
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se han configurado los parametros salariales para el año " + System.DateTime.Now.Year.ToString(), Proceso.Error);
                    return;
                }
            }

            tools _tools = new tools();
            SecureQueryString QueryStringSeguro;
            QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);
            String persona = QueryStringSeguro["persona"].ToString();
            String[] datos = persona.Split(',');

            requisicion _req = new requisicion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaReq = _req.ObtenerComRequerimientoPorIdRequerimiento(Convert.ToDecimal(datos[1]));
            DataRow filaReq = tablaReq.Rows[0];
            String idPerfil = filaReq["REGISTRO_PERFIL"].ToString();
            Decimal riesgo = 0;
            String centroCosto = "0";
            String SubCentroCosto = "0";
            String Ciudad = null;
            String servicio = "0";
            Decimal salario = 0;
            Decimal smmlv = 0;
            Decimal smmlv_integral = 0;
            String AFP = null;
            String ARP = null;
            String CCF = null;
            String EPS = null;
            String pensionado = "N";
            int id_requerimiento = Convert.ToInt32(datos[1].ToString());
            int id_solicitud = Convert.ToInt32(datos[0].ToString());
            int id_empresa = Convert.ToInt32(datos[3].ToString());
            int ID_SERVICIO_RESPECTIVO = Convert.ToInt32(filaReq["ID_SERVICIO_RESPECTIVO"].ToString());
            String clase_Contrato = null;
            String tipo_Contrato = null;
            DateTime fechaInicio;
            DateTime fechaFinal;

            int id_entidad_Bancaria = 0;
            String formaPago = null;
            String tipoCuenta = String.Empty;
            String num_Cuenta = null;

            String salInt = null;
            String pago_Dias_Productividad = "N";
            String sena_productivo = "N";
            String sena_electivo = "N";
            String practicante_Universitario = "N";
            Decimal valor_nomina = 0;
            Decimal valor_contrato = 0;
            DateTime fecha_inicio_periodo;
            DateTime fecha_fin_periodo;
            String periodo_pago = null;

            radicacionHojasDeVida _sol = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaSolicitud = _sol.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(datos[0]));
            DataRow filaSolicitud = tablaSolicitud.Rows[0];

            formaPago = filaSolicitud["FORMA_PAGO"].ToString();

            parametroSalarial par = new parametroSalarial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable par_ta = par.ObtenerSalarioMinimo(Convert.ToInt32(System.DateTime.Today.Year.ToString()));
            DataRow fila = par_ta.Rows[0];
            smmlv = Convert.ToDecimal(fila["SMMLV"].ToString());
            par_ta.Clear();
            fila.Delete();
            par_ta = par.ObtenerSalarioIntegral(Convert.ToInt32(System.DateTime.Today.Year.ToString()));
            fila = par_ta.Rows[0];
            smmlv_integral = Convert.ToDecimal(fila["SMMLV_SALARIO_INTEGRAL"].ToString());

            Ciudad = this.DropDownList_Ciudad.SelectedValue;
            centroCosto = this.DropDownList_CentroCosto.SelectedValue;
            SubCentroCosto = this.DropDownList_sub_cc.SelectedValue;

            if (DropDownList_Salario_integral.SelectedValue.Equals("S"))
            {
                salario = Convert.ToDecimal(TextBox_Salario.Text);
                Decimal salarioInt = smmlv * smmlv_integral;
                if (salario < salarioInt)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El salario ingresado debe ser igual o mayor a " + salarioInt + " dado que indico que es salario integral", Proceso.Advertencia);
                }
            }

            #region afiliaciones
            afiliacion _afiliacion = new afiliacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaAfiliacion;
            DataRow filaAfiliacion;
            if (RadioButton_PRACTICANTE_UNI.Checked)
            {
                practicante_Universitario = "S";
                pensionado = "N";
                tablaAfiliacion = _afiliacion.ObtenerconafiliacionArpPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a ARL", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];
                    ARP = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }

                tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];

                    EPS = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }
            }
            else if (RadioButton_SENA_ELECTIVO.Checked)
            {
                sena_electivo = "S";
                pensionado = "N";
                tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];

                    EPS = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }

            }
            else if (RadioButton_SENA_PRODUCTIVO.Checked)
            {
                sena_productivo = "S";
                pensionado = "N";
                tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];

                    EPS = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }
                tablaAfiliacion = _afiliacion.ObtenerconafiliacionArpPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a ARL.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];
                    ARP = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }
            }
            else
            {
                tablaAfiliacion = _afiliacion.ObtenerconafiliacionEpsPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a EPS.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];

                    EPS = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }

                tablaAfiliacion = _afiliacion.ObtenerconafiliacionArpPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a ARL.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];
                    ARP = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }

                tablaAfiliacion = _afiliacion.ObtenerconafiliacionCajasCPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a CCF.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];
                    CCF = filaAfiliacion["REGISTRO"].ToString();

                    tablaAfiliacion.Clear();
                    filaAfiliacion.Delete();
                }

                tablaAfiliacion = _afiliacion.ObtenerconafiliacionfpensionesPorSolicitudRequerimiento(Convert.ToInt32(datos[0]), Convert.ToInt32(datos[1]));
                if (tablaAfiliacion.Rows.Count <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona no tiene afiliaciones a AFP.", Proceso.Advertencia);
                }
                else
                {
                    filaAfiliacion = tablaAfiliacion.Rows[0];
                    pensionado = filaAfiliacion["PENSIONADO"].ToString();
                    if (pensionado.Equals("S"))
                    {
                        AFP = "0";
                    }
                    else
                    {
                        AFP = filaAfiliacion["REGISTRO"].ToString();
                    }
                }
            }
            #endregion afiliaciones
            #region riesgo
            condicionesContratacion _riesgo = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            if (Session["idEmpresa"].ToString().Equals("3"))
            {
                if (String.IsNullOrEmpty(DropDownList_servicio.SelectedValue.ToString()))
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Debe seleccionar un servicio.", Proceso.Advertencia);
                }
                else
                {
                    if (!(String.IsNullOrEmpty(DropDownList_sub_cc.SelectedValue.ToString())))
                    {
                        DataTable tablaCondContr = _riesgo.ObtenerCondicionContratacionPorIdPerfilIdSubCIdServicio(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_sub_cc.SelectedItem.Value.ToString()), Convert.ToDecimal(DropDownList_servicio.SelectedItem.Value.ToString()));
                        DataRow filaCondContrata = tablaCondContr.Rows[0];
                        riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString());
                        SubCentroCosto = DropDownList_sub_cc.SelectedValue;
                        servicio = DropDownList_servicio.SelectedValue;
                    }
                    else if (!(String.IsNullOrEmpty(DropDownList_CentroCosto.SelectedValue.ToString())))
                    {
                        DataTable tablaCondContr = _riesgo.ObtenerCondicionContratacionPorIdPerfilIdCentroCIdServicio(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_CentroCosto.SelectedItem.Value.ToString()), Convert.ToDecimal(DropDownList_servicio.SelectedItem.Value.ToString()));
                        DataRow filaCondContrata = tablaCondContr.Rows[0];
                        riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString());
                        centroCosto = DropDownList_CentroCosto.SelectedValue;
                        servicio = DropDownList_servicio.SelectedValue;
                    }
                    else if (!(String.IsNullOrEmpty(DropDownList_Ciudad.SelectedValue.ToString())))
                    {
                        DataTable tablaCondContr = _riesgo.ObtenerCondicionContratacionPorIdPerfilIdCiudadIdServicio(Convert.ToDecimal(idPerfil), DropDownList_Ciudad.SelectedItem.Value.ToString(), Convert.ToDecimal(DropDownList_servicio.SelectedItem.Value.ToString()));
                        DataRow filaCondContrata = tablaCondContr.Rows[0];
                        riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString());
                        Ciudad = DropDownList_Ciudad.SelectedValue;
                        servicio = DropDownList_servicio.SelectedValue;
                    }
                }
            }
            else
            {
                if (!(String.IsNullOrEmpty(DropDownList_sub_cc.SelectedValue.ToString())))
                {
                    DataTable tablaCondContr = _riesgo.ObtenerCondicionComercialPorIdPerfilIdSubC(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_sub_cc.SelectedItem.Value.ToString()));
                    DataRow filaCondContrata = tablaCondContr.Rows[0];
                    riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString());
                    SubCentroCosto = DropDownList_sub_cc.SelectedValue;
                }
                else if (!(String.IsNullOrEmpty(DropDownList_CentroCosto.SelectedValue.ToString())))
                {
                    DataTable tablaCondContr = _riesgo.ObtenerCondicionComercialPorIdPerfilIdCentroC(Convert.ToDecimal(idPerfil), Convert.ToDecimal(DropDownList_CentroCosto.SelectedItem.Value.ToString()));
                    DataRow filaCondContrata = tablaCondContr.Rows[0];
                    riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString());
                    centroCosto = DropDownList_CentroCosto.SelectedValue;
                }
                else if (!(String.IsNullOrEmpty(DropDownList_Ciudad.SelectedValue.ToString())))
                {
                    DataTable tablaCondContr = _riesgo.ObtenerCondicionComercialPorIdPerfilIdCiudad(Convert.ToDecimal(idPerfil), DropDownList_Ciudad.SelectedItem.Value.ToString());
                    DataRow filaCondContrata = tablaCondContr.Rows[0];
                    riesgo = Convert.ToDecimal(filaCondContrata["RIESGO"].ToString());
                    Ciudad = DropDownList_Ciudad.SelectedValue;
                }
            }
            #endregion riesgo

            clase_Contrato = DropDownList_Clase_contrato.SelectedItem.Value.ToString();
            tipo_Contrato = DropDownList_tipo_Contrato.SelectedItem.Value.ToString();

            if (clase_Contrato.Equals("C_A") == true)
            {
                fechaInicio = Convert.ToDateTime(TextBox_contrato_aprendiz_fecha_inicio.Text);
            }
            else
            {
                fechaInicio = Convert.ToDateTime(TextBox_fecha_inicio.Text);
            }

            if (clase_Contrato.Equals("I") | clase_Contrato.Equals("L_S_C_D_A") )
            {
                fechaFinal = Convert.ToDateTime("01/01/1900");
            }
            else
            {
                if (clase_Contrato.Equals("C_A") == true)
                {
                    fechaFinal = Convert.ToDateTime(TextBox_contrato_aprendiz_fecha_final.Text);
                }
                else
                {
                    fechaFinal = Convert.ToDateTime(TextBox_fecha_terminacion.Text);
                }
            }

            if (formaPago.Equals("CHEQUE") | formaPago.Equals("EFECTIVO"))
            {
                num_Cuenta = null;
                id_entidad_Bancaria = 0;
                tipoCuenta = String.Empty;
            }
            else
            {
                if (String.IsNullOrEmpty(filaSolicitud["ID_ENTIDAD"].ToString()))
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se ha seleccionado la entidad bancaria, ni el número de cuenta, vuelva a la opción de exámenes y complete el proceso. Verifique por favor.", Proceso.Advertencia);
                    num_Cuenta = null;
                    id_entidad_Bancaria = 0;
                }
                else
                {
                    id_entidad_Bancaria = Convert.ToInt32(filaSolicitud["ID_ENTIDAD"].ToString());
                    num_Cuenta = filaSolicitud["NUM_CUENTA"].ToString();
                    tipoCuenta = filaSolicitud["TIPO_CUENTA"].ToString();
                }
            }

            salario = Convert.ToDecimal(TextBox_Salario.Text);
            salInt = DropDownList_Salario_integral.SelectedValue.ToString();
            if (DropDownList_tipo_Contrato.SelectedValue.Equals("PR"))
            {
                pago_Dias_Productividad = "S";
                valor_contrato = Convert.ToDecimal(TextBox_Salario.Text);
                valor_nomina = Convert.ToDecimal(TextBox_Salario.Text);
            }

            periodo_pago = DropDownList_PERIODO_PAGO.SelectedValue.ToString();

            fecha_inicio_periodo = fechaInicio;
            fecha_fin_periodo = fechaFinal;

            registroContrato contrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

            DataTable tablaContratosExistentes = contrato.ObtenerNomEmpleadoPorIDSolicitudYFechaIngreso(id_solicitud, fechaInicio);

            if (tablaContratosExistentes.Rows.Count <= 0)
            {
                String datosG = contrato.ElaborarContrato(id_requerimiento,
                        id_solicitud,
                        id_empresa,
                        Convert.ToInt32(centroCosto),
                        Convert.ToInt32(SubCentroCosto),
                        Ciudad,
                        ID_SERVICIO_RESPECTIVO,
                        Convert.ToInt32(servicio),
                        Convert.ToInt32(ARP),
                        Convert.ToInt32(CCF),
                        Convert.ToInt32(EPS),
                        Convert.ToInt32(AFP),
                        Convert.ToDecimal(riesgo),
                        pensionado,
                        clase_Contrato,
                        tipo_Contrato,
                        "C",
                        fechaInicio,
                        fechaFinal,
                        salInt,
                        salario,
                        "S",
                        "S",
                        "N",
                        "N",
                        id_entidad_Bancaria,
                        num_Cuenta,
                        formaPago,
                        pago_Dias_Productividad,
                        sena_productivo,
                        sena_electivo,
                        practicante_Universitario,
                        valor_contrato,
                        valor_nomina,
                        fecha_inicio_periodo,
                        fecha_fin_periodo,
                        periodo_pago,
                        tipoCuenta,
                        DropDownList_DESCRIPCION_SALARIO.SelectedValue.ToString(),
                        Convert.ToDecimal(HiddenField_ID_PERFIL.Value));

                if (!(String.IsNullOrEmpty(contrato.MensajeError)))
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El empleado no fue creado, " + contrato.MensajeError, Proceso.Error);
                }
                else
                {
                    String[] d = datosG.Split(',');
                    HiddenField_ID_CONTRATO.Value = d[0];
                    HiddenField_persona.Value = id_solicitud + "," + id_requerimiento + "," + datos[2] + "," + datos[3] + "," + datos[4] + "," + datosG;

                    Clausula clausula = new Clausula(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    Cargar(clausula.ObtenerContratacionPorIdEmpleado(Convert.ToDecimal(d[1])), GridView_clausulas);
                    HiddenField_ID_EMPLEADO.Value = d[1].ToString();
                    cargar_menu_botones_modulos_internos(false);

                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El empleado y el contrato fueron creados con exito: " + datosG, Proceso.Correcto);
                }

                configurarBotonesDeAccion(true, true, true, true);

                Panel_Informacion_Contrato.Enabled = false;
            }
            else
            {
                DataRow filaContratos = tablaContratosExistentes.Rows[0];

                String datosG = filaContratos["ID_CONTRATO"].ToString() + "," + filaContratos["ID_EMPLEADO"].ToString();
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El Trabajador ya tiene un contrato activo con la misma fecha de ingreso. Los datos del contrato son: " + datosG, Proceso.Correcto);
            }
        }
        catch (Exception err)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, err.Message, Proceso.Error);
        }
    }
    private void iniciar_interfaz_para_cargar(Boolean modificar)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        Decimal ID_REQUERIMIENTO = Convert.ToDecimal(QueryStringSeguro["requerimiento"]);

        String SI_COPIA_REQ = QueryStringSeguro["copia"];
        if (String.IsNullOrEmpty(SI_COPIA_REQ) == true)
        {
            SI_COPIA_REQ = null;
        }
        else
        {
            SI_COPIA_REQ = "si";
        }

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

        if (TablaInfoRequisicion.Rows.Count <= 0)
        {
            if (String.IsNullOrEmpty(_requisicion.MensajeError) == false)
            {
                configurarBotonesDeAccion(true, false, false, false, true);
                Panel_BOTONES_ACCION_1.Visible = false;

                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = _requisicion.MensajeError;

                Panel_GRID_RESULTADOS.Visible = false;

                Panel_BOTONES_ACCIONES_REQUISICION.Visible = false;

                Panel_FORMULARIO.Visible = false;

                configurarPaneles(false, false, false, false, false, false);
            }
            else
            {
                configurarBotonesDeAccion(true, false, false, false, true);
                Panel_BOTONES_ACCION_1.Visible = false;

                configurarMensajes(true, System.Drawing.Color.Orange);
                Label_MENSAJE.Text = "No se encontró una requisición con el ID = " + ID_REQUERIMIENTO;

                Panel_GRID_RESULTADOS.Visible = false;

                Panel_BOTONES_ACCIONES_REQUISICION.Visible = false;

                Panel_FORMULARIO.Visible = false;

                configurarPaneles(false, false, false, false, false, false);
            }
        }
        else
        {
            DataRow filaTablaInfoRequisicion = TablaInfoRequisicion.Rows[0];

            CargarDatosRequisicion(filaTablaInfoRequisicion, SI_COPIA_REQ, modificar);

            if (DropDownList_ID_EMPRESA.SelectedValue == "")
            {
                inhabilitar_DropDownList_ENVIO_CANDIDATOS();
                TextBox_DIR_ENVIO.Enabled = false;
                TextBox_CIUDAD_ENVIO.Enabled = false;
                TextBox_TEL_ENVIO.Enabled = false;
                TextBox_EMAIL_ENVIO.Enabled = false;
                TextBox_COND_ENVIO.Enabled = false;

                Panel_GRILLA_CONTRATOS_ACTIVOS.Visible = false;

                Panel_CONTRATOS_Y_SERVICIOS.Visible = false;

                inhabilitar_DropDownList_PERFILES();
                TextBox_EDAD_MIN.Enabled = false;
                TextBox_EDAD_MAX.Enabled = false;
                TextBox_CANTIDAD.Enabled = false;
                TextBox_SEXO.Enabled = false;
                TextBox_EXPERIENCIA.Enabled = false;

                DropDownList_NIV_ACADEMICO.Enabled = false;

                TextBox_FUNCIONES.Enabled = false;
            }
            else
            {
                DropDownList_ENVIO_CANDIDATOS.Enabled = true;

                if (DropDownList_ENVIO_CANDIDATOS.SelectedValue == "")
                {
                    TextBox_DIR_ENVIO.Enabled = false;
                    TextBox_CIUDAD_ENVIO.Enabled = false;
                    TextBox_TEL_ENVIO.Enabled = false;
                    TextBox_EMAIL_ENVIO.Enabled = false;
                    TextBox_COND_ENVIO.Enabled = false;
                }
                else
                {
                    TextBox_DIR_ENVIO.Enabled = false;
                    TextBox_CIUDAD_ENVIO.Enabled = false;
                    TextBox_TEL_ENVIO.Enabled = false;
                    TextBox_EMAIL_ENVIO.Enabled = false;
                    TextBox_COND_ENVIO.Enabled = false;
                }

                DropDownList_ENVIO_CANDIDATOS.Enabled = true;

                if (HiddenField_ID_SERVICIO_RESPECTIVO.Value == "")
                {
                    if (QueryStringSeguro["accion"].ToString() != "copiarReq")
                    {
                        if (QueryStringSeguro["accion"].ToString() == "modificar")
                        {
                            Panel_CONTRATOS_Y_SERVICIOS.Visible = true;
                        }
                        else
                        {
                            Panel_CONTRATOS_Y_SERVICIOS.Visible = false;
                        }
                    }
                }
                else
                {
                    Panel_CONTRATOS_Y_SERVICIOS.Visible = true;

                    if (HiddenField_ID_SERVICIO_RESPECTIVO.Value == "")
                    {
                        Panel_GRILLA_CONTRATOS_ACTIVOS.Visible = true;
                    }
                    else
                    {
                        Panel_GRILLA_CONTRATOS_ACTIVOS.Visible = true;
                    }
                }

                if (modificar == false)
                {
                    GridView_CONTRATOS_ACTIVOS.Columns[0].Visible = false;
                }
                else
                {
                    if (QueryStringSeguro["accion"].ToString() == "copiarReq")
                    {
                        GridView_CONTRATOS_ACTIVOS.Columns[0].Visible = true;
                    }
                    else
                    {
                        if (HiddenField_ID_SERVICIO_RESPECTIVO.Value == "")
                        {
                            GridView_CONTRATOS_ACTIVOS.Columns[0].Visible = true;
                        }
                        else
                        {
                            GridView_CONTRATOS_ACTIVOS.Columns[0].Visible = true;
                        }
                    }
                }

                DropDownList_PERFILES.Enabled = true;
                if (DropDownList_PERFILES.SelectedValue == "")
                {
                    DropDownList_PERFILES.Enabled = true;
                    TextBox_EDAD_MIN.Enabled = false;
                    TextBox_EDAD_MAX.Enabled = false;

                    if ((modificar == true) && (SI_COPIA_REQ != null))
                    {
                        TextBox_CANTIDAD.Enabled = true;
                    }
                    else
                    {
                        TextBox_CANTIDAD.Enabled = false;
                    }

                    TextBox_SEXO.Enabled = false;
                    TextBox_EXPERIENCIA.Enabled = false;

                    DropDownList_NIV_ACADEMICO.Enabled = false;

                    TextBox_FUNCIONES.Enabled = false;
                }
                else
                {
                    DropDownList_PERFILES.Enabled = true;
                    TextBox_EDAD_MIN.Enabled = false;
                    TextBox_EDAD_MAX.Enabled = false;

                    if ((modificar == true) && (SI_COPIA_REQ != null))
                    {
                        TextBox_CANTIDAD.Enabled = true;
                    }
                    else
                    {
                        TextBox_CANTIDAD.Enabled = false;
                    }

                    TextBox_SEXO.Enabled = false;
                    TextBox_EXPERIENCIA.Enabled = false;

                    DropDownList_NIV_ACADEMICO.Enabled = false;

                    TextBox_FUNCIONES.Enabled = false;
                }

                if ((modificar == true) && (SI_COPIA_REQ == null))
                {
                    DropDownList_PERFILES.Enabled = false;
                }
                else
                {
                    DropDownList_PERFILES.Enabled = true;
                }
            }

            Panel_GRID_RESULTADOS.Visible = false;

            if (modificar == true)
            {
                Panel_CONTROL_REGISTRO.Visible = false;

                Panel_ID_REQUERIMIENTO.Visible = false;
            }
            else
            {
                Panel_CONTROL_REGISTRO.Visible = true;
                Panel_CONTROL_REGISTRO.Enabled = false;

                Panel_ID_REQUERIMIENTO.Visible = true;
                TextBox_ID_REQUERIMIENTO.Enabled = false;

            }

            if (modificar == true)
            {
                Panel_FORMULARIO.Visible = true;
                Panel_FORMULARIO.Enabled = true;
            }
            else
            {
                Panel_FORMULARIO.Visible = true;
                Panel_FORMULARIO.Enabled = false;
            }

            if (modificar == true)
            {
                DropDownList_ID_EMPRESA.Enabled = false;
                DropDownList_TIP_REQ.Enabled = false;
            }
            else
            {
                DropDownList_ID_EMPRESA.Enabled = true;
                DropDownList_TIP_REQ.Enabled = true;
            }

            if (SI_COPIA_REQ != null)
            {
                TextBox_FECHA_REQUERIDA.Enabled = true;

                RangeValidator_TextBox_FECHA_REQUERIDA.MinimumValue = DateTime.Now.ToShortDateString();
                RangeValidator_TextBox_FECHA_REQUERIDA.MaximumValue = DateTime.Now.AddMonths(1).ToShortDateString();

                RangeValidator_TextBox_FECHA_REQUERIDA.Enabled = true;
                ValidatorCalloutExtender_TextBox_FECHA_REQUERIDA_1.Enabled = true;
            }
            else
            {
                if (modificar == true)
                {
                    RangeValidator_TextBox_FECHA_REQUERIDA.MinimumValue = TextBox_FECHA_R.Text;
                    RangeValidator_TextBox_FECHA_REQUERIDA.MaximumValue = Convert.ToDateTime(TextBox_FECHA_R.Text).AddMonths(1).ToShortDateString();

                    RangeValidator_TextBox_FECHA_REQUERIDA.Enabled = true;
                    ValidatorCalloutExtender_TextBox_FECHA_REQUERIDA_1.Enabled = true;

                    TextBox_FECHA_REQUERIDA.Enabled = true;
                }
                else
                {
                    RangeValidator_TextBox_FECHA_REQUERIDA.Enabled = false;
                    ValidatorCalloutExtender_TextBox_FECHA_REQUERIDA_1.Enabled = false;

                    TextBox_FECHA_REQUERIDA.Enabled = false;
                }
            }

            TextBox_FechaReferenciaSistema.Enabled = false;

            Button_ENVIAR_CANDIDATOS.Visible = true;
        }
    }