protected void Page_Load(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        Decimal REGISTRO = Convert.ToDecimal(QueryStringSeguro["registro"]);

        hojasVida _hojasVida = new hojasVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPruebaAplicadaYa = _hojasVida.ObtenerSelRegAplicacionPrueebasObtenerPorRegistro(REGISTRO);
        DataRow filaPruebaAplicadaYa = tablaPruebaAplicadaYa.Rows[0];

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

        String NOMBRE_ARCHIVO = filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim() + "-PRUEBA-" + filaPruebaAplicadaYa["NOM_PRUEBA"].ToString().Trim();
        NOMBRE_ARCHIVO = NOMBRE_ARCHIVO.Replace(' ','_');

        Response.Clear();
        Response.AddHeader("content-disposition", string.Format("attachment;filename={0}",NOMBRE_ARCHIVO + filaPruebaAplicadaYa["ARCHIVO_EXTENSION"].ToString().Trim()));

        Response.ContentType = filaPruebaAplicadaYa["ARCHIVO_TYPE"].ToString().Trim();

        Response.BinaryWrite((byte[])filaPruebaAplicadaYa["ARCHIVO_PRUEBA"]);

        Response.End();
    }
    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();

        Ocultar(Acciones.Inicio);

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

        condicionesContratacion CondicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable _tablaReq = CondicionesContratacion.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();

        cargar_menu_botones_modulos_internos();

        if (!String.IsNullOrEmpty(filaSolIngreso["NUM_CUENTA"].ToString())) CheckBox_TIENE_CUENTA.Checked = true;

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

        ordenExamenes _ordenes = new ordenExamenes(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaOrdenes = _ordenes.ObtenerConRegOrdenExamenPorSolicitud(Convert.ToInt32(ID_REQUERIMIENTO), Convert.ToInt32(ID_SOLICITUD));

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

                Mostrar(Acciones.SeleccionUbicacion);

                HiddenField_ESTADO_PROCESO.Value = AccionesProceso.Paso1ConfigurarExamenes.ToString();

                CargarSeccionUbicacionTrabajador();

                Panel_INFO_ADICIONAL_MODULO.Visible = true;
                Label_INFO_ADICIONAL_MODULO.Text = "SELECCIONE LA UBICACIÓN DONDE TRABAJARÁ LA PERSONA SELECICONADA";
            }
        }
        else
        {
            HiddenField_ESTADO_PROCESO.Value = AccionesProceso.Paso2RegistrarResultadosExamenes.ToString();

            Boolean TIENE_CUENTA = CargarUbicacionTrabajadorTemporal(ID_REQUERIMIENTO, ID_SOLICITUD);

            Cargar_GridView_EXAMENES_REALIZADOS_desde_tabla(tablaOrdenes);

            Cargar_forma_Pago(filaSolIngreso, TIENE_CUENTA);

            Mostrar(Acciones.ResultadosExamenes);

            if (filaSolIngreso["PAR_FORMA_PAGO_VARIABLE"].ToString().Trim() == "1")
            {
                if (TIENE_CUENTA == false)
                {
                    Button_Imprimir_Carta.Visible = true;
                }
                else
                {
                    Button_Imprimir_Carta.Visible = false;
                }
            }
            else
            {
                Button_Imprimir_Carta.Visible = false;
            }

            Panel_INFO_ADICIONAL_MODULO.Visible = false;
            Label_INFO_ADICIONAL_MODULO.Text = "";

            Button_DescartarPorExamenes.Visible = true;
        }
    }
    protected void Button_ACEPTAR_UBICACION_Click(object sender, EventArgs e)
    {
        if (HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value == "S")
        {
            Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);
            Decimal ID_SOLICITUD = Convert.ToDecimal(HiddenField_ID_SOLICITUD.Value);

            ObtenerVariablesUbicacionGlobales();

            HiddenField_ID_CIUDAD_SELECCIONADA.Value = GLO_ID_CIUDAD;
            HiddenField_ID_CENTRO_C_SELECCIONADO.Value = GLO_ID_CENTRO_C.ToString();
            HiddenField_ID_SUB_C_SELECCIONADO.Value = GLO_ID_SUB_C.ToString();

            cargar_menu_botones_modulos_internos();

            Ocultar(Acciones.UbicacionSeleccionada);
            Desactivar(Acciones.UbicacionSeleccionada);
            Mostrar(Acciones.UbicacionSeleccionada);

            radicacionHojasDeVida _sol = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaSol = _sol.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
            DataRow filaSol = tablaSol.Rows[0];

            configuracionElementosPerfil _examenes = new configuracionElementosPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaExamenes = _examenes.ObtenerConRegElementosTrabajoExamenes(Convert.ToInt32(ID_PERFIL), GLO_ID_CIUDAD, Convert.ToInt32(GLO_ID_CENTRO_C), Convert.ToInt32(GLO_ID_SUB_C), Convert.ToInt32(0), filaSol["SEXO"].ToString());

            Cargar_GridView_Examenes_Configurados_desde_tabla(tablaExamenes);

            GridView_EXAMENES_REALIZADOS.DataSource = null;
            GridView_EXAMENES_REALIZADOS.DataBind();

            cargar_DropDownList_forma_pago();

        }
        else
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La ubicación seleccionada no tiene configurada condiciones de contratación para el cargo.", Proceso.Advertencia);
        }
    }
    private void cargar_menu_botones_modulos_internos()
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());

        QueryStringSeguro["img_area"] = "contratacion";
        QueryStringSeguro["nombre_area"] = "CONTRATOS Y RELACIONES LABORALES";

        QueryStringSeguro["empresa"] = HiddenField_ID_EMPRESA.Value;
        QueryStringSeguro["solicitud"] = HiddenField_ID_SOLICITUD.Value;
        QueryStringSeguro["requerimiento"] = HiddenField_ID_REQUERIMIENTO.Value;
        QueryStringSeguro["cargo"] = HiddenField_ID_OCUPACION.Value;
        QueryStringSeguro["docID"] = HiddenField_NUM_DOC_IDENTIDAD.Value;

        QueryStringSeguro["persona"] = HiddenField_persona.Value;

        TableRow filaTabla;
        TableCell celdaTabla;
        HyperLink link;
        System.Web.UI.WebControls.Image imagen;

        int contadorFilas = 0;

        filaTabla = new TableRow();
        filaTabla.ID = "row_" + contadorFilas.ToString();

        celdaTabla = new TableCell();
        celdaTabla.ID = "cell_6_row_" + contadorFilas.ToString();
        link = new HyperLink();
        link.ID = "link_descartes";
        QueryStringSeguro["accion"] = "cargar";
        radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable dataTable = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(HiddenField_ID_SOLICITUD.Value));

        QueryStringSeguro["num_doc_identidad"] = dataTable.Rows[0]["num_doc_identidad"].ToString();
        QueryStringSeguro["nombre_modulo"] = "DESCARTE DE PERSONAL";
        link.NavigateUrl = "~/contratacion/descartePersonal.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString());
        link.CssClass = "botones_menu_principal";
        imagen = new System.Web.UI.WebControls.Image();
        imagen.ImageUrl = "~/imagenes/areas/bDescartesContratacionEstandar.png";
        imagen.Attributes.Add("onmouseover", "this.src='../imagenes/areas/bDescartesContratacionAccion.png'");
        imagen.Attributes.Add("onmouseout", "this.src='../imagenes/areas/bDescartesContratacionEstandar.png'");
        imagen.CssClass = "botones_menu_principal";
        link.Controls.Add(imagen);

        celdaTabla.Controls.Add(link);

        filaTabla.Cells.Add(celdaTabla);

        celdaTabla = new TableCell();
        celdaTabla.ID = "cell_1_row_" + contadorFilas.ToString();
        link = new HyperLink();
        link.ID = "link_examenes";

        QueryStringSeguro["accion"] = "cargar";
        QueryStringSeguro["nombre_modulo"] = "EXAMENES Y CUENTA BANCARIA";
        link.NavigateUrl = "~/contratacion/examenesEmpleado.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString());

        link.CssClass = "botones_menu_principal";
        imagen = new System.Web.UI.WebControls.Image();
        imagen.ImageUrl = "~/imagenes/areas/bExamenCuentaEstandar.png";
        imagen.Attributes.Add("onmouseover", "this.src='../imagenes/areas/bExamenCuentaAccion.png'");
        imagen.Attributes.Add("onmouseout", "this.src='../imagenes/areas/bExamenCuentaEstandar.png'");
        imagen.CssClass = "botones_menu_principal";
        link.Controls.Add(imagen);

        celdaTabla.Controls.Add(link);

        filaTabla.Cells.Add(celdaTabla);

        celdaTabla = new TableCell();
        celdaTabla.ID = "cell_2_row_" + contadorFilas.ToString();
        link = new HyperLink();
        link.ID = "link_afiliaciones";
        QueryStringSeguro["accion"] = "cargar";
        QueryStringSeguro["nombre_modulo"] = "AFILIACIONES";
        link.NavigateUrl = "~/contratacion/afiliaciones.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString());
        link.CssClass = "botones_menu_principal";
        imagen = new System.Web.UI.WebControls.Image();
        imagen.ImageUrl = "~/imagenes/areas/bAfiliacionesEstandar.png";
        imagen.Attributes.Add("onmouseover", "this.src='../imagenes/areas/bAfiliacionesAccion.png'");
        imagen.Attributes.Add("onmouseout", "this.src='../imagenes/areas/bAfiliacionesEstandar.png'");
        imagen.CssClass = "botones_menu_principal";
        link.Controls.Add(imagen);

        celdaTabla.Controls.Add(link);

        filaTabla.Cells.Add(celdaTabla);

        celdaTabla = new TableCell();
        celdaTabla.ID = "cell_3_row_" + contadorFilas.ToString();
        link = new HyperLink();
        link.ID = "link_elaborar_contrato";
        QueryStringSeguro["accion"] = "cargar";
        QueryStringSeguro["nombre_modulo"] = "ELABORAR CONTRATO";
        link.NavigateUrl = "~/contratacion/activarEmpleado.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString());
        link.CssClass = "botones_menu_principal";
        imagen = new System.Web.UI.WebControls.Image();
        imagen.ImageUrl = "~/imagenes/areas/bElaborarContratoEstandar.png";
        imagen.Attributes.Add("onmouseover", "this.src='../imagenes/areas/bElaborarContratoAccion.png'");
        imagen.Attributes.Add("onmouseout", "this.src='../imagenes/areas/bElaborarContratoEstandar.png'");
        imagen.CssClass = "botones_menu_principal";
        link.Controls.Add(imagen);

        celdaTabla.Controls.Add(link);

        filaTabla.Cells.Add(celdaTabla);

        celdaTabla = new TableCell();
        celdaTabla.ID = "cell_4_row_" + contadorFilas.ToString();
        link = new HyperLink();
        link.ID = "link_servicios";
        QueryStringSeguro["accion"] = "cargar";
        QueryStringSeguro["nombre_modulo"] = "SERVICIOS COMPLEMENTARIOS";
        link.NavigateUrl = "~/maestros/EntregasEmpleado.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString());
        link.CssClass = "botones_menu_principal";
        imagen = new System.Web.UI.WebControls.Image();
        imagen.ImageUrl = "~/imagenes/areas/bServiciosComplementariosEstandar.png";
        imagen.Attributes.Add("onmouseover", "this.src='../imagenes/areas/bServiciosComplementariosAccion.png'");
        imagen.Attributes.Add("onmouseout", "this.src='../imagenes/areas/bServiciosComplementariosEstandar.png'");
        imagen.CssClass = "botones_menu_principal";
        link.Controls.Add(imagen);

        celdaTabla.Controls.Add(link);

        filaTabla.Cells.Add(celdaTabla);

        Table_MENU.Rows.Add(filaTabla);

        contadorFilas = 0;

        filaTabla = new TableRow();
        filaTabla.ID = "M1_row_" + contadorFilas.ToString();

        celdaTabla = new TableCell();
        celdaTabla.ID = "M1_row_1_" + contadorFilas.ToString();
        link = new HyperLink();
        link.ID = "link_volver";
        QueryStringSeguro["accion"] = "inicial";
        link.NavigateUrl = "~/contratacion/hojaTrabajoContratacion.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString());
        link.CssClass = "botones_menu_principal";
        imagen = new System.Web.UI.WebControls.Image();
        imagen.ImageUrl = "~/imagenes/areas/bVolverHojaTrabajoEstandar.png";
        imagen.Attributes.Add("onmouseover", "this.src='../imagenes/areas/bVolverHojaTrabajoAccion.png'");
        imagen.Attributes.Add("onmouseout", "this.src='../imagenes/areas/bVolverHojaTrabajoEstandar.png'");
        imagen.CssClass = "botones_menu_principal";
        link.Controls.Add(imagen);

        celdaTabla.Controls.Add(link);

        filaTabla.Cells.Add(celdaTabla);

        Table_MENU_1.Rows.Add(filaTabla);
    }
    private void cargar_seccion_solicitud_ingreso(Decimal ID_SOLICITUD, Decimal ID_EMPLEADO)
    {
        radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoSolicitud = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
        DataRow filaTablaInfoSolicitud = tablaInfoSolicitud.Rows[0];

        llenar_info_adicional_con_solicitud(filaTablaInfoSolicitud);

        auditoriaContratos _auditoriaContratos = new auditoriaContratos(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaUltimaAuditoria = _auditoriaContratos.ObtenerUltimaAuditoriaPorTablaYEmpleado(tabla.REG_SOLICITUDES_INGRESO, ID_EMPLEADO);
        if (tablaUltimaAuditoria.Rows.Count > 0)
        {
            DataRow filaInfoAuditoria = tablaUltimaAuditoria.Rows[0];
            Panel_CABEZA_SOLICITUD_INGRESO.BackColor = colorAuditado;
            Label_SOLICITUD_INGRESO_AUDITADO.Text = "(AUDITADO) - " + Convert.ToDateTime(filaInfoAuditoria["FECHA_AUDITORIA"]).ToShortDateString();
        }
        else
        {
            Panel_CABEZA_SOLICITUD_INGRESO.BackColor = colorSinAuditar;
            Label_SOLICITUD_INGRESO_AUDITADO.Text = "(SIN AUDITAR)";

            if (String.IsNullOrEmpty(HiddenField_SECCIONES_SIN_AUDITORIA.Value) == true)
            {
                HiddenField_SECCIONES_SIN_AUDITORIA.Value = SeccionesAuditoria.SolicitudIngreso.ToString();
            }
            else
            {
                HiddenField_SECCIONES_SIN_AUDITORIA.Value = ";" + SeccionesAuditoria.SolicitudIngreso.ToString();
            }
        }

        TextBox_ID_SOLICITUD.Text = filaTablaInfoSolicitud["ID_SOLICITUD"].ToString().Trim();
        TextBox_ID_SOLICITUD.Enabled = false;

        Label_ID_EMPLEADO.Text = ID_EMPLEADO.ToString();

        TextBox_APELLIDOS.Text = filaTablaInfoSolicitud["APELLIDOS"].ToString().Trim();
        TextBox_NOMBRES.Text = filaTablaInfoSolicitud["NOMBRES"].ToString().Trim();
        cargar_DropDownList_SEXO();
        DropDownList_SEXO.SelectedValue = filaTablaInfoSolicitud["SEXO"].ToString();
        TextBox_FCH_NACIMIENTO.Text = Convert.ToDateTime(filaTablaInfoSolicitud["FCH_NACIMIENTO"]).ToShortDateString();

        cargamos_DropDownList_TIP_DOC_IDENTIDAD();
        try
        {
            DropDownList_TIP_DOC_IDENTIDAD.SelectedValue = filaTablaInfoSolicitud["TIP_DOC_IDENTIDAD"].ToString().Trim();
        }
        catch
        {
            DropDownList_TIP_DOC_IDENTIDAD.SelectedIndex = 0;
        }

        TextBox_NUM_DOC_IDENTIDAD.Text = filaTablaInfoSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim();

        DataRow filaInfoCiudadYDepartamento = obtenerIdDepartamentoIdCiudad(filaTablaInfoSolicitud["CIU_CEDULA"].ToString().Trim());
        if (filaInfoCiudadYDepartamento != null)
        {
            cargar_DropDownList_DEPARTAMENTO_CEDULA();
            DropDownList_DEPARTAMENTO_CEDULA.SelectedValue = filaInfoCiudadYDepartamento["ID_DEPARTAMENTO"].ToString().Trim();

            cargar_DropDownList_CIU_CEDULA(filaInfoCiudadYDepartamento["ID_DEPARTAMENTO"].ToString().Trim());
            DropDownList_CIU_CEDULA.SelectedValue = filaInfoCiudadYDepartamento["ID_CIUDAD"].ToString().Trim();
        }
        else
        {
            cargar_DropDownList_DEPARTAMENTO_CEDULA();
            DropDownList_DEPARTAMENTO_CEDULA.Enabled = true;
            inhabilitar_DropDownList_CIU_CEDULA();
        }

        Ocultar(Acciones.libretaMilitar);
        if (DropDownList_SEXO.SelectedValue == "M")
        {
            Mostrar(Acciones.libretaMilitar);
            TextBox_LIB_MILITAR.Text = filaTablaInfoSolicitud["LIB_MILITAR"].ToString().Trim();
        }

        try
        {
            TextBox_ASPIRACION_SALARIAL.Text = Convert.ToInt32(filaTablaInfoSolicitud["ASPIRACION_SALARIAL"]).ToString();
        }
        catch
        {
            TextBox_ASPIRACION_SALARIAL.Text = "";
        }

        TextBox_TEL_ASPIRANTE.Text = filaTablaInfoSolicitud["TEL_ASPIRANTE"].ToString().Trim();
        TextBox_E_MAIL.Text = filaTablaInfoSolicitud["E_MAIL"].ToString().Trim();
        cargar_DropDownList_CAT_LIC_COND();
        try
        {
            DropDownList_CAT_LIC_COND.SelectedValue = filaTablaInfoSolicitud["CAT_LIC_COND"].ToString().Trim();
        }
        catch
        {
            DropDownList_CAT_LIC_COND.SelectedIndex = 0;
        }

        filaInfoCiudadYDepartamento = obtenerIdDepartamentoIdCiudad(filaTablaInfoSolicitud["CIU_ASPIRANTE"].ToString().Trim());
        if (filaInfoCiudadYDepartamento != null)
        {
            cargar_DropDownList_DEPARTAMENTO_ASPIRANTE();
            DropDownList_DEPARTAMENTO_ASPIRANTE.SelectedValue = filaInfoCiudadYDepartamento["ID_DEPARTAMENTO"].ToString().Trim();

            cargar_DropDownList_CIU_ASPIRANTE(filaInfoCiudadYDepartamento["ID_DEPARTAMENTO"].ToString().Trim());
            DropDownList_CIU_ASPIRANTE.SelectedValue = filaInfoCiudadYDepartamento["ID_CIUDAD"].ToString().Trim();
        }
        else
        {
            cargar_DropDownList_DEPARTAMENTO_ASPIRANTE();
            DropDownList_DEPARTAMENTO_CEDULA.Enabled = true;
            inhabilitar_DropDownList_CIU_ASPIRANTE();
        }
        TextBox_SECTOR.Text = filaTablaInfoSolicitud["SECTOR"].ToString();

        TextBox_DIR_ASPIRANTE.Text = filaTablaInfoSolicitud["DIR_ASPIRANTE"].ToString().Trim();
    }
    /// <summary>
    /// HECHO POR CESAR PULIDO
    /// EL DIA 19 DE DICIEMBRE DE 2012
    /// PARA OBTENER EL ARCHIVO CON LA INFORMACION DE LAS AFICLIACIONES DEL EMPLEADO
    /// </summary>
    /// <param name="ID_SOLICITUD"></param>
    /// <param name="ID_REQUERIMIENTO"></param>
    /// <param name="ID_EMPLEADO"></param>
    /// <returns></returns>
    public byte[] GenerarPDFAfiliaciones(Decimal ID_SOLICITUD, Decimal ID_REQUERIMIENTO, Decimal ID_EMPLEADO, Decimal ID_CONTRATO)
    {
        tools _tools = new tools();

        registroContrato _registroContrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoContrato = _registroContrato.obtenerInfoNomEmpleadoPorIdSolicitudIdRequerimiento(ID_SOLICITUD, ID_REQUERIMIENTO, ID_EMPLEADO);

        DataRow filaInfoContrato = tablaInfoContrato.Rows[0];

        Decimal ID_AFILIACION_ARP = Convert.ToDecimal(filaInfoContrato["ID_ARP"]);
        Decimal ID_AFILIACION_CAJA_C = Convert.ToDecimal(filaInfoContrato["ID_CAJA_C"]);
        Decimal ID_AFILIACION_EPS = Convert.ToDecimal(filaInfoContrato["ID_EPS"]);
        Decimal ID_AFILIACION_F_PENSIONES = Convert.ToDecimal(filaInfoContrato["ID_F_PENSIONES"]);

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

        String NOMBRE_ASPIRANTE = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim();
        String DOC_IDENTIDAD_ASPIRANTE = filaSolicitud["TIP_DOC_IDENTIDAD"].ToString().Trim() + " " + filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim();
        String DIRECCION_ASPIRANTE = filaSolicitud["DIR_ASPIRANTE"].ToString().Trim();
        String CIUDAD_ASPIRANTE = filaSolicitud["NOMBRE_CIUDAD"].ToString().Trim();
        String SECTOR_ASPIRANTE = filaSolicitud["SECTOR"].ToString();
        String TELEFONOS_ASPIRANTE = filaSolicitud["TEL_ASPIRANTE"].ToString();
        String ASPIRACION_SALARIAL_ASPIRANTE;
        try { ASPIRACION_SALARIAL_ASPIRANTE = Convert.ToInt32(filaSolicitud["ASPIRACION_SALARIAL"]).ToString(); }
        catch { ASPIRACION_SALARIAL_ASPIRANTE = "Desconocido."; }
        String EMAIL_ASPIRANTE = filaSolicitud["E_MAIL"].ToString().Trim();

        int EDAD_ASPIRANTE = 0;
        if (DBNull.Value.Equals(filaSolicitud["FCH_NACIMIENTO"]) == false)
        {
            try
            {
                EDAD_ASPIRANTE = _tools.ObtenerEdadDesdeFechaNacimiento(Convert.ToDateTime(filaSolicitud["FCH_NACIMIENTO"]));
            }
            catch
            {
                EDAD_ASPIRANTE = 0;
            }
        }

        //FEMENINO, MASCULINO
        String SEXO = "Desconocido.";
        String LIBRETA_MILITAR = "Desconocida.";
        if (DBNull.Value.Equals(filaSolicitud["SEXO"]) == false)
        {
            if (filaSolicitud["SEXO"].ToString().ToUpper() == "F")
            {
                SEXO = "Femenino";
                LIBRETA_MILITAR = "No Aplica";
            }
            else
            {
                if (filaSolicitud["SEXO"].ToString().ToUpper() == "M")
                {
                    SEXO = "Masculino";
                    LIBRETA_MILITAR = filaSolicitud["LIB_MILITAR"].ToString();
                }
            }
        }

        //cargo al que aspira el candidato (cargo generico)
        cargo _cargo = new cargo(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaOcupacionAspira = _cargo.ObtenerOcupacionPorIdOcupacion(ID_SOLICITUD);
        String CARGO_APLICA = "Desconocido";
        if (tablaOcupacionAspira.Rows.Count > 0)
        {
            DataRow filaOcupacionAspira = tablaOcupacionAspira.Rows[0];
            CARGO_APLICA = filaOcupacionAspira["NOM_OCUPACION"].ToString().Trim();
        }

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

        String html_formato_afilicaciones = archivo_original.ReadToEnd();

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

        String html_encabezado = "<html>";
        html_encabezado += "<body>";

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

        html_formato_afilicaciones = html_encabezado + html_formato_afilicaciones;

        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[NOMBRE_TRABAJADOR]", NOMBRE_ASPIRANTE);
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[DOC_IDENTIDAD_TRABAJADOR]", DOC_IDENTIDAD_ASPIRANTE);
        if (EDAD_ASPIRANTE > 0)
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[EDAD_TRABAJADOR]", EDAD_ASPIRANTE.ToString() + " Años.");
        }
        else
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[EDAD_ASPIRANTE]", "Desconocida.");
        }
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[DIRECCION_TRABAJADOR]", DIRECCION_ASPIRANTE);
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[CIUDAD_TRABAJADOR]", CIUDAD_ASPIRANTE);
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[SECTOR_TRABAJADOR]", SECTOR_ASPIRANTE);
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TELEFONOS_TRABAJADOR]", TELEFONOS_ASPIRANTE);
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[ASPIRACION_SALARIAL_TRABAJADOR]", ASPIRACION_SALARIAL_ASPIRANTE);
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[EMAIL_TRABAJADOR]", EMAIL_ASPIRANTE);
        html_formato_afilicaciones = html_formato_afilicaciones.Replace("[LIBRETA_MILITAR_TRABAJADOR]", LIBRETA_MILITAR);

        //reemplazamos tag de arp
        String TABLA_AFILIACION_ARP = cargar_arp(ID_AFILIACION_ARP, ID_SOLICITUD, ID_EMPLEADO, ID_CONTRATO);
        if (TABLA_AFILIACION_ARP != null)
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_ARP]", TABLA_AFILIACION_ARP);
        }
        else
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_ARP]", "");
        }

        //reemplazamos tag de eps
        String TABLA_AFILIACION_EPS = cargar_eps(ID_AFILIACION_EPS, ID_SOLICITUD, ID_EMPLEADO, ID_CONTRATO);
        if (TABLA_AFILIACION_EPS != null)
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_EPS]", TABLA_AFILIACION_EPS);
        }
        else
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_EPS]", "");
        }

        //reemplazamos tag de caja de compensacion
        String TABLA_AFILIACION_CCF = cargar_caja(ID_AFILIACION_CAJA_C, ID_SOLICITUD, ID_EMPLEADO);
        if (TABLA_AFILIACION_CCF != null)
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_CCF]", TABLA_AFILIACION_CCF);
        }
        else
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_CCF]", "");
        }

        //reemplazamos tag de FONDO DE PENSIONES
        String TABLA_AFILIACION_AFP = cargar_afp(ID_AFILIACION_F_PENSIONES, ID_SOLICITUD, ID_EMPLEADO);
        if (TABLA_AFILIACION_AFP != null)
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_AFP]", TABLA_AFILIACION_AFP);
        }
        else
        {
            html_formato_afilicaciones = html_formato_afilicaciones.Replace("[TABLA_AFILIACION_AFP]", "");
        }

        html_formato_afilicaciones += 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), 40, 40, 80, 40);

        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 = "afiliaciones";

            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_afilicaciones);
            }

            //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 Button_DevolverEnCliente_Click(object sender, EventArgs e)
    {
        radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaSolicitud = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(HiddenField_ID_SOLICITUD.Value));

        if (tablaSolicitud.Rows.Count <= 0)
        {
            if (_radicacionHojasDeVida.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _radicacionHojasDeVida.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información ", Proceso.Advertencia);
            }
        }
        else
        {
            DataRow filaSolicitud = tablaSolicitud.Rows[0];

            Int32 ID_REQUERIMIENTO = Convert.ToInt32(filaSolicitud["ID_REQUERIMIENTO"]);
            Int32 ID_SOLICITUD = Convert.ToInt32(filaSolicitud["ID_SOLICITUD"]);

            Boolean resultado = _radicacionHojasDeVida.ActualizarEstadoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, "DISPONIBLE");

            if (resultado == true)
            {
                Ocultar(Acciones.Inicio);
                Desactivar(Acciones.Inicio);
                Mostrar(Acciones.Cargar);

                Cargar(ID_SOLICITUD);

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La solicitud de ingreso de " + TextBox_NOMBRES.Text + " " + TextBox_APELLIDOS.Text + " Se actualizazó correctamente. El candidato ahora se encuentra DISPONIBLE.", Proceso.Correcto);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _radicacionHojasDeVida.MensajeError, Proceso.Error);
            }
        }
    }
    /// <summary>
    /// HECHO POR CESAR PULIDO
    /// EL DIA 19 DE DICIEMBRE DE 2012
    /// PARA OBTENER LOS ARCHIVOS DE LOS AUTOS DE RECOMENDACION
    /// </summary>
    /// <returns></returns>
    public byte[] GenerarPDFExamenes(Decimal ID_CONTRATO, Decimal ID_SOLICITUD, Decimal ID_REQUERIMIENTO)
    {
        Boolean hayAutos = false;
        String armadoDeAutos = "";

        ordenExamenes _ordenes = new ordenExamenes(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaOrdenes = _ordenes.ObtenerConRegOrdenExamenPorSolicitud(Convert.ToInt32(ID_REQUERIMIENTO), Convert.ToInt32(ID_SOLICITUD));
        foreach (DataRow filaExamenes in tablaOrdenes.Rows)
        {
            //OBSERVACIONES ES EL CAMPO DONDE ESTA ALMACENADO EL AUTO DE RECOMENDACION SI EXISE
            if (!(String.IsNullOrEmpty(filaExamenes["OBSERVACIONES"].ToString().Trim())))
            {
                if (hayAutos == false)
                {
                    armadoDeAutos = filaExamenes["OBSERVACIONES"].ToString().Trim();
                }
                else
                {
                    armadoDeAutos += "; " + filaExamenes["OBSERVACIONES"].ToString().Trim();
                }
                hayAutos = true;
            }
        }

        if (hayAutos)
        {
            /*
            ---------------TAGS ENCONTRADOS EN AUTOS_RECOMENDACION-------------------
            [FECHA_AUTO]			= FECHA DE LA CABECERA DE LA APERTURA DE CUENTA
            [NOMBRE_TRABAJADOR]		= NOMBRE DEL BANCO
            [TELEFONO_TRABAJADOR]		= TELEFONO DEL TRABAJADOR
            [TIPO_DOCUMENTO_IDENTIDAD]	= tipo de documento del trabajador
            [NUMERO_DOCUMENTO_IDENTIDAD]	= numero del documento de identidad del trabajador
            [AUTOS_RECOMENDACION]		= nombre analista que firma
            [NOMBRE_EMPLEADOR]		= cartgo del que firma
            */

            radicacionHojasDeVida _sol = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaSol = _sol.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
            DataRow filaSol = tablaSol.Rows[0];

            //DATOS DEL INFORME
            DateTime FECHA_AUTO = DateTime.Now;
            String NOMBRE_TRABAJADOR = filaSol["NOMBRES"].ToString().Trim() + " " + filaSol["APELLIDOS"].ToString().Trim();
            String TELEFONO_TRABAJADOR = filaSol["TEL_ASPIRANTE"].ToString().Trim();
            String TIPO_DOCUMENTO_IDENTIDAD = filaSol["TIP_DOC_IDENTIDAD"].ToString().Trim();
            String NUMERO_DOCUMENTO_IDENTIDAD = filaSol["NUM_DOC_IDENTIDAD"].ToString().Trim();
            String AUTOS_RECOMENDACION = armadoDeAutos;
            String NOMBRE_EMPLEADOR = null;

            if (Session["idEmpresa"].ToString() == "1")
            {
                NOMBRE_EMPLEADOR = tabla.VAR_NOMBRE_SERTEMPO;
            }
            else
            {
                NOMBRE_EMPLEADOR = tabla.VAR_NOMBRE_EYS;
            }

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

            String html = archivo.ReadToEnd();

            archivo.Dispose();
            archivo.Close();

            html = html.Replace("[FECHA_AUTO]", FECHA_AUTO.ToLongDateString());
            html = html.Replace("[NOMBRE_TRABAJADOR]", NOMBRE_TRABAJADOR);
            html = html.Replace("[TELEFONO_TRABAJADOR]", TELEFONO_TRABAJADOR);
            html = html.Replace("[TIPO_DOCUMENTO_IDENTIDAD]", TIPO_DOCUMENTO_IDENTIDAD);
            html = html.Replace("[NUMERO_DOCUMENTO_IDENTIDAD]", NUMERO_DOCUMENTO_IDENTIDAD);
            html = html.Replace("[AUTOS_RECOMENDACION]", AUTOS_RECOMENDACION);
            html = html.Replace("[NOMBRE_EMPLEADOR]", NOMBRE_EMPLEADOR);
            html = html.Replace("[DIR_FIRMA_SALUD]", tabla.DIR_IMAGENES_PARA_PDF + "/firma_autos_recomendacion.jpg");

            //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(612, 397), 25, 25, 75, 30);

            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
                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 = "autos_recomendacion";

                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);
                }

                //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();
            }
        }
        else
        {
            return null;
        }
    }
    private void CargarInterfazCOIdEspecifico(Decimal ID_SOLICITUD)
    {
        radicacionHojasDeVida _rad = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaSolicitud = _rad.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));

        if (tablaSolicitud.Rows.Count <= 0)
        {
            Ocultar(Acciones.Inicio);
            Mostrar(Acciones.Inicio);
            Cargar(Acciones.Inicio);

            Informar(Panel_MENSAJES, Label_MENSAJE, "No se encontró información de la Solicitud de Ingreso seleccionada.", Proceso.Error);
        }
        else
        {
            DataRow filaSolicitud = tablaSolicitud.Rows[0];

            String NOMBRE_PERSONA_SELECCIONADA = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim();
            String NUM_DOCUMENTO_PERSONA_SELECCIONADA = filaSolicitud["TIP_DOC_IDENTIDAD"].ToString().Trim() + " " + filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim();
            String MAIL_PERSONA_SELECCIONADA = filaSolicitud["E_MAIL"].ToString().Trim();
            String DIRECCION_PERSONA_SELECCIONADA = filaSolicitud["DIR_ASPIRANTE"].ToString().Trim();
            String TELEFONO_PERSONA_SELECCIONADA = filaSolicitud["TEL_ASPIRANTE"].ToString().Trim();

            registroContrato _registroContrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaContratos = _registroContrato.ObtenerContratosPorIdSolicitud(ID_SOLICITUD);

            cargar_datos_persona_seleccionada(ID_SOLICITUD, NOMBRE_PERSONA_SELECCIONADA, NUM_DOCUMENTO_PERSONA_SELECCIONADA, MAIL_PERSONA_SELECCIONADA, DIRECCION_PERSONA_SELECCIONADA, TELEFONO_PERSONA_SELECCIONADA);

            Ocultar(Acciones.Inicio);

            if (tablaContratos.Rows.Count <= 0)
            {
                if (_registroContrato.MensajeError == null)
                {
                    Mostrar(Acciones.sinContratos);
                    Informar(Panel_MENSAJES, Label_MENSAJE, "No se encontraron contratos asociados a la persona seleccionada.", Proceso.Error);
                }
                else
                {
                    Mostrar(Acciones.sinContratos);
                    Informar(Panel_MENSAJES, Label_MENSAJE, _registroContrato.MensajeError, Proceso.Error);
                }
            }
            else
            {
                Mostrar(Acciones.cargarContratos);
                Cargar(tablaContratos);
            }
        }
    }
    private void Cargar(Decimal ID_SOLICITUD)
    {
        HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString();

        Decimal ID_ENTREVISTA = 0;

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

        DataTable tablaSolicitud = _rad.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
        DataRow filaSolicitud = tablaSolicitud.Rows[0];

        hojasVida _hoja = new hojasVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaEntrevista = _hoja.ObtenerSelRegEntrevistasPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));

        if(tablaEntrevista.Rows.Count > 0)
        {
            DataRow filaEntrevista = tablaEntrevista.Rows[0];

            ID_ENTREVISTA = Convert.ToDecimal(filaEntrevista["REGISTRO"]);
        }

        CargarControlRegistros(filaSolicitud);

        CargarDatosBasicos(filaSolicitud);

        CargarUbicacion(filaSolicitud);

        CargarEducacion(filaSolicitud, ID_ENTREVISTA);
        inhabilitarFilasGrilla(GridView_EducacionFormal, 2);
        inhabilitarFilasGrilla(GridView_EducacionNoFormal, 2);

        CargarDatosLaborales(filaSolicitud, ID_ENTREVISTA);
        inhabilitarFilasGrilla(GridView_ExperienciaLaboral, 2);

        CargarFamilia(filaSolicitud, ID_ENTREVISTA);
        inhabilitarFilasGrilla(GridView_ComposicionFamiliar, 2);

        CargardatosAdicionales(filaSolicitud);

        ComprobarTodasLasPestanas(false);
        HiddenField_IndexTab.Value = "0";
        SetActivoTab(0);
    }
    private void Cargar(Decimal ID_SOLICITUD)
    {
        HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString();

        Decimal ID_ENTREVISTA = 0;

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

        DataTable tablaSolicitud = _rad.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
        DataRow filaSolicitud = tablaSolicitud.Rows[0];

        hojasVida _hoja = new hojasVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaEntrevista = _hoja.ObtenerSelRegEntrevistasPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));

        if (tablaEntrevista.Rows.Count > 0)
        {
            DataRow filaEntrevista = tablaEntrevista.Rows[0];

            ID_ENTREVISTA = Convert.ToDecimal(filaEntrevista["REGISTRO"]);
        }

        CargarFamilia(filaSolicitud, ID_ENTREVISTA);
    }
    protected void DropDownList_ID_TRABAJADOR_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownList_ID_TRABAJADOR.SelectedIndex <= 0)
        {
            Ocultar(Acciones.EmpleadoSeleccionado);

            HiddenField_ID_EMPLEADO.Value = "";
            HiddenField_ID_CONTRATO.Value = "";
            HiddenField_ID_PERFIL.Value = "";
            HiddenField_ID_SOLICITUD.Value = "";
            HiddenField_ID_REFERENCIA.Value = "";
            HiddenField_ID_REQUERIMIENTO.Value = "";
        }
        else
        {
            Ocultar(Acciones.EmpleadoSeleccionado);
            Mostrar(Acciones.EmpleadoSeleccionado);

            Decimal ID_SOLICITUD = Convert.ToDecimal(DropDownList_ID_TRABAJADOR.SelectedValue);
            HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString();

            HiddenField_ID_EMPLEADO.Value = "";
            HiddenField_ID_CONTRATO.Value = "";
            HiddenField_ID_PERFIL.Value = "";
            HiddenField_ID_REFERENCIA.Value = "";
            HiddenField_ID_REQUERIMIENTO.Value = "";

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

            registroContrato _registroContrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaContratos = _registroContrato.ObtenerContratosPorIdSolicitud(ID_SOLICITUD);

            Label_NOMBRE_TRABAJADOR.Text = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim();
            Label_TIP_DOC_IDENTIDAD.Text = filaSolicitud["TIP_DOC_IDENTIDAD"].ToString().Trim() + " ";
            Label_NUM_DOC_IDENTIDAD.Text = filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim();
            Label_RAZ_SOCIAL.Text = DropDownList_ID_EMPRESA.SelectedItem.Text;

            Cargar(tablaContratos);
        }
    }
    protected void Button_IMPRIMIR_AUTOS_Click(object sender, EventArgs e)
    {
        Decimal ID_SOLICITUD = Convert.ToDecimal(TextBox_ID_SOLICITUD.Text);
        Decimal ID_REQUISICION = Convert.ToDecimal(HiddenField_ID_REQUERIMIENTO.Value);
        String EMPRESA = null;

        Boolean hayAutos = false;
        String armadoDeAutos = "";

        ordenExamenes _ordenes = new ordenExamenes(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaOrdenes = _ordenes.ObtenerConRegOrdenExamenPorSolicitud(Convert.ToInt32(ID_REQUISICION), Convert.ToInt32(ID_SOLICITUD));
        foreach (DataRow filaExamenes in tablaOrdenes.Rows)
        {
            if (!(String.IsNullOrEmpty(filaExamenes["OBSERVACIONES"].ToString().Trim())))
            {
                if (hayAutos == false)
                {
                    armadoDeAutos = filaExamenes["OBSERVACIONES"].ToString().Trim();
                }
                else
                {
                    armadoDeAutos += "; " + filaExamenes["OBSERVACIONES"].ToString().Trim();
                }
                hayAutos = true;
            }
        }

        if (hayAutos)
        {

            radicacionHojasDeVida _sol = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaSol = _sol.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
            DataRow filaSol = tablaSol.Rows[0];

            DateTime FECHA_AUTO = DateTime.Now;
            String NOMBRE_TRABAJADOR = TextBox_NOMBRES.Text.Trim() + " " + TextBox_APELLIDOS.Text.Trim();
            String TELEFONO_TRABAJADOR = TextBox_TEL_ASPIRANTE.Text.Trim();
            String TIPO_DOCUMENTO_IDENTIDAD = DropDownList_TIP_DOC_IDENTIDAD.SelectedValue;
            String NUMERO_DOCUMENTO_IDENTIDAD = TextBox_NUM_DOC_IDENTIDAD.Text.Trim();
            String AUTOS_RECOMENDACION = armadoDeAutos;
            String NOMBRE_EMPLEADOR = null;
            if (Session["idEmpresa"].ToString() == "1")
            {
                NOMBRE_EMPLEADOR = tabla.VAR_NOMBRE_SERTEMPO;
            }
            else
            {
                NOMBRE_EMPLEADOR = tabla.VAR_NOMBRE_EYS;
            }

            StreamReader archivo = new StreamReader(Server.MapPath(@"~\plantillas_reportes\autos_recomendacion.htm"));

            String html = archivo.ReadToEnd();

            archivo.Dispose();
            archivo.Close();

            html = html.Replace("[FECHA_AUTO]", FECHA_AUTO.ToLongDateString());
            html = html.Replace("[NOMBRE_TRABAJADOR]", NOMBRE_TRABAJADOR);
            html = html.Replace("[TELEFONO_TRABAJADOR]", TELEFONO_TRABAJADOR);
            html = html.Replace("[TIPO_DOCUMENTO_IDENTIDAD]", TIPO_DOCUMENTO_IDENTIDAD);
            html = html.Replace("[NUMERO_DOCUMENTO_IDENTIDAD]", NUMERO_DOCUMENTO_IDENTIDAD);
            html = html.Replace("[AUTOS_RECOMENDACION]", AUTOS_RECOMENDACION);
            html = html.Replace("[NOMBRE_EMPLEADOR]", NOMBRE_EMPLEADOR);
            html = html.Replace("[DIR_FIRMA_SALUD]", tabla.DIR_IMAGENES_PARA_PDF + "/firma_autos_recomendacion.jpg");

            String filename = "auto_recomendacion_" + ID_SOLICITUD.ToString();

            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;FileName=" + filename + ".pdf");

            Response.Clear();
            Response.ContentType = "application/pdf";

            iTextSharp.text.Document document = new iTextSharp.text.Document(new Rectangle(612, 397), 25, 25, 75, 30);

            iTextSharp.text.pdf.PdfWriter writer = PdfWriter.GetInstance(document, Response.OutputStream);

            pdfEvents PageEventHandler = new pdfEvents();
            writer.PageEvent = PageEventHandler;

            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 = "autos_recomendacion";

            document.Open();

            String tempFile = Path.GetTempFileName();

            using (StreamWriter tempwriter = new StreamWriter(tempFile, false))
            {
                tempwriter.Write(html);
            }

            List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StreamReader(tempFile), new StyleSheet());
            foreach (IElement element in htmlarraylist)
            {
                document.Add(element);
            }

            document.Close();
            writer.Close();

            Response.End();

            File.Delete(tempFile);
        }
    }
    /// <summary>
    /// HECHO POR CESAR PULIDO
    /// EL DIA 18 DE DICIMEBRE DE 2012
    /// PARA GENERAR LA ENTRVISTA CON O SIN COMPETENCIAS
    /// </summary>
    /// <returns></returns>
    public byte[] GenerarPDFEntrevista(Decimal ID_SOLICITUD, Decimal ID_PERFIL)
    {
        //ok
        tools _tools = new tools();

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

        String NOMBRE_ASPIRANTE = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim();

        String DOC_IDENTIDAD_ASPIRANTE = filaSolicitud["TIP_DOC_IDENTIDAD"].ToString().Trim() + " " + filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim();

        int EDAD_ASPIRANTE = 0;
        if (DBNull.Value.Equals(filaSolicitud["FCH_NACIMIENTO"]) == false)
        {
            try
            { EDAD_ASPIRANTE = _tools.ObtenerEdadDesdeFechaNacimiento(Convert.ToDateTime(filaSolicitud["FCH_NACIMIENTO"])); }
            catch { EDAD_ASPIRANTE = 0; }
        }

        String TIPO_VIVIENDA_ASPIRANTE = "Desconocida";
        if(DBNull.Value.Equals(filaSolicitud["TIPO_VIVIENDA"]) == false)
        {
            TIPO_VIVIENDA_ASPIRANTE = filaSolicitud["TIPO_VIVIENDA"].ToString().Trim();
        }

        String CIUDAD_ASPIRANTE = "Desconocida";
        if (DBNull.Value.Equals(filaSolicitud["NOMBRE_CIUDAD"]) == false)
        {
            CIUDAD_ASPIRANTE = filaSolicitud["NOMBRE_CIUDAD"].ToString().Trim();
        }

        String DIRECCION_ASPIRANTE = filaSolicitud["DIR_ASPIRANTE"].ToString().Trim();

        String SECTOR_ASPIRANTE = filaSolicitud["SECTOR"].ToString().Trim();

        String ESTRATO_ASPIRANTE = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["ESTRATO"]) == false) { ESTRATO_ASPIRANTE = filaSolicitud["ESTRATO"].ToString().Trim(); }

        String TELEFONOS_ASPIRANTE = filaSolicitud["TEL_ASPIRANTE"].ToString();

        String ASPIRACION_SALARIAL_ASPIRANTE;
        try { ASPIRACION_SALARIAL_ASPIRANTE = Convert.ToInt32(filaSolicitud["ASPIRACION_SALARIAL"]).ToString(); }
        catch { ASPIRACION_SALARIAL_ASPIRANTE = "Desconocido."; }

        String ESTADO_CIVIL = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["ESTADO_CIVIL"]) == false)
        {
            ESTADO_CIVIL = filaSolicitud["ESTADO_CIVIL"].ToString().Trim();
        }

        String EMAIL_ASPIRANTE = filaSolicitud["E_MAIL"].ToString().Trim();

        //FEMENINO, MASCULINO
        String SEXO = "Desconocido.";
        String LIBRETA_MILITAR = "Desconocida.";
        if (DBNull.Value.Equals(filaSolicitud["SEXO"]) == false)
        {
            if (filaSolicitud["SEXO"].ToString().ToUpper() == "F")
            {
                SEXO = "Femenino";
                LIBRETA_MILITAR = "No Aplica";
            }
            else
            {
                if (filaSolicitud["SEXO"].ToString().ToUpper() == "M")
                {
                    SEXO = "Masculino";
                    LIBRETA_MILITAR = filaSolicitud["LIB_MILITAR"].ToString();
                }
            }
        }

        //cargo al que aspira el candidato (cargo generico)
        String CARGO_APLICA = "Desconocido";
        Decimal ID_OCUPACION = 0;
        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPerfil = new DataTable();
        Decimal ID_ASSESMENT_CENTER = 0;

        if (ID_PERFIL <= 0)
        {
            CARGO_APLICA = "Entrevista por Producción.";
            ID_ASSESMENT_CENTER = 0;
        }
        else
        {
            tablaPerfil = _perfil.ObtenerPorRegistro(ID_PERFIL);
            if (tablaPerfil.Rows.Count <= 0)
            {
                CARGO_APLICA = "Desconocido.";
                ID_ASSESMENT_CENTER = 0;
            }
            else
            {
                DataRow filaPerfil = tablaPerfil.Rows[0];
                try
                {
                    ID_OCUPACION = Convert.ToDecimal(filaPerfil["ID_OCUPACION"]);
                }
                catch
                {
                    ID_OCUPACION = 0;
                }

                if (ID_OCUPACION > 0)
                {
                    cargo _cargo = new cargo(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    DataTable tablaOcupacionAspira = _cargo.ObtenerOcupacionPorIdOcupacion(ID_OCUPACION);

                    if (tablaOcupacionAspira.Rows.Count > 0)
                    {
                        DataRow filaOcupacionAspira = tablaOcupacionAspira.Rows[0];
                        CARGO_APLICA = filaOcupacionAspira["NOM_OCUPACION"].ToString().Trim();
                    }
                }

                //DETERMINAMOS SI SE TIENE UN ID_ASSESMENT_CENTER ASOCIADO AL PERFIL
                if(filaPerfil["TIPO_ENTREVISTA"].ToString().Trim() == "A")
                {
                    try
                    {
                        ID_ASSESMENT_CENTER = Convert.ToDecimal(filaPerfil["ID_ASSESMENT_CENTAR"]);
                    }
                    catch
                    {
                        ID_ASSESMENT_CENTER = 0;
                    }
                }
                else
                {
                    ID_ASSESMENT_CENTER = 0;
                }
            }
        }

        //si la entrevista basica existe ya
        hojasVida _hojasVida = new hojasVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaEntrevista = _hojasVida.ObtenerSelRegEntrevistasPorIdSolicitud(ID_SOLICITUD);

        String FECHA_ENTREVISTA = "Desconocida.";
        String COMPOSICION_FAMILIAR_ASPIRANTE = "Desconocida.";
        String INFO_ACADEMICA_ASPIRANTE = "Desconocida.";
        String EXPERIENCIA_LAB_ASPIRANTE = "Desconocida.";
        String CONCEPTO_GENERAL = "Desconodido.";
        String USUARIO_ENTREVISTADOR = Session["USU_LOG"].ToString();

        Decimal ID_ENTREVISTA = 0;

        if (tablaEntrevista.Rows.Count > 0)
        {
            DataRow filaEntrevista = tablaEntrevista.Rows[0];

            ID_ENTREVISTA = Convert.ToDecimal(filaEntrevista["REGISTRO"]);

            try
            {
                FECHA_ENTREVISTA = Convert.ToDateTime(filaEntrevista["FCH_ENTREVISTA"]).ToShortDateString();
            }
            catch
            {
                FECHA_ENTREVISTA = "Desconocida.";
            }

            COMPOSICION_FAMILIAR_ASPIRANTE = filaEntrevista["COM_C_FAM"].ToString().Trim();
            INFO_ACADEMICA_ASPIRANTE = filaEntrevista["COM_C_ACA"].ToString().Trim();
            EXPERIENCIA_LAB_ASPIRANTE = filaEntrevista["COM_F_LAB"].ToString().Trim();
            CONCEPTO_GENERAL = filaEntrevista["COM_C_GEN"].ToString().Trim();

            if (DBNull.Value.Equals(filaEntrevista["USU_MOD"]) == false)
            {
                USUARIO_ENTREVISTADOR = filaEntrevista["USU_MOD"].ToString().Trim();
            }
            else
            {
                USUARIO_ENTREVISTADOR = filaEntrevista["USU_CRE"].ToString().Trim();
            }
        }

        String NIVEL_ESCOLARIDAD = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["NIVEL_ESCOLARIDAD"]) == false)
        {
            if (filaSolicitud["NIVEL_ESCOLARIDAD"].ToString().Trim() == "NO REQUERIDO")
            {
                NIVEL_ESCOLARIDAD = "NO APLICA";
            }
            else
            {
                NIVEL_ESCOLARIDAD = filaSolicitud["NIVEL_ESCOLARIDAD"].ToString().Trim();
            }
        }

        String PROFESION_ASPIRANTE = "Desconocida";
        if (DBNull.Value.Equals(filaSolicitud["ID_NUCLEO_FORMACION"]) == false)
        {
            PROFESION_ASPIRANTE = filaSolicitud["ID_NUCLEO_FORMACION"].ToString().Trim();
        }

        String ESPECIALIZACION_ASPIRANTE = "Desconocida";
        if (DBNull.Value.Equals(filaSolicitud["AREA_INTERES"]) == false)
        {
            ESPECIALIZACION_ASPIRANTE = filaSolicitud["AREA_INTERES"].ToString().Trim().ToUpper();
        }

        String CABEZA_FAMILIA = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["C_FMLIA"]) == false)
        {
            if (filaSolicitud["C_FMLIA"].ToString().Trim() == "S")
            {
                CABEZA_FAMILIA = "SI";
            }
            else
            {
                CABEZA_FAMILIA = "NO";
            }
        }

        String NUM_HIJOS = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["NRO_HIJOS"]) == false)
        {
            NUM_HIJOS = filaSolicitud["NRO_HIJOS"].ToString().Trim();
        }

        /*
         * Generación del archi de informe de selección
         * Stream con el contenido del pdf.
        */
        String html_encabezado = "<html>";
        html_encabezado += "<head>";
        html_encabezado += "</head>";
        html_encabezado += "<body>";

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

        //para el concepto general en entrevista o resultado de competencias.
        String html_concepto = "<div style=\"text-align: left; margin: 0 0 0 20px; text-decoration: underline; font-weight: bold;\">";
        html_concepto += "CONCEPTO DEL ENTREVISTADOR";
        html_concepto += "</div>";
        html_concepto += "<br />";
        html_concepto += "<div style=\"text-align: justify;\">";
        html_concepto += "[CONCEPTO_GENERAL]";
        html_concepto += "</div>";

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

        String html_formato_entrevista = html_encabezado + archivo_original.ReadToEnd();

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

        // -----------------------------------
        html_formato_entrevista = html_formato_entrevista.Replace("[CARGO_APLICA]", CARGO_APLICA);
        html_formato_entrevista = html_formato_entrevista.Replace("[FECHA_ENTREVISTA]", FECHA_ENTREVISTA);
        // -----------------------------------

        // -----------------------------------
        html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_ASPIRANTE]", NOMBRE_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[DOC_IDENTIDAD_ASPIRANTE]", DOC_IDENTIDAD_ASPIRANTE);

        if (EDAD_ASPIRANTE > 0) { html_formato_entrevista = html_formato_entrevista.Replace("[EDAD_ASPIRANTE]", EDAD_ASPIRANTE.ToString() + " Años."); }
        else { html_formato_entrevista = html_formato_entrevista.Replace("[EDAD_ASPIRANTE]", "Desconocida."); }

        html_formato_entrevista = html_formato_entrevista.Replace("[DIRECCION_ASPIRANTE]", DIRECCION_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[TIPO_VIVIENDA_ASPIRANTE]", TIPO_VIVIENDA_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[CIUDAD_ASPIRANTE]", CIUDAD_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[SECTOR_ASPIRANTE]", SECTOR_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[ESTRATO_ASPIRANTE]", ESTRATO_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[TELEFONOS_ASPIRANTE]", TELEFONOS_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[ASPIRACION_SALARIAL_ASPIRANTE]", ASPIRACION_SALARIAL_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[ESTADO_CIVIL_ASPIRANTE]", ESTADO_CIVIL);

        html_formato_entrevista = html_formato_entrevista.Replace("[EMAIL_ASPIRANTE]", EMAIL_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[LIBRETA_MILITAR]", LIBRETA_MILITAR);
        // -----------------------------------

        // -----------------------------------
        html_formato_entrevista = html_formato_entrevista.Replace("[COMPOSICION_FAMILIAR_ASPIRANTE]", COMPOSICION_FAMILIAR_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[INFO_ACADEMICA_ASPIRANTE]", INFO_ACADEMICA_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[EXPERIENCIA_LAB_ASPIRANTE]", EXPERIENCIA_LAB_ASPIRANTE);
        // -----------------------------------

        // -----------------------------------
        html_formato_entrevista = html_formato_entrevista.Replace("[NIVEL_ESCOLARIDAD]", NIVEL_ESCOLARIDAD);
        html_formato_entrevista = html_formato_entrevista.Replace("[PROFESION_ASPIRANTE]", PROFESION_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[ESPECIALIZACION_ASPIRANTE]", ESPECIALIZACION_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[CABEZA_FAMILIA]", CABEZA_FAMILIA);
        html_formato_entrevista = html_formato_entrevista.Replace("[NUM_HIJOS]", NUM_HIJOS);
        // -----------------------------------

        //TABLA DE COMPOSICION FAMILIAR
        String html_tabla_composicion_familiar = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
        html_tabla_composicion_familiar += "<tr>";
        html_tabla_composicion_familiar += "<td width=\"14%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_composicion_familiar += "PARENTESCO";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_composicion_familiar += "NOMBRES Y APELLIDOS";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"10%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_composicion_familiar += "EDAD";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"20%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_composicion_familiar += "¿A QUÉ SE DEDICA?";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"19%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_composicion_familiar += "VIVE EN";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"12%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_composicion_familiar += "VIVE CON EL CANDIDATO";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "</tr>";

        DataTable tablainfofamiliar = _hojasVida.ObtenerSelRegComposicionFamiliar(ID_ENTREVISTA);

        foreach(DataRow filaComposicion in tablainfofamiliar.Rows)
        {
            html_tabla_composicion_familiar += "<tr>";
            html_tabla_composicion_familiar += "<td width=\"14%\" style=\"text-align:left;\">";
            html_tabla_composicion_familiar += filaComposicion["ID_TIPO_FAMILIAR"].ToString().Trim();
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"25%\" style=\"text-align:left;\">";
            html_tabla_composicion_familiar += filaComposicion["NOMBRES"].ToString().Trim() + " " + filaComposicion["APELLIDOS"].ToString().Trim();
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"10%\" style=\"text-align:center;\">";
            try
            {
                html_tabla_composicion_familiar += _tools.ObtenerEdadDesdeFechaNacimiento(Convert.ToDateTime(filaComposicion["FECHA_NACIMIENTO"]));
            }
            catch
            {
                html_tabla_composicion_familiar += "Desconocida";
            }
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"20%\" style=\"text-align:left;\">";
            html_tabla_composicion_familiar += filaComposicion["PROFESION"].ToString().Trim();
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"19%\" style=\"text-align:left;\">";
            if (filaComposicion["ID_CIUDAD"].ToString().Trim() == "EXTRA")
            {
                html_tabla_composicion_familiar += "Extranjero";
            }
            else
            {
                html_tabla_composicion_familiar += filaComposicion["NOMBRE_CIUDAD"].ToString().Trim();
            }
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"12%\" style=\"text-align:center;\">";
            if(filaComposicion["VIVE_CON_EL"].ToString().Trim().ToUpper() == "TRUE")
            {
                html_tabla_composicion_familiar += "SI";
            }
            else
            {
                html_tabla_composicion_familiar += "NO";
            }
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "</tr>";
        }

        html_tabla_composicion_familiar += "</table>";
        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_COMPOSICION_FAMILIAR]", html_tabla_composicion_familiar);

        //EDUCACION FORMAL
        String html_tabla_educacion_formal = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
        html_tabla_educacion_formal += "<tr>";
        html_tabla_educacion_formal += "<td width=\"40%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_formal += "Grado de Instrucción alcanzado:<\br>Especialización, Profesional, Bachiller.";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_formal += "Institución";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "<td width=\"12%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_formal += "Año";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "<td width=\"23%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_formal += "Observaciones";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "</tr>";

        DataTable tablaEducacionFormal = _hojasVida.ObtenerSelRegInformacionAcademica(ID_ENTREVISTA, "FORMAL");

        foreach (DataRow filaEducacionFormal in tablaEducacionFormal.Rows)
        {
            html_tabla_educacion_formal += "<tr>";
            html_tabla_educacion_formal += "<td width=\"40%\" style=\"text-align:left;\">";
            html_tabla_educacion_formal += filaEducacionFormal["NOMBRE_NIVEL_ACADEMICO"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "<td width=\"25%\" style=\"text-align:left;\">";
            html_tabla_educacion_formal += filaEducacionFormal["INSTITUCION"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "<td width=\"12%\" style=\"text-align:center;\">";
            html_tabla_educacion_formal += filaEducacionFormal["ANNO"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "<td width=\"23%\" style=\"text-align:justify;\">";
            html_tabla_educacion_formal += filaEducacionFormal["OBSERVACIONES"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "</tr>";
        }

        html_tabla_educacion_formal += "</table>";
        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_EDUCACION_FORMAL]", html_tabla_educacion_formal);

        //EDUCACION NO FORMAL
        String html_tabla_educacion_no_formal = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
        html_tabla_educacion_no_formal += "<tr>";
        html_tabla_educacion_no_formal += "<td width=\"40%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_no_formal += "Cursos libres - Diplomados";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_no_formal += "Institución";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "<td width=\"12%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_no_formal += "Duración";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "<td width=\"23%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_no_formal += "Observaciones";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "</tr>";

        DataTable tablaEducacionNoFormal = _hojasVida.ObtenerSelRegInformacionAcademica(ID_ENTREVISTA, "NO FORMAL");

        foreach (DataRow filaEducacionNoFormal in tablaEducacionNoFormal.Rows)
        {
            html_tabla_educacion_no_formal += "<tr>";
            html_tabla_educacion_no_formal += "<td width=\"40%\" style=\"text-align:left;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["CURSO"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "<td width=\"25%\" style=\"text-align:left;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["INSTITUCION"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "<td width=\"12%\" style=\"text-align:center;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["DURACION"].ToString().Trim() + " " + filaEducacionNoFormal["UNIDAD_DURACION"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "<td width=\"23%\" style=\"text-align:justify;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["OBSERVACIONES"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "</tr>";
        }

        html_tabla_educacion_no_formal += "</table>";
        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_EDUCACION_NO_FORMAL]", html_tabla_educacion_no_formal);

        //EXPERIENCIA LABORAL
        String html_tabla_experiencia_laboral = "";
        DataTable tablaExperiencia = _hojasVida.ObtenerSelRegExperienciaLaboral(ID_ENTREVISTA);

        Int32 contador = 1;
        foreach (DataRow filaExperienciaLaboral in tablaExperiencia.Rows)
        {
            if (contador == 1)
            {
                html_tabla_experiencia_laboral += "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
            }
            else
            {
                html_tabla_experiencia_laboral += "<br><table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
            }

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += contador.ToString() + ". EMPRESA:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["EMPRESA"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "CARGO DESEMPEÑADO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["CARGO"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "FUNCIONES REALIZADAS:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["FUNCIONES"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "FECHA INGRESO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += Convert.ToDateTime(filaExperienciaLaboral["FECHA_INGRESO"]).ToShortDateString();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "FECHA RETIRO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            try
            {
                html_tabla_experiencia_laboral += Convert.ToDateTime(filaExperienciaLaboral["FECHA_RETIRO"]).ToShortDateString();
            }
            catch
            {
                html_tabla_experiencia_laboral += "";
            }
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "TIEMPO TRABAJADO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            Boolean correcto = true;
            DateTime fechaIngreso;
            DateTime fechaRetiro;
            try
            {
                fechaIngreso = Convert.ToDateTime(filaExperienciaLaboral["FECHA_INGRESO"]);
            }
            catch
            {
                correcto = false;
                fechaIngreso = new DateTime();
            }

            if (correcto == true)
            {
                Boolean conContratoVigente = true;
                try
                {
                    fechaRetiro = Convert.ToDateTime(filaExperienciaLaboral["FECHA_RETIRO"]);
                    conContratoVigente = false;
                }
                catch
                {
                    conContratoVigente = true;
                    fechaRetiro = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                }

                if (fechaRetiro < fechaIngreso)
                {
                    html_tabla_experiencia_laboral += "Error en fechas.";
                }
                else
                {
                    if (conContratoVigente == true)
                    {
                        html_tabla_experiencia_laboral += "Lleva trabajando: " + _tools.DiferenciaFechas(fechaRetiro, fechaIngreso);
                    }
                    else
                    {
                        html_tabla_experiencia_laboral += "Trabajó: " + _tools.DiferenciaFechas(fechaRetiro, fechaIngreso);
                    }
                }
            }
            else
            {
                html_tabla_experiencia_laboral += "Desconocido.";
            }
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "MOTIVO_RETIRO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["MOTIVO_RETIRO"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "ULTIMO SALARIO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += String.Format("$ {0:N2}", Convert.ToDecimal(filaExperienciaLaboral["ULTIMO_SALARIO"]));
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "</table>";

            contador += 1;
        }

        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_EXPERIENCIA_LABORAL]", html_tabla_experiencia_laboral);

        //ahora: si es entrevista por produccion se debe determinar que pruebas se han aplicado al candidato
        //y mostrarlas en el informe de seleccion
        //lo mismo con habilidades / competencias

        pruebaPerfil _pruebaPerfil = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        FabricaAssesment _fabrica = new FabricaAssesment(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaPruebas = new DataTable();
        DataTable tablaAssesmentCenter = new DataTable();
        DataTable tablaCompetencias = new DataTable();
        String TIPO_ENTREVISTA = String.Empty;
        if (ID_PERFIL <= 0)
        {
            //ES ENTREVISTA POR PRODUCCION
            tablaPruebas = _pruebaPerfil.ObtenerAplicadasAIdSolicitudConResultados(ID_SOLICITUD);
            tablaCompetencias = _fabrica.ObtenerAplicacionCompetenciasPorSolicitudIngreso(ID_SOLICITUD);
            if (tablaCompetencias.Rows.Count <= 0)
            {
                TIPO_ENTREVISTA = "B";
            }
            else
            {
                TIPO_ENTREVISTA = "A";
            }
        }
        else
        {
            //es entrevista asociada a perfil entonces cargamos lo pertinente a ese perfil
            tablaPruebas = _pruebaPerfil.ObtenerPorIdPerfilConResultadosIdSolicitud(ID_PERFIL, ID_SOLICITUD);

            if (ID_ASSESMENT_CENTER > 0)
            {
                TIPO_ENTREVISTA = "A";
                //se tiene un assesmentcenter associado
                tablaAssesmentCenter = _fabrica.ObtenerAssesmentCentePorId(ID_ASSESMENT_CENTER);
                tablaCompetencias = _fabrica.ObtenerCompetenciasAssesmentCenteActivos(ID_ASSESMENT_CENTER, ID_SOLICITUD);
            }
            else
            {
                TIPO_ENTREVISTA = "B";
            }
        }

        //AHORA SI SEGUN LOS ObTENIDOS DE LAS TABLAS SE MUESTRA EN EL INFORME.
        if (tablaPruebas.Rows.Count > 0)
        {
            String html_resultados_pruebas;
            html_resultados_pruebas = "<br />";
            html_resultados_pruebas += "<div style=\"text-align: left; margin: 0 0 0 20px; text-decoration: underline; font-weight: bold;\">";
            html_resultados_pruebas += "RESULTADO DE PRUEBAS PSICOTÉCNICAS";
            html_resultados_pruebas += "</div>";

            for (int i = 0; i < tablaPruebas.Rows.Count; i++)
            {
                DataRow filaPrueba = tablaPruebas.Rows[i];

                String NOM_PRUEBA = filaPrueba["NOM_PRUEBA"].ToString().Trim();
                String RESULTADO = filaPrueba["RESULTADOS"].ToString().Trim();

                html_resultados_pruebas += "<br />";
                html_resultados_pruebas += "<div style=\"text-align: left; margin: 0 0 0 20px; font-weight: bold; font-size:9px;\">";
                html_resultados_pruebas += NOM_PRUEBA;
                html_resultados_pruebas += "</div>";
                html_resultados_pruebas += "<div style=\"text-align: justify;\">";
                if (String.IsNullOrEmpty(RESULTADO) == false)
                {
                    html_resultados_pruebas += RESULTADO;
                }
                else
                {
                    html_resultados_pruebas += "Desconocido.";
                }
                html_resultados_pruebas += "</div>";
            }

            html_resultados_pruebas += "<br />";
            html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_RESULTADO_PRUEBAS]", html_resultados_pruebas);
        }
        else
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_RESULTADO_PRUEBAS]", "<br />");
        }

        //FORMATO DE ASSESMENT CENTER
        if (TIPO_ENTREVISTA.Contains("A") == true)
        {
            String NOMBRE_ASSESMENT = "";
            if (tablaAssesmentCenter.Rows.Count > 0)
            {
                DataRow filaAssesment = tablaAssesmentCenter.Rows[0];
                NOMBRE_ASSESMENT = filaAssesment["NOMBRE_ASSESMENT"].ToString().Trim();
            }

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

            String html_formato_assesment_center = archivo_original.ReadToEnd();

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

            String html_tabla_assesment = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
            html_tabla_assesment += "<tr>";
            html_tabla_assesment += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_assesment += "COMPETENCIA / HABILIDAD";
            html_tabla_assesment += "</td>";
            html_tabla_assesment += "<td width=\"35%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_assesment += "CALIFICACIÓN";
            html_tabla_assesment += "</td>";
            html_tabla_assesment += "<td width=\"40%\" style=\"text-align:center; font-weight: bold; \">";
            html_tabla_assesment += "OBSERVACIONES";
            html_tabla_assesment += "</td>";
            html_tabla_assesment += "</tr>";

            foreach (DataRow filaCalificacionCompetencias in tablaCompetencias.Rows)
            {
                html_tabla_assesment += "<tr>";
                html_tabla_assesment += "<td width=\"25%\" style=\"text-align:left; \">";
                html_tabla_assesment += filaCalificacionCompetencias["COMPETENCIA"].ToString().Trim();
                html_tabla_assesment += "</td>";
                html_tabla_assesment += DevuelveTdsConCalificacionSegunDataRow(filaCalificacionCompetencias);
                html_tabla_assesment += "<td width=\"40%\" style=\"text-align:justify; \">";
                html_tabla_assesment += filaCalificacionCompetencias["OBSERVACIONES"].ToString().Trim();
                html_tabla_assesment += "</td>";
            }

            html_tabla_assesment += "</table>";

            html_formato_assesment_center = html_formato_assesment_center.Replace("[NOMBRE_ASSESMENT]", NOMBRE_ASSESMENT);
            html_formato_assesment_center = html_formato_assesment_center.Replace("[TABLA_DE_ASSESMENT_CENTER]", html_tabla_assesment);
            html_formato_entrevista = html_formato_entrevista.Replace("[FORMATO_EVALUACION_ASSESMENTCENTER]", html_formato_assesment_center);
        }
        else
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[FORMATO_EVALUACION_ASSESMENTCENTER]", "");
        }

        // concepto general
        html_concepto = html_concepto.Replace("[CONCEPTO_GENERAL]", CONCEPTO_GENERAL);
        // concepto general
        html_formato_entrevista = html_formato_entrevista.Replace("[CONCEPTO_GENERAL]", html_concepto);

        // USUARIO QUE HIZO LA ENTREVISTA
        usuario _usuario = new usuario(Session["idEmpresa"].ToString());
        DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(USUARIO_ENTREVISTADOR); //ACA VA ES EL DE LA ENTREVISTA
        DataRow filaUsuario = tablaUsuario.Rows[0];

        if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA")
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_PSICOLOGO]", filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim());
        }
        else
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_PSICOLOGO]", filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim());
        }

        html_formato_entrevista = html_formato_entrevista.Replace("[CARGO_SICOLOGO]", "Psicólogo de Selección");

        html_formato_entrevista += 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), 50, 50, 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 = "entrevista";

            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_entrevista);
            }

            //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(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;
        }
    }
    public byte[] GenerarPDFEntrevistaRetiro(Decimal ID_EMPLEADO, Decimal ID_SOLICITUD, Decimal ID_EMPRESA)
    {
        String USULOG_ENTREVISTA = Session["USU_LOG"].ToString();

        tools _tools = new tools();

        // OBTENEMOS INFORMACION DE USUARIO
        usuario _usuario = new usuario(Session["idEmpresa"].ToString());
        DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(USULOG_ENTREVISTA); //ACA VA ES EL DE LA ENTREVISTA
        DataRow filaUsuario = tablaUsuario.Rows[0];

        String NOMBRE_DILIGENCIA = "";
        if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA")
        {
            NOMBRE_DILIGENCIA = filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim();
        }
        else
        {
            NOMBRE_DILIGENCIA = filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim();
        }

        //OBTENEMOS LA INFORMACION DEL CLIENTE
        cliente _cliente = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCliente = _cliente.ObtenerEmpresaConIdEmpresa(ID_EMPRESA);
        DataRow filaCliente = tablaCliente.Rows[0];

        String RAZ_SOCIAL = filaCliente["RAZ_SOCIAL"].ToString().Trim();
        String NIT_EMPRESA = filaCliente["NIT_EMPRESA"].ToString().Trim() + "-" + filaCliente["DIG_VER"].ToString().Trim();
        String DIR_EMPRESA = filaCliente["DIR_EMP"].ToString().Trim() + " " + filaCliente["ID_CIUDAD_EMPRESA"].ToString().Trim();

        //OBTENEMOS LA INFORMACION DE LA SOLICITUD DE INGRESO
        radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaSolicitud = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));
        DataRow filaSolicitud = tablaSolicitud.Rows[0];

        String NOMBRE_ASPIRANTE = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim();
        String DOC_IDENTIDAD_ASPIRANTE = filaSolicitud["TIP_DOC_IDENTIDAD"].ToString().Trim() + " " + filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim();
        int EDAD_ASPIRANTE = 0;
        if (DBNull.Value.Equals(filaSolicitud["FCH_NACIMIENTO"]) == false)
        {
            try
            {
                EDAD_ASPIRANTE = _tools.ObtenerEdadDesdeFechaNacimiento(Convert.ToDateTime(filaSolicitud["FCH_NACIMIENTO"]));
            }
            catch
            {
                EDAD_ASPIRANTE = 0;
            }
        }
        String DIRECCION_ASPIRANTE = filaSolicitud["DIR_ASPIRANTE"].ToString().Trim();
        String CIUDAD_ASPIRANTE = filaSolicitud["NOMBRE_CIUDAD"].ToString().Trim();
        String SECTOR_ASPIRANTE = filaSolicitud["SECTOR"].ToString();
        String TELEFONOS_ASPIRANTE = filaSolicitud["TEL_ASPIRANTE"].ToString();
        String EMAIL_ASPIRANTE = filaSolicitud["E_MAIL"].ToString().Trim();

        //DATOS DEL MOTIVO DE RETIRO
        MotivoRotacionRetiro _motivo = new MotivoRotacionRetiro(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaResultadosEntrevista = _motivo.ObtenerResultadosEntrevistaDeRetiroParaEmpleado(ID_EMPLEADO);

        //CREAMOS LA TABLA DE MOTIVOS DE RETIRO
        Boolean yaSeTieneObservaciones = false;
        String OBSERVACIONES = null;

        String html_tabla_motivos = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"95%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
        html_tabla_motivos += "<tr>";
        html_tabla_motivos += "<td width=\"50%\" style=\"text-align:center;\">";
        html_tabla_motivos += "CATEGORÍA";
        html_tabla_motivos += "</td>";
        html_tabla_motivos += "<td width=\"50%\" style=\"text-align:center;\">";
        html_tabla_motivos += "MOTIVO";
        html_tabla_motivos += "</td>";
        html_tabla_motivos += "</tr>";
        foreach (DataRow filaMotivo in tablaResultadosEntrevista.Rows)
        {
            if (yaSeTieneObservaciones == false)
            {
                //SOLO UNA VEZ
                OBSERVACIONES = filaMotivo["OBSERVACIONES"].ToString().Trim();
                yaSeTieneObservaciones = true;
            }

            Decimal ID_DETALLE_ROTACION_EMPLEADO = Convert.ToDecimal(filaMotivo["ID_DETALLE_ROTACION_EMPLEADO"]);
            Decimal ID_MAESTRA_ROTACION_EMPLEADO = Convert.ToDecimal(filaMotivo["ID_MAESTRA_ROTACION_EMPLEADO"]);
            Decimal ID_ROTACION_EMPRESA = Convert.ToDecimal(filaMotivo["ID_ROTACION_EMPRESA"]);

            //OBTENEMOS DATOS COMPLEMENTARIOS POR MEDIO DE ID_ROTACION_EMPRESA
            DataTable tablaInfoComplementaria = _motivo.ObtenerMotivoEmpresaPorId(ID_ROTACION_EMPRESA);
            DataRow filaInfoComplementaria = tablaInfoComplementaria.Rows[0];

            html_tabla_motivos += "<tr>";
            html_tabla_motivos += "<td width=\"50%\" style=\"text-align:justify;\">";
            html_tabla_motivos += filaInfoComplementaria["TITULO_MAESTRA_ROTACION"];
            html_tabla_motivos += "</td>";
            html_tabla_motivos += "<td width=\"50%\" style=\"text-align:justify;\">";
            html_tabla_motivos += filaInfoComplementaria["TITULO"];
            html_tabla_motivos += "</td>";
            html_tabla_motivos += "</tr>";
        }
        html_tabla_motivos += "</table>";

        /*
         * Generación del archi de informe de entrevista de retiro
         * Stream con el contenido del pdf.
        */
        String html_encabezado = "<html>";
        html_encabezado += "<head>";
        html_encabezado += "</head>";
        html_encabezado += "<body>";

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

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

        String html_formato_entrevista = html_encabezado + archivo_original.ReadToEnd();

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

        html_formato_entrevista = html_formato_entrevista.Replace("[RAZ_SOCIAL]", RAZ_SOCIAL);
        html_formato_entrevista = html_formato_entrevista.Replace("[NIT_EMPRESA]", NIT_EMPRESA);
        html_formato_entrevista = html_formato_entrevista.Replace("[DIR_EMPRESA]", DIR_EMPRESA);

        html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_ASPIRANTE]", NOMBRE_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[DOC_IDENTIDAD_ASPIRANTE]", DOC_IDENTIDAD_ASPIRANTE);
        if (EDAD_ASPIRANTE > 0)
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[EDAD_ASPIRANTE]", EDAD_ASPIRANTE.ToString() + " Años.");
        }
        else
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[EDAD_ASPIRANTE]", "Desconocida.");
        }
        html_formato_entrevista = html_formato_entrevista.Replace("[DIRECCION_ASPIRANTE]", DIRECCION_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[CIUDAD_ASPIRANTE]", CIUDAD_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[SECTOR_ASPIRANTE]", SECTOR_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[TELEFONOS_ASPIRANTE]", TELEFONOS_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[EMAIL_ASPIRANTE]", EMAIL_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_MOTIVOS_RETIRO]", html_tabla_motivos);

        html_formato_entrevista = html_formato_entrevista.Replace("[OBSERVACIONES]", OBSERVACIONES);

        html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_DILIGENCIA]", NOMBRE_DILIGENCIA);

        html_formato_entrevista += 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), 50, 50, 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 = "entrevista_retiro";

            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_entrevista);
            }

            //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(Decimal ID_SOLICITUD, Decimal ID_EMPLEADO, Decimal ID_EMPRESA, Decimal REGISTRO_CONTRATO)
    {
        HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString();
        HiddenField_ID_EMPLEADO.Value = ID_EMPLEADO.ToString();
        HiddenField_ID_EMPRESA.Value = ID_EMPRESA.ToString();
        HiddenField_REGISTRO_CONTRATO.Value = REGISTRO_CONTRATO.ToString();

        radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoTrabajador = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));

        cliente _cliente = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCliente = _cliente.ObtenerEmpresaConIdEmpresa(ID_EMPRESA);

        if (tablaInfoTrabajador.Rows.Count <= 0)
        {
            if (_radicacionHojasDeVida.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _radicacionHojasDeVida.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información del Trabajador Seleciconado.", Proceso.Advertencia);
            }
        }
        else
        {
            if (tablaCliente.Rows.Count <= 0)
            {
                if (_cliente.MensajeError != null)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _cliente.MensajeError, Proceso.Error);
                }
                else
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información de la Empresa asociada al trabajador.", Proceso.Advertencia);
                }
            }
            else
            {
                DataRow filainfoCliente = tablaCliente.Rows[0];

                cargarInfoTrabajador(tablaInfoTrabajador.Rows[0], filainfoCliente);

                MotivoRotacionRetiro _motivo = new MotivoRotacionRetiro(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                DataTable tablaMotivosAsociadosAEmpresa = _motivo.ObtenerMotivosActivosEmpresa(ID_EMPRESA);

                if (tablaMotivosAsociadosAEmpresa.Rows.Count <= 0)
                {
                    if (_motivo.MensajeError != null)
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _motivo.MensajeError, Proceso.Error);
                    }
                    else
                    {
                        Ocultar(Acciones.Inicio);
                        Desactivar(Acciones.Inicio);
                        Mostrar(Acciones.Inicio);
                        Cargar(Acciones.Inicio);

                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La empresa no tiene Motivos de Rotación y Retiros asociados.", Proceso.Advertencia);
                    }
                }
                else
                {
                    _motivo.MensajeError = null;

                    Boolean correcto = true;

                    DataTable tablaResultadosEntrevistaRetiro = _motivo.ObtenerResultadosEntrevistaDeRetiroParaEmpleado(ID_EMPLEADO);

                    if (tablaResultadosEntrevistaRetiro.Rows.Count <= 0)
                    {
                        if (_motivo.MensajeError != null)
                        {
                            if (_motivo.MensajeError != null)
                            {
                                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _motivo.MensajeError, Proceso.Error);
                                correcto = false;
                            }
                        }
                    }

                    if (correcto == true)
                    {
                        DataTable tablaparaGrilla = configurarTablaParaGrillaMotivos();

                        Boolean idEncontrado = false;

                        Int32 contadorResultados = 0;

                        for (int i = 0; i < tablaMotivosAsociadosAEmpresa.Rows.Count; i++)
                        {
                            idEncontrado = false;

                            DataRow filaMotivo = tablaMotivosAsociadosAEmpresa.Rows[i];
                            DataRow filaParaGrilla = tablaparaGrilla.NewRow();

                            filaParaGrilla["ID_MAESTRA_ROTACION"] = filaMotivo["ID_MAESTRA_ROTACION"];
                            filaParaGrilla["ID_DETALLE_ROTACION"] = filaMotivo["ID_DETALLE_ROTACION"];
                            filaParaGrilla["ID_ROTACION_EMPRESA"] = filaMotivo["ID_ROTACION_EMPRESA"];

                            filaParaGrilla["TITULO"] = filaMotivo["TITULO"];
                            filaParaGrilla["TITULO_MAESTRA_ROTACION"] = filaMotivo["TITULO_MAESTRA_ROTACION"];

                            Decimal ID_ROTACION_EMPRESA_1 = Convert.ToDecimal(filaMotivo["ID_ROTACION_EMPRESA"]);

                            Decimal ID_DETALLE_ROTACION_EMPLEADO = 0;

                            for(int j = 0; j < tablaResultadosEntrevistaRetiro.Rows.Count; j++)
                            {
                                DataRow filaResultado = tablaResultadosEntrevistaRetiro.Rows[j];

                                Decimal ID_ROTACION_EMPRESA_2 = Convert.ToDecimal(filaResultado["ID_ROTACION_EMPRESA"]);

                                if(ID_ROTACION_EMPRESA_1 == ID_ROTACION_EMPRESA_2)
                                {
                                    contadorResultados += 1;

                                    ID_DETALLE_ROTACION_EMPLEADO = Convert.ToDecimal(filaResultado["ID_DETALLE_ROTACION_EMPLEADO"]);
                                    idEncontrado = true;

                                    if (contadorResultados == 1)
                                    {
                                        HiddenField_ID_MAESTRA_ENTREVISTA_EMPLEADO.Value = filaResultado["ID_MAESTRA_ROTACION_EMPLEADO"].ToString().Trim();

                                        TextBox_Observaciones.Text = filaResultado["OBSERVACIONES"].ToString().Trim();
                                    }
                                    break;
                                }
                            }

                            if(idEncontrado == true)
                            {
                                filaParaGrilla["ID_DETALLE_ROTACION_EMPLEADO"] = ID_DETALLE_ROTACION_EMPLEADO;
                            }
                            else
                            {
                                filaParaGrilla["ID_DETALLE_ROTACION_EMPLEADO"] = 0;
                            }

                            tablaparaGrilla.Rows.Add(filaParaGrilla);
                        }

                        CargarGrillaMotivosRotacionDesdeTabla(tablaparaGrilla);

                        Ocultar(Acciones.Inicio);

                        if (contadorResultados <= 0)
                        {
                            Mostrar(Acciones.Nuevo);
                            Activar(Acciones.Nuevo);
                            Limpiar(Acciones.Nuevo);

                            habilitarFilasGrilla(GridView_MotivosRotacion, 0);
                        }
                        else
                        {
                            Mostrar(Acciones.Cargar);
                            Desactivar(Acciones.Cargar);

                            inhabilitarFilasGrilla(GridView_MotivosRotacion, 0);
                        }
                    }
                }
            }
        }
    }
    /// <summary>
    /// HECHO POR CESAR PULIDO
    /// EL DIA 18 DE DICIEMBRE DE 2012
    /// PARA GENERAR LA REFERENCIA
    /// </summary>
    /// <returns></returns>
    public byte[] GenerarPDFReferencia(Decimal ID_REFERENCIA, Decimal ID_SOLICITUD)
    {
        tools _tools = new tools();

        String html_encabezado = "<html>";
        html_encabezado += "<body>";

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

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

        referencia _referencia = new referencia(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaReferencia = _referencia.ObtenerPorIdReferencia(ID_REFERENCIA);
        DataRow filaReferencia = tablaReferencia.Rows[0];

        String NOMBRE_CANDIDATO = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim();
        String NUM_DOC_IDENTIDAD_CANDIDATO = filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim();

        String EMPRESA_DONDE_TRABAJO_CANDIDATO = filaReferencia["EMPRESA_TRABAJO"].ToString().Trim();
        String TELEFONO_EMPRESA = filaReferencia["NUM_TELEFONO"].ToString().Trim();

        String EMPRESA_TEMPORAL = filaReferencia["EMPRESA_TEMPORAL"].ToString().Trim();
        String NUM_TELEFONO_TEMPORAL = filaReferencia["NUM_TELEFONO_TEMPOAL"].ToString().Trim();

        String TIPO_CONTRATO = filaReferencia["TIPO_CONTRATO"].ToString().Trim();

        String FECHA_INGRESO_CANDIDATO = "";
        if (DBNull.Value.Equals(filaReferencia["FECHA_INGRESO"]) == false)
        {
            FECHA_INGRESO_CANDIDATO = Convert.ToDateTime(filaReferencia["FECHA_INGRESO"]).ToShortDateString();
        }
        String FECHA_RETIRO_CANDIDATO = "";
        if (DBNull.Value.Equals(filaReferencia["FECHA_RETIRO"]) == false)
        {
            FECHA_RETIRO_CANDIDATO = Convert.ToDateTime(filaReferencia["FECHA_RETIRO"]).ToShortDateString();
        }

        String ULTIMO_CARGO_CANDIDATO = filaReferencia["ULTIMO_CARGO"].ToString().Trim();

        String NOMBRE_INFORMANTE = filaReferencia["NOMBRE_INFORMANTE"].ToString().Trim();
        String CARGO_INFORMANTE = filaReferencia["CARGO_INFORMANTE"].ToString().Trim();

        String NOMBRE_JEFE = filaReferencia["NOMBRE_JEFE"].ToString().Trim();
        String CARGO_JEFE = filaReferencia["CARGO_JEFE"].ToString().Trim();

        String ULTIMO_SALARIO_CANDIDATO = "Desconocido.";
        try
        {
            ULTIMO_SALARIO_CANDIDATO = Convert.ToDecimal(filaReferencia["ULTIMO_SALARIO"]).ToString();
        }
        catch
        {
            ULTIMO_SALARIO_CANDIDATO = "Desconocido.";
        }

        String COMISIONES = filaReferencia["COMISIONES"].ToString().Trim();
        String BONOS = filaReferencia["BONOS"].ToString().Trim();

        String MOTIVO_RETIRO = filaReferencia["MOTIVO_RETIRO"].ToString().Trim();

        String USUARIO_REFERENCIADOR = Session["USU_LOG"].ToString();
        String NOMBRE_REFERENCIADOR = "Desconocido.";
        if (DBNull.Value.Equals(filaReferencia["USU_MOD"]) == false)
        {
            USUARIO_REFERENCIADOR = filaReferencia["USU_MOD"].ToString().Trim();
        }
        else
        {
            USUARIO_REFERENCIADOR = filaReferencia["USU_CRE"].ToString().Trim();
        }

        String CUALIDADES_CALIFICACION = filaReferencia["CUALIDADES_CALIFICACION"].ToString().Trim();

        usuario _usuario = new usuario(Session["idEmpresa"].ToString());
        DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(USUARIO_REFERENCIADOR);
        DataRow filaUsuario = tablaUsuario.Rows[0];
        if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA")
        {
            NOMBRE_REFERENCIADOR = filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim();
        }
        else
        {
            NOMBRE_REFERENCIADOR = filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim();
        }

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

        String html_formato_referencia = html_encabezado + archivo_original.ReadToEnd();

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

        html_formato_referencia = html_formato_referencia.Replace("[NOMBRE_CANDIDATO]", NOMBRE_CANDIDATO);
        html_formato_referencia = html_formato_referencia.Replace("[NUM_DOC_IDENTIDAD_CANDIDATO]", NUM_DOC_IDENTIDAD_CANDIDATO);

        html_formato_referencia = html_formato_referencia.Replace("[EMPRESA_DONDE_TRABAJO_CANDIDATO]", EMPRESA_DONDE_TRABAJO_CANDIDATO);
        html_formato_referencia = html_formato_referencia.Replace("[TELEFONO_EMPRESA]", TELEFONO_EMPRESA);

        html_formato_referencia = html_formato_referencia.Replace("[EMPRESA_TEMPORAL]", EMPRESA_TEMPORAL);
        html_formato_referencia = html_formato_referencia.Replace("[TELEFONO_TEMPORAL]", NUM_TELEFONO_TEMPORAL);

        if (TIPO_CONTRATO == "OBRA O LABOR")
        {
            html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", " X ");
            html_formato_referencia = html_formato_referencia.Replace("[FIJO]", "___");
            html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", "___");
        }
        else
        {
            if (TIPO_CONTRATO == "FIJO")
            {
                html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", "___");
                html_formato_referencia = html_formato_referencia.Replace("[FIJO]", " X ");
                html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", "___");
            }
            else
            {
                if (TIPO_CONTRATO == "INDEFINIDO")
                {
                    html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", "___");
                    html_formato_referencia = html_formato_referencia.Replace("[FIJO]", "___");
                    html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", " X ");
                }
                else
                {
                    html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", "___");
                    html_formato_referencia = html_formato_referencia.Replace("[FIJO]", "___");
                    html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", "___");
                }
            }
        }

        html_formato_referencia = html_formato_referencia.Replace("[FECHA_INGRESO_CANDIDATO]", FECHA_INGRESO_CANDIDATO);
        html_formato_referencia = html_formato_referencia.Replace("[FECHA_RETIRO_CANDIDATO]", FECHA_RETIRO_CANDIDATO);

        html_formato_referencia = html_formato_referencia.Replace("[ULTIMO_CARGO_CANDIDATO]", ULTIMO_CARGO_CANDIDATO);

        html_formato_referencia = html_formato_referencia.Replace("[NOMBRE_INFORMANTE]", NOMBRE_INFORMANTE);
        html_formato_referencia = html_formato_referencia.Replace("[CARGO_INFORMANTE]", CARGO_INFORMANTE);

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

        html_formato_referencia = html_formato_referencia.Replace("[ULTIMO_SALARIO_CANDIDATO]", ULTIMO_SALARIO_CANDIDATO);
        html_formato_referencia = html_formato_referencia.Replace("[COMISIONES]", COMISIONES);
        html_formato_referencia = html_formato_referencia.Replace("[BONOS]", BONOS);

        html_formato_referencia = html_formato_referencia.Replace("[MOTIVO_RETIRO]", MOTIVO_RETIRO);

        html_formato_referencia = html_formato_referencia.Replace("[NOMBRE_REFERENCIADOR]", NOMBRE_REFERENCIADOR);

        if (DBNull.Value.Equals(filaReferencia["FCH_MOD"]) == false)
        {
            html_formato_referencia = html_formato_referencia.Replace("[FECHA_REFERECIA]", Convert.ToDateTime(filaReferencia["FCH_MOD"]).ToShortDateString());
        }
        else
        {
            html_formato_referencia = html_formato_referencia.Replace("[FECHA_REFERECIA]", Convert.ToDateTime(filaReferencia["FCH_CRE"]).ToShortDateString());
        }

        //ya esta la informacion de la referecia basica ahora le adicionadmos al informe los datos de las preguntas
        DataTable tablaPreguntasRespuestas = _referencia.ObtenerPreguntasRespuestasReferencia(ID_REFERENCIA);
        if (tablaPreguntasRespuestas.Rows.Count > 0)
        {
            int contadorPreguntas = 0;
            //recorrido por las preguntas
            String html_tabla_preguntas = "";
            html_tabla_preguntas += "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\">";
            html_tabla_preguntas += "<tr>";
            html_tabla_preguntas += "<td width=\"15%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "#";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "<td style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "CUESTIONARIO";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "<td style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "RESPUESTA";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "</tr>";
            for (int i = 0; i < tablaPreguntasRespuestas.Rows.Count; i++)
            {
                DataRow filaPregunta = tablaPreguntasRespuestas.Rows[i];

                contadorPreguntas += 1;

                String textoPregunta = filaPregunta["CONTENIDO"].ToString().Trim();
                String textoRespuesta = filaPregunta["RESPUESTA"].ToString().Trim();

                html_tabla_preguntas += "<tr>";
                html_tabla_preguntas += "<td width=\"15%\" style=\"text-align:center;\">";
                html_tabla_preguntas += contadorPreguntas.ToString();
                html_tabla_preguntas += "</td>";
                html_tabla_preguntas += "<td style=\"text-align:justify;\">";
                html_tabla_preguntas += textoPregunta;
                html_tabla_preguntas += "</td>";
                html_tabla_preguntas += "<td style=\"text-align:center;\">";
                html_tabla_preguntas += textoRespuesta;
                html_tabla_preguntas += "</td>";
                html_tabla_preguntas += "</tr>";
            }
            html_tabla_preguntas += "</table>";

            html_formato_referencia = html_formato_referencia.Replace("[TABLA_CUESTIONARIO]", html_tabla_preguntas);
        }

        if (String.IsNullOrEmpty(CUALIDADES_CALIFICACION) == false)
        {
            String html_tabla_preguntas = "";
            html_tabla_preguntas += "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"80%\" align=\"center\">";
            html_tabla_preguntas += "<tr>";
            html_tabla_preguntas += "<td width=\"50%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "CUALIDAD";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "EXCELENTE";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "BUENO";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "REGULAR";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_preguntas += "MALO";
            html_tabla_preguntas += "</td>";
            html_tabla_preguntas += "</tr>";

            String[] cualidadesCalificacionesArray = CUALIDADES_CALIFICACION.Split(';');

            foreach(String cualidadCalificacion in cualidadesCalificacionesArray)
            {
                String CUALIDAD = cualidadCalificacion.Split(':')[0];
                String CALIFICACION = cualidadCalificacion.Split(':')[1];

                html_tabla_preguntas += "<tr>";
                html_tabla_preguntas += "<td width=\"50%\" style=\"text-align:left;\">";
                html_tabla_preguntas += CUALIDAD;
                html_tabla_preguntas += "</td>";
                html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:justify;\">";
                if(CALIFICACION == "EXCELENTE")
                {
                    html_tabla_preguntas += "X";
                }
                html_tabla_preguntas += "</td>";

                html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center;\">";
                if (CALIFICACION == "BUENO")
                {
                    html_tabla_preguntas += "X";
                }
                html_tabla_preguntas += "</td>";
                html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:center;\">";
                if (CALIFICACION == "REGULAR")
                {
                    html_tabla_preguntas += "X";
                }
                html_tabla_preguntas += "</td>";
                html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center;\">";
                if (CALIFICACION == "MALO")
                {
                    html_tabla_preguntas += "X";
                }
                html_tabla_preguntas += "</td>";
                html_tabla_preguntas += "</tr>";
            }

            html_tabla_preguntas += "</table>";

            html_formato_referencia = html_formato_referencia.Replace("[TABLA_CUALIDADES]", html_tabla_preguntas);
        }

        html_formato_referencia += 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), 50, 50, 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 = "referencia";

            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_referencia);
            }

            //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 Button_IMPRIMIR_Click(object sender, EventArgs e)
    {
        Decimal ID_EMPLEADO = Convert.ToDecimal(HiddenField_ID_EMPLEADO.Value);
        Decimal ID_SOLICITUD = Convert.ToDecimal(HiddenField_ID_SOLICITUD.Value);
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);

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

        maestrasInterfaz _maestrasInterfaz = new maestrasInterfaz();

        byte[] datosArchivo = _maestrasInterfaz.GenerarPDFEntrevistaRetiro(ID_EMPLEADO, ID_SOLICITUD, ID_EMPRESA);

        String filename = filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim() + "_INFORME_ENTREVISTA_RETIRO";
        filename = filename.Replace(' ', '_');

        Response.Clear();
        Response.BufferOutput = false;
        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", "attachment;FileName=" + filename + ".pdf");
        Response.BinaryWrite(datosArchivo);
        Response.End();
    }
    /// <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();
        }
    }
