public Boolean ValidarNumeroDocumento(String numeroDocumento)
 {
     Boolean encontrado = true;
     radicacionHojasDeVida solicitudIngreso = new radicacionHojasDeVida(Empresa, Usuario);
     DataTable _dataTable = solicitudIngreso.ObtenerRegSolicitudesingresoPorNumDocIdentidad(numeroDocumento);
     if (_dataTable.Rows.Count == 0) encontrado = false;
     return encontrado;
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.Header.Title = "SERVICIOS COMPLEMENTARIOS";
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        if (IsPostBack == false)
        {

            String accion = QueryStringSeguro["accion"].ToString();
            if (accion == "inicial")
            {
                iniciar_interfaz_inicial();
                iniciar_seccion_de_busqueda();
                Panel_BOTONES_INTERNOS.Visible = true;
                cargar_menu_botones_modulos_internos(false);
            }
            else if (accion == "cargar")
            {
                String persona = QueryStringSeguro["persona"].ToString();
                String[] datos = persona.Split(',');
                String datosPersona;
                String ID_EMPRESA = datos[3];
                registroContrato _cont = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                DataTable tablaCont =  _cont.ObtenerPorNumIdentificacionActivo(datos[4].ToString());

                Panel_BOTONES_INTERNOS.Visible = true;

                if (tablaCont.Rows.Count <= 0)
                {
                    Label_MENSAJE.Text = "ADVERTENCIA: A la persona no puede entregarsele dotación ni epp por que no ha sido contratado";
                    configurarMensajes(true, System.Drawing.Color.Red, Label_MENSAJE, Panel_MENSAJES);

                    Panel_Entregas_configurados.Visible = false;
                    Panel_FORM_BOTONES.Visible = false;
                    Panel_RESULTADOS_GRID.Visible = false;
                    Panel_BOTONES_MENU.Visible = false;

                    Panel_MENSAJES.Visible = true;
                    Panel_MENSAJE_Entregas.Visible = false;

                    String ID_SOLICITUD = datos[0];
                    String ID_REQUERIMIENTO = datos[1];
                    String ID_OCUPACION = datos[2];
                    String NUM_DOC_IDENTIDAD = datos[4];

                    radicacionHojasDeVida _solIngreso = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    DataTable tablasol = _solIngreso.ObtenerRegSolicitudesingresoPorNumDocIdentidad(NUM_DOC_IDENTIDAD);

                    DataRow filaSolIngreso = tablasol.Rows[0];
                    String nombre = filaSolIngreso["NOMBRES"] + " " + filaSolIngreso["APELLIDOS"];

                    cliente _empresa = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    DataTable tablaEmpresa = _empresa.ObtenerEmpresaConIdEmpresa(Convert.ToDecimal(ID_EMPRESA));
                    DataRow filaEmpresa = tablaEmpresa.Rows[0];

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

                    datosPersona = "Nombre: " + nombre + "<br> Numero Identificación: " + NUM_DOC_IDENTIDAD + "<br> Empresa: " + filaEmpresa["RAZ_SOCIAL"] + "<br>Cargo: " + filaOcupacion["NOM_OCUPACION"];

                    HiddenField_persona.Value = persona.Trim();
                    configurarInfoAdicionalModulo(true, datosPersona);
                    cargar_menu_botones_modulos_internos(false);

                    Panel_BOTONES_INTERNOS.Visible = true;
                }
               else
                {
                    DataRow filaCon = tablaCont.Rows[0];

                    Panel_Entregas_configurados.Visible = false;
                    Panel_FORM_BOTONES.Visible = false;
                    Panel_RESULTADOS_GRID.Visible = false;
                    Panel_BOTONES_MENU.Visible = false;

                    Panel_MENSAJES.Visible = false;
                    Panel_MENSAJE_Entregas.Visible = false;

                    String ID_SOLICITUD = datos[0];
                    String ID_REQUERIMIENTO = datos[1];
                    String ID_OCUPACION = datos[2];
                    String NUM_DOC_IDENTIDAD = datos[4];
                    String ID_CONTRATO;
                    String ID_EMPLEADO;

                    if (datos.Length == 7)
                    {
                        ID_CONTRATO = datos[5];
                        ID_EMPLEADO = datos[6];
                    }
                    else
                    {
                        ID_CONTRATO = filaCon["ID_CONTRATO"].ToString() ;
                        ID_EMPLEADO = filaCon["ID_EMPLEADO"].ToString();
                    }

                    radicacionHojasDeVida _solIngreso = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    DataTable tablasol = _solIngreso.ObtenerRegSolicitudesingresoPorNumDocIdentidad(NUM_DOC_IDENTIDAD);

                    DataRow filaSolIngreso = tablasol.Rows[0];
                    String nombre = filaSolIngreso["NOMBRES"] + " " + filaSolIngreso["APELLIDOS"];

                    cliente _empresa = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    DataTable tablaEmpresa = _empresa.ObtenerEmpresaConIdEmpresa(Convert.ToDecimal(ID_EMPRESA));
                    DataRow filaEmpresa = tablaEmpresa.Rows[0];

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

                    persona = "Nombre: " + nombre + "<br> Numero Identificación: " + NUM_DOC_IDENTIDAD + "<br> Empresa: " + filaEmpresa["RAZ_SOCIAL"] + "<br>Cargo: " + filaOcupacion["NOM_OCUPACION"];
                    configurarInfoAdicionalModulo(true, persona);

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

                    cargar_menu_botones_modulos_internos(false);

                    iniciar_interfaz_para_registro_existente();
                }
            }
        }
    }
    private Boolean GuardarDatosParciales()
    {
        radicacionHojasDeVida _rad = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        String APELLIDOS = null;
        if(String.IsNullOrEmpty(TextBox_APELLIDOS.Text.Trim()) == false)
        {
            APELLIDOS = TextBox_APELLIDOS.Text.Trim().ToUpper();
        }

        String NOMBRES = null;
        if (String.IsNullOrEmpty(TextBox_NOMBRES.Text.Trim()) == false)
        {
            NOMBRES = TextBox_NOMBRES.Text.Trim().ToUpper();
        }

        String TIP_DOC_IDENTIDAD = null;
        if(DropDownList_TIP_DOC_IDENTIDAD.SelectedIndex > 0)
        {
            TIP_DOC_IDENTIDAD = DropDownList_TIP_DOC_IDENTIDAD.SelectedValue;
        }

        String NUM_DOC_IDENTIDAD = null;
        if (String.IsNullOrEmpty(TextBox_NUM_DOC_IDENTIDAD.Text.Trim()) == false)
        {
            NUM_DOC_IDENTIDAD = TextBox_NUM_DOC_IDENTIDAD.Text.Trim().ToUpper();
        }

        String CIU_CEDULA = null;
        if (DropDownList_CIU_CEDULA.SelectedIndex > 0)
        {
            CIU_CEDULA = DropDownList_CIU_CEDULA.SelectedValue;
        }

        String LIB_MILITAR = null;
        if (String.IsNullOrEmpty(TextBox_LIB_MILITAR.Text) == false)
        {
            LIB_MILITAR = TextBox_LIB_MILITAR.Text;
        }

        String CAT_LIC_COND = null;
        if (DropDownList_CAT_LIC_COND.SelectedIndex > 0)
        {
            CAT_LIC_COND = DropDownList_CAT_LIC_COND.SelectedValue;
        }

        String DIR_ASPIRANTE = null;
        if (String.IsNullOrEmpty(TextBox_DIR_ASPIRANTE.Text.Trim()) == false)
        {
            DIR_ASPIRANTE = TextBox_DIR_ASPIRANTE.Text.Trim().ToUpper();
        }

        String SECTOR = null;
        if (String.IsNullOrEmpty(TextBox_SECTOR.Text.Trim()) == false)
        {
            SECTOR = TextBox_SECTOR.Text.Trim().ToUpper();
        }

        String CIU_ASPIRANTE = null;
        if (DropDownList_CIU_ASPIRANTE.SelectedIndex > 0)
        {
            CIU_ASPIRANTE = DropDownList_CIU_ASPIRANTE.SelectedValue;
        }

        String TEL_ASPIRANTE = null;
        if (String.IsNullOrEmpty(TextBox_TEL_ASPIRANTE.Text) == false)
        {
            TEL_ASPIRANTE = TextBox_TEL_ASPIRANTE.Text;
        }

        String SEXO = null;
        if (DropDownList_SEXO.SelectedIndex > 0)
        {
            SEXO = DropDownList_SEXO.SelectedValue;
        }

        DateTime FCH_NACIMIENTO = new DateTime();
        if (String.IsNullOrEmpty(TextBox_FCH_NACIMIENTO.Text.Trim()) == false)
        {
            FCH_NACIMIENTO = Convert.ToDateTime(TextBox_FCH_NACIMIENTO.Text);
        }

        int ID_FUENTE = 0;
        if (DropDownList_ID_FUENTE.SelectedIndex > 0)
        {
            ID_FUENTE = Convert.ToInt32(DropDownList_ID_FUENTE.SelectedValue);
        }

        String CONDUCTO = null;

        int NIV_EDUCACION = 0;
        if (DropDownList_NIV_EDUCACION.SelectedIndex > 0)
        {
            NIV_EDUCACION = Convert.ToInt32(DropDownList_NIV_EDUCACION.SelectedValue);
        }

        String E_MAIL = null;
        if (String.IsNullOrEmpty(TextBox_E_MAIL.Text.Trim()) == false)
        {
            E_MAIL = TextBox_E_MAIL.Text.Trim().ToUpper();
        }

        int ID_AREASINTERES = Convert.ToInt32(DropDownList_AREAS_ESPECIALIZACION.SelectedValue);

        Decimal ASPIRACION_SALARIAL = 0;
        if(String.IsNullOrEmpty(TextBox_ASPIRACION_SALARIAL.Text.Trim())  == false)
        {
            ASPIRACION_SALARIAL = Convert.ToDecimal(TextBox_ASPIRACION_SALARIAL.Text);
        }

        String EXPERIENCIA = null;
        if(DropDownList_EXPERIENCIA.SelectedIndex > 0)
        {
            EXPERIENCIA = DropDownList_EXPERIENCIA.SelectedValue;
        }

        String ID_GRUPOS_PRIMARIOS = null;
        Decimal ID_OCUPACION = 0;
        if(DropDownList_ID_OCUPACION.SelectedIndex > 0)
        {
            ID_OCUPACION = Convert.ToDecimal(DropDownList_ID_OCUPACION.SelectedValue);
            cargo _cargo = new cargo(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaInfoCargo = _cargo.ObtenerOcupacionPorIdOcupacion(ID_OCUPACION);
            try
            {
                DataRow filaCargo = tablaInfoCargo.Rows[0];
                ID_GRUPOS_PRIMARIOS = filaCargo["COD_OCUPACION"].ToString().Trim();
            }
            catch
            {
                ID_GRUPOS_PRIMARIOS = null;
            }
        }

        String NUCLEO_FORMACION = null;
        if(DropDownList_nucleo_formacion.SelectedIndex > 0)
        {
            NUCLEO_FORMACION = DropDownList_nucleo_formacion.SelectedValue;
        }

        String TALLA_CAMISA = null;
        if(DropDownList_Talla_Camisa.SelectedIndex > 0)
        {
            TALLA_CAMISA = DropDownList_Talla_Camisa.SelectedValue;
        }

        String TALLA_PANTALON = null;
        if(DropDownList_Talla_Pantalon.SelectedIndex  > 0)
        {
            TALLA_PANTALON = DropDownList_Talla_Pantalon.SelectedValue;
        }

        String TALLA_ZAPATOS = null;
        if(DropDownList_talla_zapatos.SelectedIndex > 0)
        {
            TALLA_ZAPATOS = DropDownList_talla_zapatos.SelectedValue;
        }

        int ESTRATO = 0;
        if(DropDownList_ESTRATO.SelectedIndex > 0)
        {
            ESTRATO = Convert.ToInt32(DropDownList_ESTRATO.SelectedValue);
        }

        int NRO_HIJOS = 0;
        if(String.IsNullOrEmpty(TextBox_NUM_HIJOS.Text.Trim()) == false)
        {
            NRO_HIJOS = Convert.ToInt32(TextBox_NUM_HIJOS.Text);
        }

        Boolean C_FMLIA = false;
        if (DropDownList_CabezaFamilia.SelectedValue == "S")
        {
            C_FMLIA = true;
        }

        String CEL_ASPIRANTE = null;
        if (String.IsNullOrEmpty(TextBox_CEL_ASPIRANTE.Text) == false)
        {
            CEL_ASPIRANTE = TextBox_CEL_ASPIRANTE.Text.Trim();
        }

        String ESTADO_CIVIL = null;
        if(DropDownList_ESTADO_CIVIL.SelectedIndex > 0)
        {
            ESTADO_CIVIL = DropDownList_ESTADO_CIVIL.SelectedValue;
        }

        Int32 ID_PAIS = 0;
        if(DropDownList_PaisNacimiento.SelectedIndex > 0)
        {
            ID_PAIS = Convert.ToInt32(DropDownList_PaisNacimiento.SelectedValue);
        }

        String TIPO_VIVIENDA = null;
        if(DropDownList_TipoVivienda.SelectedIndex > 0)
        {
            TIPO_VIVIENDA = DropDownList_TipoVivienda.SelectedValue;
        }

        String FUENTE_CONOCIMIENTO = null;
        if(DropDownList_ComoSeEntero.SelectedIndex > 0)
        {
            FUENTE_CONOCIMIENTO = DropDownList_ComoSeEntero.SelectedValue;
        }

        List<FormacionAcademica> listaFormacionAcademica = new List<FormacionAcademica>();
        for (int i = 0; i < GridView_EducacionFormal.Rows.Count; i++)
        {
            GridViewRow filaGrilla = GridView_EducacionFormal.Rows[i];

            String TIPO_EDUCACION = "FORMAL";

            Decimal ID_INFO_ACADEMICA = Convert.ToDecimal(GridView_EducacionFormal.DataKeys[i].Values["ID_INFO_ACADEMICA"]);

            DropDownList dropnivAcademico = filaGrilla.FindControl("DropDownList_NivAcademico") as DropDownList;
            String NIVEL_ACADEMICO = dropnivAcademico.SelectedValue;

            TextBox textoInstitucion = filaGrilla.FindControl("TextBox_Institucion") as TextBox;
            String INSTITUCION = textoInstitucion.Text;

            Int32 ANNO = 0;
            TextBox textoAnno = filaGrilla.FindControl("TextBox_Anno") as TextBox;
            if (String.IsNullOrEmpty(textoAnno.Text) == false)
            {
                ANNO = Convert.ToInt32(textoAnno.Text);
            }
            else
            {
                ANNO = 0;
            }

            TextBox textoObservaciones = filaGrilla.FindControl("TextBox_Observaciones") as TextBox;
            String OBSERVACIONES = textoObservaciones.Text;

            FormacionAcademica _formacionParaLista = new FormacionAcademica();

            _formacionParaLista.ACTIVO = true;
            _formacionParaLista.ANNO = ANNO;
            _formacionParaLista.CURSO = null;
            _formacionParaLista.DURACION = 0;
            _formacionParaLista.ID_INFO_ACADEMICA = ID_INFO_ACADEMICA;
            _formacionParaLista.INSTITUCION = INSTITUCION;
            _formacionParaLista.NIVEL_ACADEMICO = NIVEL_ACADEMICO;
            _formacionParaLista.OBSERVACIONES = OBSERVACIONES;
            _formacionParaLista.REGISTRO_ENTREVISTA = 0;
            _formacionParaLista.TIPO_EDUCACION = TIPO_EDUCACION;
            _formacionParaLista.UNIDAD_DURACION = null;

            listaFormacionAcademica.Add(_formacionParaLista);
        }

        for (int i = 0; i < GridView_EducacionNoFormal.Rows.Count; i++)
        {
            GridViewRow filaGrilla = GridView_EducacionNoFormal.Rows[i];

            String TIPO_EDUCACION = "NO FORMAL";

            Decimal ID_INFO_ACADEMICA = Convert.ToDecimal(GridView_EducacionNoFormal.DataKeys[i].Values["ID_INFO_ACADEMICA"]);

            TextBox textoCurso = filaGrilla.FindControl("TextBox_Curso") as TextBox;
            String CURSO = textoCurso.Text;

            TextBox textoInstitucion = filaGrilla.FindControl("TextBox_Institucion") as TextBox;
            String INSTITUCION = textoInstitucion.Text;

            Decimal DURACION = 0;
            TextBox textoDuracion = filaGrilla.FindControl("TextBox_Duracion") as TextBox;
            if (String.IsNullOrEmpty(textoDuracion.Text) == false)
            {
                DURACION = Convert.ToDecimal(textoDuracion.Text);
            }
            else
            {
                DURACION = 0;
            }

            DropDownList dropUnidadDuracion = filaGrilla.FindControl("DropDownList_UnidadDuracion") as DropDownList;
            String UNIDAD_DURACION = dropUnidadDuracion.SelectedValue;

            TextBox textoobservaciones = filaGrilla.FindControl("TextBox_Observaciones") as TextBox;
            String OBSERVACIONES = textoobservaciones.Text;

            FormacionAcademica _formacionParaLista = new FormacionAcademica();

            _formacionParaLista.ACTIVO = true;
            _formacionParaLista.ANNO = 0;
            _formacionParaLista.CURSO = CURSO;
            _formacionParaLista.DURACION = DURACION;
            _formacionParaLista.ID_INFO_ACADEMICA = ID_INFO_ACADEMICA;
            _formacionParaLista.INSTITUCION = INSTITUCION;
            _formacionParaLista.NIVEL_ACADEMICO = null;
            _formacionParaLista.OBSERVACIONES = OBSERVACIONES;
            _formacionParaLista.REGISTRO_ENTREVISTA = 0;
            _formacionParaLista.TIPO_EDUCACION = TIPO_EDUCACION;
            _formacionParaLista.UNIDAD_DURACION = UNIDAD_DURACION;

            listaFormacionAcademica.Add(_formacionParaLista);

        }

        List<ExperienciaLaboral> listaExperiencia = new List<ExperienciaLaboral>();
        for (int i = 0; i < GridView_ExperienciaLaboral.Rows.Count; i++)
        {
            GridViewRow filaGrilla = GridView_ExperienciaLaboral.Rows[i];

            Decimal ID_EXPERIENCIA = Convert.ToDecimal(GridView_ExperienciaLaboral.DataKeys[i].Values["ID_EXPERIENCIA"]);

            TextBox textoEmpresa = filaGrilla.FindControl("TextBox_Empresa") as TextBox;
            String EMPRESA = textoEmpresa.Text;

            TextBox textoCargo = filaGrilla.FindControl("TextBox_Cargo") as TextBox;
            String CARGO = textoCargo.Text;

            TextBox textoFunciones = filaGrilla.FindControl("TextBox_FuncionesRealizadas") as TextBox;
            String FUNCIONES = textoFunciones.Text;

            DateTime FECHA_INGRESO;
            TextBox textoFechaIngreso = filaGrilla.FindControl("TextBox_FechaIngreso") as TextBox;
            try
            {
                FECHA_INGRESO = Convert.ToDateTime(textoFechaIngreso.Text);
            }
            catch
            {
                FECHA_INGRESO = new DateTime();
            }

            DateTime FECHA_RETIRO;
            TextBox textoFechaRetiro = filaGrilla.FindControl("TextBox_FechaRetiro") as TextBox;
            try
            {
                FECHA_RETIRO = Convert.ToDateTime(textoFechaRetiro.Text);
            }
            catch
            {
                FECHA_RETIRO = new DateTime();
            }

            DropDownList dropMotivoRetiro = filaGrilla.FindControl("DropDownList_MotivoRetiro") as DropDownList;
            String MOTIVO_RETIRO = null;
            if (String.IsNullOrEmpty(dropMotivoRetiro.SelectedValue) == false)
            {
                MOTIVO_RETIRO = dropMotivoRetiro.SelectedValue;
            }

            Decimal ULTIMO_SALARIO = 0;
            TextBox textoUltimoSalario = filaGrilla.FindControl("TextBox_Ultimosalario") as TextBox;
            try
            {
                ULTIMO_SALARIO = Convert.ToDecimal(textoUltimoSalario.Text);
            }
            catch
            {
                ULTIMO_SALARIO = 0;
            }

            ExperienciaLaboral _experienciaParaLista = new ExperienciaLaboral();

            _experienciaParaLista.ACTIVO = true;
            _experienciaParaLista.CARGO = CARGO;
            _experienciaParaLista.EMPRESA_CLIENTE = EMPRESA;
            _experienciaParaLista.FECHA_INGRESO = FECHA_INGRESO;
            _experienciaParaLista.FECHA_RETIRO = FECHA_RETIRO;
            _experienciaParaLista.FUNCIONES = FUNCIONES;
            _experienciaParaLista.ID_EXPERIENCIA = ID_EXPERIENCIA;
            _experienciaParaLista.MOTIVO_RETIRO = MOTIVO_RETIRO;
            _experienciaParaLista.REGISTRO_ENTREVISTA = 0;
            _experienciaParaLista.ULTIMO_SALARIO = ULTIMO_SALARIO;

            listaExperiencia.Add(_experienciaParaLista);
        }

        List<ComposicionFamiliar> listaComposicionFamiliar = new List<ComposicionFamiliar>();
        for (int i = 0; i < GridView_ComposicionFamiliar.Rows.Count; i++)
        {
            GridViewRow filaGrilla = GridView_ComposicionFamiliar.Rows[i];

            Decimal ID_COMPOSICION = Convert.ToDecimal(GridView_ComposicionFamiliar.DataKeys[i].Values["ID_COMPOSICION"]);

            DropDownList dropTipoFamiliar = filaGrilla.FindControl("DropDownList_TipoFamiliar") as DropDownList;
            String ID_TIPO_FAMILIAR = dropTipoFamiliar.SelectedValue;

            TextBox textoNombres = filaGrilla.FindControl("TextBox_NombresFamiliar") as TextBox;
            String NOMBRES_FAMILIAR = textoNombres.Text;

            TextBox textoApellidos = filaGrilla.FindControl("TextBox_ApellidosFamiliar") as TextBox;
            String APELLIDOS_FAMILIAR = textoApellidos.Text;

            DateTime FECHA_NACIMIENTO = new DateTime();
            TextBox textoFechaNacimiento = filaGrilla.FindControl("TextBox_FechaNacimientoFamiliar") as TextBox;
            try
            {
                FECHA_NACIMIENTO = Convert.ToDateTime(textoFechaNacimiento.Text);
            }
            catch
            {
                FECHA_NACIMIENTO = new DateTime();
            }

            TextBox textoProfesion = filaGrilla.FindControl("TextBox_ProfesionFamiliar") as TextBox;
            String PROFESION = textoProfesion.Text;

            CheckBox checkExtrajero = filaGrilla.FindControl("CheckBox_Extranjero") as CheckBox;
            DropDownList dropCiudad = filaGrilla.FindControl("DropDownList_CiudadFamiliar") as DropDownList;
            String ID_CIUDAD = dropCiudad.SelectedValue;
            if (checkExtrajero.Checked == true)
            {
                ID_CIUDAD = "EXTRA";
            }

            Boolean VIVE_CON_EL = false;
            CheckBox checkViveConEl = filaGrilla.FindControl("CheckBox_ViveConElFamiliar") as CheckBox;
            if (checkViveConEl.Checked == true)
            {
                VIVE_CON_EL = true;
            }

            Boolean ACTIVO = true;

            ComposicionFamiliar _composicionParaLista = new ComposicionFamiliar();

            _composicionParaLista.ACTIVO = ACTIVO;
            _composicionParaLista.APELLIDOS = APELLIDOS_FAMILIAR;
            _composicionParaLista.FECHA_NACIMIENTO = FECHA_NACIMIENTO;
            _composicionParaLista.ID_CIUDAD = ID_CIUDAD;
            _composicionParaLista.ID_COMPOSICION = ID_COMPOSICION;
            _composicionParaLista.ID_TIPO_FAMILIAR = ID_TIPO_FAMILIAR;
            _composicionParaLista.NOMBRES = NOMBRES_FAMILIAR;
            _composicionParaLista.PROFESION = PROFESION;
            _composicionParaLista.REGISTRO_ENTREVISTA = 0;
            _composicionParaLista.VIVE_CON_EL = VIVE_CON_EL;

            listaComposicionFamiliar.Add(_composicionParaLista);
        }

        String RH = null;
        if (String.IsNullOrEmpty(DropDownList_RH.SelectedValue) == false)
        {
            RH = DropDownList_RH.SelectedValue;
        }

        Dictionary<String, String> listaCamposValidarRestricciones = new Dictionary<String, String>();
        listaCamposValidarRestricciones.Add("APELLIDOS", APELLIDOS);
        listaCamposValidarRestricciones.Add("NOMBRES", NOMBRES);
        listaCamposValidarRestricciones.Add("DIRECCIÓN", DIR_ASPIRANTE);
        listaCamposValidarRestricciones.Add("BARRIO", SECTOR);
        listaCamposValidarRestricciones.Add("TELÉFONO", TEL_ASPIRANTE);
        listaCamposValidarRestricciones.Add("E-MAIL", E_MAIL);
        listaCamposValidarRestricciones.Add("CELULAR", CEL_ASPIRANTE);

        CrtRestriccionPalabra _restricciones = new CrtRestriccionPalabra(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        _restricciones.listaPalabrasEntrada = listaCamposValidarRestricciones;
        _restricciones.ComprobarListaPalabras();

        if (_restricciones.listaPalabrasSalida.Count <= 0)
        {
            DataTable tablaComprobacion = _rad.ObtenerRegSolicitudesingresoPorNumDocIdentidad(NUM_DOC_IDENTIDAD);

            if (tablaComprobacion.Rows.Count > 0)
            {
                DataRow filaComprobacion = tablaComprobacion.Rows[0];

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El número de documento " + NUM_DOC_IDENTIDAD + " ya se encuentra registrado en la Base de Datos.<br>Fecha Registro: " + filaComprobacion["FECHA_R"].ToString().Trim() + ", Usuario: " + filaComprobacion["USU_CRE"].ToString().Trim() + ", Nombre Candidato: " + filaComprobacion["NOMBRES"].ToString().Trim() + " " + filaComprobacion["APELLIDOS"].ToString().Trim() + ".<BR>NO SE PUDO CREAR EL REGISTRO.", Proceso.Advertencia);
                return false;
            }
            else
            {
                Decimal ID_SOLICITUD = _rad.AdicionarRegSolicitudesingreso(DateTime.Now, APELLIDOS, NOMBRES, TIP_DOC_IDENTIDAD, NUM_DOC_IDENTIDAD, CIU_CEDULA, LIB_MILITAR, CAT_LIC_COND, DIR_ASPIRANTE, SECTOR, CIU_ASPIRANTE, TEL_ASPIRANTE, SEXO, FCH_NACIMIENTO, ID_GRUPOS_PRIMARIOS, ID_FUENTE, CONDUCTO, NIV_EDUCACION, E_MAIL, ID_AREASINTERES, ASPIRACION_SALARIAL, EXPERIENCIA, ID_OCUPACION, NUCLEO_FORMACION, TALLA_CAMISA, TALLA_PANTALON, TALLA_ZAPATOS, ESTRATO, NRO_HIJOS, C_FMLIA, CEL_ASPIRANTE, ESTADO_CIVIL, ID_PAIS, TIPO_VIVIENDA, FUENTE_CONOCIMIENTO, listaFormacionAcademica, listaExperiencia, listaComposicionFamiliar, RH);

                if (ID_SOLICITUD <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _rad.MensajeError, Proceso.Error);
                    return false;
                }
                else
                {
                    HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString();
                    HiddenField_AccionSobreFormulario.Value = AccionesForm.Modificar.ToString();
                    return true;
                }
            }
        }
        else
        {
            Int32 contador = 0;
            String mensaje = "";
            foreach (KeyValuePair<String, String> restriccion in _restricciones.listaPalabrasSalida)
            {
                if (contador <= 0)
                {
                    mensaje = restriccion.Value;
                }
                else
                {
                    mensaje += "</br>" + restriccion.Value;
                }

                contador += 1;
            }

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, mensaje, Proceso.Advertencia);
            return false;
        }
    }
    private void Buscar()
    {
        String datoCapturado = TextBox_BUSCAR.Text.Trim();

        Ocultar(Acciones.Inicio);
        Mostrar(Acciones.buscar);

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

        switch (this.DropDownList_BUSCAR.SelectedValue)
        {
            case "NUM_DOC_IDENTIDAD":
                tablaInfotrabajador = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorNumDocIdentidad(datoCapturado);
                break;
            case "NOMBRES":
                tablaInfotrabajador = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorNombres(datoCapturado);
                break;
            case "APELLIDOS":
                tablaInfotrabajador = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorApellidos(datoCapturado);
                break;
        }

        if (tablaInfotrabajador.Rows.Count > 0)
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaInfotrabajador;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
        else
        {
            if (!String.IsNullOrEmpty(_radicacionHojasDeVida.MensajeError))
            {
                Informar(Panel_MENSAJES, Label_MENSAJE, "Error: Consulte con el Administrador: " + _radicacionHojasDeVida.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_MENSAJES, Label_MENSAJE, "ADVERTENCIA: No se encontró información para " + this.DropDownList_BUSCAR.SelectedItem + " : " + this.TextBox_BUSCAR.Text, Proceso.Error);
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
    }
    protected void GridView_RESULTADOS_BUSQUEDA_SelectedIndexChanged(object sender, EventArgs e)
    {
        String ID_SOLICITUD = GridView_RESULTADOS_BUSQUEDA.SelectedDataKey["ID_SOLICITUD"].ToString();
        String ID_REQUERIMIENTO = GridView_RESULTADOS_BUSQUEDA.SelectedDataKey["ID_REQUERIMIENTO"].ToString();
        String NUM_DOC_IDENTIDAD = GridView_RESULTADOS_BUSQUEDA.SelectedDataKey["NUM_DOC_IDENTIDAD"].ToString();
        radicacionHojasDeVida _SolIngreso = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaSolIngreso = _SolIngreso.ObtenerRegSolicitudesingresoPorNumDocIdentidad(NUM_DOC_IDENTIDAD.ToString());
        DataRow filaSolIngreso = tablaSolIngreso.Rows[0];

        if (filaSolIngreso["ARCHIVO"].ToString().Trim().Equals("CONTRATADO"))
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona seleccionada no puede ser descartada, porque se encuentra CONTRATADA.", Proceso.Advertencia);
        }
        else
        {
            tools _tools = new tools();
            SecureQueryString QueryStringSeguros;
            QueryStringSeguros = new SecureQueryString(_tools.byteParaQueryStringSeguro());

            QueryStringSeguros["img_area"] = "contratacion";
            QueryStringSeguros["nombre_area"] = "CONTRATACIÓN";
            QueryStringSeguros["nombre_modulo"] = "DESCARTE DE PERSONAL";
            QueryStringSeguros["accion"] = "cargar";
            QueryStringSeguros["reg"] = ID_SOLICITUD;
            QueryStringSeguros["id_Requerimiento"] = ID_REQUERIMIENTO;
            QueryStringSeguros["num_doc_identidad"] = NUM_DOC_IDENTIDAD;

            Response.Redirect("~/contratacion/descartePersonal.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguros.ToString()));
        }
    }
    protected void Button_ADICIONAR_ENTREVISTA_Click(object sender, EventArgs e)
    {
        radicacionHojasDeVida _SolIngreso = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        regRegsitrosHojaVida _Reg_HV = new regRegsitrosHojaVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal NUM_DOC_IDENTIDAD = Convert.ToDecimal(TextBox_NUM_DOC_IDENTIDAD.Text);
        int ID_REQUERIMIENTO = 0;
        int ID_SOLICITUD = 0;

        String ARCHIVO = "DISPONIBLE";

        DataTable tablaSolIngreso = _SolIngreso.ObtenerRegSolicitudesingresoPorNumDocIdentidad(NUM_DOC_IDENTIDAD.ToString());
        DataRow filaSolIngreso = tablaSolIngreso.Rows[0];

        if (filaSolIngreso["ARCHIVO"].Equals("CONTRATADO"))
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona seleccionada no puede ser descartada, porque ya se encuentra en estado CONTRATADA.", Proceso.Advertencia);
        }
        else
        {
            if (RadioButtonList_TipoDescarte.SelectedValue == "-")
            {
                ARCHIVO = "DESCARTADO SELECCION";
            }

            ID_SOLICITUD = Convert.ToInt32(filaSolIngreso["ID_SOLICITUD"].ToString());

            if (!(String.IsNullOrEmpty(filaSolIngreso["ID_REQUERIMIENTO"].ToString())))
            {
                ID_REQUERIMIENTO = Convert.ToInt32(filaSolIngreso["ID_REQUERIMIENTO"].ToString());
            }

            if (Cliente.Checked)
            {
                _Reg_HV.AdicionarRegRegistrosHojaVida(ID_SOLICITUD, "DESC. CONTRATACION", TextBox_comentarios_Entrevista.Text.ToString(), "CLIENTE", ID_REQUERIMIENTO);
                _SolIngreso.ActualizarEstadoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, ARCHIVO);

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona seleccionada fue descartada exitosamente.", Proceso.Correcto);

            }
            else if (Cuenta.Checked)
            {
                _Reg_HV.AdicionarRegRegistrosHojaVida(ID_SOLICITUD, "DESC. CONTRATACION", TextBox_comentarios_Entrevista.Text.ToString(), "CUENTA", ID_REQUERIMIENTO);

                _SolIngreso.ActualizarEstadoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, ARCHIVO);

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona seleccionada fue descartada exitosamente.", Proceso.Correcto);

            }
            else if (Examenes.Checked)
            {
                _Reg_HV.AdicionarRegRegistrosHojaVida(ID_SOLICITUD, "DESC. CONTRATACION", TextBox_comentarios_Entrevista.Text.ToString(), "EXAMENES", ID_REQUERIMIENTO);

                _SolIngreso.ActualizarEstadoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, ARCHIVO);

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_FONDO_MENSAJE, Label_MENSAJE, "La persona seleccionada fue descartada exitosamente.", Proceso.Correcto);

            }
            else if (firma.Checked)
            {
                _Reg_HV.AdicionarRegRegistrosHojaVida(ID_SOLICITUD, "DESC. CONTRATACION", TextBox_comentarios_Entrevista.Text.ToString(), "FIRMA", ID_REQUERIMIENTO);

                _SolIngreso.ActualizarEstadoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, ARCHIVO);

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona seleccionada fue descartada exitosamente.", Proceso.Correcto);

            }
            else if (Otros.Checked)
            {
                _Reg_HV.AdicionarRegRegistrosHojaVida(ID_SOLICITUD, "DESC. CONTRATACION", TextBox_comentarios_Entrevista.Text.ToString(), "OTROS", ID_REQUERIMIENTO);

                _SolIngreso.ActualizarEstadoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, ARCHIVO);

                Informar(Panel_MENSAJES, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La persona seleccionada fue descartada exitosamente.", Proceso.Correcto);

            }

            Panel_Descarte_Entrevista.Enabled = false;

            Button3.Visible = false;
            Button5.Visible = false;
            Button_ENTREVISTA.Visible = false;

            TextBox_ESTADO_ASPIRANTE.Text = ARCHIVO;
        }
    }
    protected void GridView_RESULTADOS_BUSQUEDA_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView_RESULTADOS_BUSQUEDA.PageIndex = e.NewPageIndex;

        String datosCapturados = TextBox_BUSCAR.Text.ToUpper();

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

        DataTable tablaResultadosBusqueda = new DataTable();

        if (DropDownList_BUSCAR.SelectedValue == "NOMBRES")
        {
            tablaResultadosBusqueda = _SolIngreso.ObtenerRegSolicitudesingresoPorNombres(datosCapturados);
        }
        else
        {
            if (DropDownList_BUSCAR.SelectedValue == "APELLIDOS")
            {
                tablaResultadosBusqueda = _SolIngreso.ObtenerRegSolicitudesingresoPorApellidos(datosCapturados);
            }
            else
            {
                if (DropDownList_BUSCAR.SelectedValue == "NUM_DOC_IDENTIDAD")
                {
                    tablaResultadosBusqueda = _SolIngreso.ObtenerRegSolicitudesingresoPorNumDocIdentidad(datosCapturados);
                }
            }
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_SolIngreso.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _SolIngreso.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron registros que cumplierna los datos de busqueda.", Proceso.Advertencia);
            }
        }
        else
        {
            Panel_RESULTADOS_GRID.Enabled = true;
            Panel_RESULTADOS_GRID.Visible = true;
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();

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

                if ((filaSolicitud["ARCHIVO"].ToString().ToUpper().Trim() == "DISPONIBLE") || (filaSolicitud["ARCHIVO"].ToString().ToUpper().Trim() == "ASPIRANTE") || (filaSolicitud["ARCHIVO"].ToString().ToUpper().Trim() == "CONTRATADO") || (filaSolicitud["ARCHIVO"].ToString().ToUpper().Trim() == "DESCARTADO SELECCION"))
                {
                    GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[0].Enabled = false;
                    GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[0].Text = "";
                }
            }
        }
    }
    private void Buscar()
    {
        Ocultar(Acciones.Inicio);
        Mostrar(Acciones.Inicio);

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

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

        DataTable tablaResultadosBusqueda = new DataTable();

        if (campo == "NOMBRES")
        {
            tablaResultadosBusqueda = _SolIngreso.ObtenerRegSolicitudesingresoPorNombres(datosCapturados);
        }
        else
        {
            if (campo == "APELLIDOS")
            {
                tablaResultadosBusqueda = _SolIngreso.ObtenerRegSolicitudesingresoPorApellidos(datosCapturados);
            }
            else
            {
                if (campo == "NUM_DOC_IDENTIDAD")
                {
                    tablaResultadosBusqueda = _SolIngreso.ObtenerRegSolicitudesingresoPorNumDocIdentidad(datosCapturados);
                }
            }
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_SolIngreso.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _SolIngreso.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "ADVERTENCIA: No se encontraron registros que cumplieran los datos de busqueda.", Proceso.Advertencia);
            }
        }
        else
        {
            Panel_RESULTADOS_GRID.Visible = true;
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();

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

                if ((filaSolicitud["ARCHIVO"].ToString().ToUpper().Trim() == "CONTRATADO"))
                {
                    GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[0].Enabled = false;
                    GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[0].Text = "";
                }
            }
        }
    }