Example #21
0
        public Boolean ActualizarEntrevista(Decimal ID_SOLICITUD,
            DateTime FCH_ENTREVISTA,
            String COM_C_FAM,
            String COM_F_LAB,
            String COM_C_ACA,
            String COM_C_GEN,
            List<listaPruebasAplicados> listaPruebas,
            Decimal ID_REQUERIMIENTO,
            List<ComposicionFamiliar> listaComposicionFamiliar,
            List<FormacionAcademica> listaFormacionAcademica,
            List<ExperienciaLaboral> listaExperienciaLaboral,
            Decimal REGISTRO_ENTREVISTA,
            Decimal ID_PERFIL,
            List<AplicacionCompetencia> listaCompetencias)
        {
            Boolean correcto = true;
            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                if (ActualizarSelRegEntrevistas(ID_SOLICITUD, FCH_ENTREVISTA, COM_C_FAM, COM_F_LAB, COM_C_ACA, COM_C_GEN, conexion) == false)
                {
                    conexion.DeshacerTransaccion();
                    correcto = false;
                }
                else
                {
                    if (guardarPruebas(listaPruebas, conexion) == false)
                    {
                        correcto = false;
                        conexion.DeshacerTransaccion();
                    }
                    else
                    {
                        if (guardarCompetencias(listaCompetencias, conexion) == false)
                        {
                            correcto = false;
                            conexion.DeshacerTransaccion();
                        }
                        else
                        {
                            if (ActulizarComposicionFamiliarEntrevista(REGISTRO_ENTREVISTA, listaComposicionFamiliar, conexion) == false)
                            {
                                correcto = false;
                                conexion.DeshacerTransaccion();
                            }
                            else
                            {
                                if (ActualizarFormacionAcademicaEntrevistado(REGISTRO_ENTREVISTA, listaFormacionAcademica, conexion) == false)
                                {
                                    correcto = false;
                                    conexion.DeshacerTransaccion();
                                }
                                else
                                {
                                    if (ActualizarExperienciaLaboralEntrevistado(REGISTRO_ENTREVISTA, listaExperienciaLaboral, conexion) == false)
                                    {
                                        correcto = false;
                                        conexion.DeshacerTransaccion();
                                    }
                                    else
                                    {
                                        radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Empresa, Usuario);

                                        if (ID_REQUERIMIENTO > 0)
                                        {
                                            if (!_radicacionHojasDeVida.ActualizarRequisicionSolicitud(ID_SOLICITUD, ID_REQUERIMIENTO, conexion))
                                            {
                                                MensajeError = _radicacionHojasDeVida.MensajeError;
                                                correcto = false;
                                                conexion.DeshacerTransaccion();
                                            }
                                        }

                                        if (correcto == true)
                                        {
                                            DataTable tablaSolicitud = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(ID_SOLICITUD, conexion);
                                            DataRow filaSolicitud = tablaSolicitud.Rows[0];

                                            if (filaSolicitud["ARCHIVO"].ToString().Trim() != "EN CLIENTE")
                                            {
                                                if (_radicacionHojasDeVida.ActualizarEstadoSolicitud(ID_SOLICITUD, conexion) == false)
                                                {
                                                    correcto = false;
                                                    MensajeError = _radicacionHojasDeVida.MensajeError;
                                                    conexion.DeshacerTransaccion();
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                MensajeError = ex.Message;
                correcto = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return correcto;
        }
    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 Cargar(Decimal ID_SOLICITUD)
    {
        HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString();

        DataTable tablaInfoSolicitud;

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

        tablaInfoSolicitud = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD));

        if (String.IsNullOrEmpty(_radicacionHojasDeVida.MensajeError) == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _radicacionHojasDeVida.MensajeError, Proceso.Error);
        }
        else
        {
            if (tablaInfoSolicitud.Rows.Count <= 0)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información de la solicitud seleccionada.", Proceso.Advertencia);
            }
            else
            {
                Ocultar(Acciones.Inicio);
                Mostrar(Acciones.BotonesAccion);

                DataRow filaInfoSolicitud = tablaInfoSolicitud.Rows[0];

                cargar_datos_solicitud_ingreso(filaInfoSolicitud);

                cargar_datos_bitacora(filaInfoSolicitud);

                cargar_seccion_descarte(filaInfoSolicitud);
            }
        }
    }