private void Modificar()
    {
        Decimal REGISTRO = Convert.ToDecimal(HiddenField_REGISTRO_ACOSET.Value);
        String APELLIDOS = TextBox_APELLIDOS.Text.Trim().ToUpper();
        String NOMBRES = TextBox_NOMBRES.Text.Trim().ToUpper();

        String TIP_DOC_IDENTIDAD = DropDownList_TIP_DOC.SelectedValue;
        String NUM_DOC_IDENTIDAD = TextBox_NUM_DOC.Text.Trim();

        String ENTIDAD_REPORTA = DropDownList_ENTIDAD_REPORTA.SelectedValue;

        String OBS_ACOSET = TextBox_MOTIVO_REPORTE.Text.Trim().ToUpper();

        Boolean ACTIVO = true;

        if(DropDownList_ESTADO_REGISTRO.SelectedValue == "False")
        {
            ACTIVO = false;
        }

        String MOTIVO_ESTADO = null;

        if(String.IsNullOrEmpty(TextBox_MOTIVO_ESTADO.Text) == false)
        {
            MOTIVO_ESTADO = TextBox_MOTIVO_ESTADO.Text.Trim().ToUpper();
        }

        acoset _acoset = new acoset(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        Boolean verificador = _acoset.ActualizarAcoset(REGISTRO, APELLIDOS, NOMBRES, TIP_DOC_IDENTIDAD, NUM_DOC_IDENTIDAD, OBS_ACOSET, ENTIDAD_REPORTA, ACTIVO, MOTIVO_ESTADO);

        if(verificador == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _acoset.MensajeError, Proceso.Error);
        }
        else
        {
            Cargar(REGISTRO);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El registro Acoset asociado al número de identificación: " + NUM_DOC_IDENTIDAD + " fue modificado correctamente.", Proceso.Correcto);
        }
    }
    protected void Button_CONFIRMAR_INFO_aRCHIVP_PLANO_Click(object sender, EventArgs e)
    {
        Session.Remove("listaRegistrosAcoset");

        List<acoset> listaRegistros = new List<acoset>();
        acoset _acosetParaLista;

        Boolean verificador = true;
        String filaArchivo = null;
        String[] filaArchivoArray;

        Int32 contadorRegistrosTotales = 0;
        Int32 contadorRegistrosProcesados = 0;

        DataTable tablaErrores = InicializarTablaErrores();
        DataRow filaError;

        parametro _parametro = new parametro(Session["idEmpresa"].ToString());
        DataTable tablaEntidadesAcoset = _parametro.ObtenerParametrosPorTabla(tabla.PARAMETROS_ENTIDAD_ACOSET);
        Boolean datoCorrecto = true;

        DataTable tablaTipDocs = _parametro.ObtenerParametrosPorTabla(tabla.PARAMETROS_TIP_DOC_ID);

        if (FileUpload_ARCHIVO_PLANO.HasFile == true)
        {
            using (StreamReader reader = new StreamReader(FileUpload_ARCHIVO_PLANO.PostedFile.InputStream))
            {
                while ((filaArchivo = reader.ReadLine()) != null)
                {
                    contadorRegistrosTotales += 1;

                    filaArchivoArray = filaArchivo.Split(';');

                    _acosetParaLista = new acoset(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

                    verificador = true;

                    if (filaArchivoArray.Length == 6)
                    {
                        _acosetParaLista.ACTIVO = true;
                        _acosetParaLista.APELLIDOS = filaArchivoArray[0].ToUpper();

                        datoCorrecto = false;
                        foreach(DataRow filaEntidad in tablaEntidadesAcoset.Rows)
                        {
                            if(filaEntidad["CODIGO"].ToString().Trim().ToUpper() == filaArchivoArray[5].ToUpper())
                            {
                                datoCorrecto = true;
                                break;
                            }
                        }
                        if(datoCorrecto == true)
                        {
                            _acosetParaLista.ENTIDAD_REPORTA = filaArchivoArray[5].ToUpper();
                        }
                        else
                        {
                            filaError = tablaErrores.NewRow();

                            filaError["TIPO_ERROR"] = ErroresSubidaMasiva.ERROR_ENTIDAD_REPORTA.ToString();
                            filaError["LINEA"] = contadorRegistrosTotales.ToString();
                            filaError["MENSAJE"] = "El nombre de la entidad que reporta no es correcto.";

                            tablaErrores.Rows.Add(filaError);

                            verificador = false;
                        }

                        _acosetParaLista.MOTIVO_ESTADO = null;
                        _acosetParaLista.NOMBRES = filaArchivoArray[1].ToUpper();
                        _acosetParaLista.NUM_DOC_IDENTIDAD = filaArchivoArray[3].ToUpper();
                        _acosetParaLista.OBS_ACOSET = filaArchivoArray[4].ToUpper();
                        _acosetParaLista.REGISTRO = 0;

                        datoCorrecto = false;
                        foreach(DataRow filaTipoDoc in tablaTipDocs.Rows)
                        {
                            if(filaTipoDoc["CODIGO"].ToString().ToUpper() == filaArchivoArray[2].ToUpper())
                            {
                                datoCorrecto = true;
                                break;
                            }
                        }
                        if(datoCorrecto == true)
                        {
                            _acosetParaLista.TIP_DOC_IDENTIDAD = filaArchivoArray[2].ToUpper();
                        }
                        else
                        {
                            filaError = tablaErrores.NewRow();

                            filaError["TIPO_ERROR"] = ErroresSubidaMasiva.ERROR_TIP_DOC_IDENTIDAD.ToString();
                            filaError["LINEA"] = contadorRegistrosTotales.ToString();
                            filaError["MENSAJE"] = "El tipo de documento de identidad no es correcto.";

                            tablaErrores.Rows.Add(filaError);

                            verificador = false;
                        }
                    }
                    else
                    {
                        filaError = tablaErrores.NewRow();

                        filaError["TIPO_ERROR"] = ErroresSubidaMasiva.ERROR_ESTRUCTURA_ARCHIVO.ToString();
                        filaError["LINEA"] = contadorRegistrosTotales.ToString();
                        filaError["MENSAJE"] = "La línea no tiene la estructura correcta: (APELLIDOS ; NOMBRES ; TIP_DOC_IDENTIDAD ; NUM_DOC_IDENTIDAD ; MOTIVO_REPORTE ; ENTIDAD_REPORTA).";

                        tablaErrores.Rows.Add(filaError);

                        verificador = false;
                    }

                    if (verificador == true)
                    {
                        listaRegistros.Add(_acosetParaLista);

                        contadorRegistrosProcesados += 1;
                    }
                }
            }

            if (tablaErrores.Rows.Count > 0)
            {

                Panel_GRILLA_ERRORES_SUBIDA_MASIVA.Visible = true;
                Panel_FILEUPLOAD_ARCHIVO_PLANO.Visible = true;
                Button_CONFIRMAR_INFO_aRCHIVP_PLANO.Visible = true;
                Button_CANCELAR_SUBIDA_MASIVA.Visible = true;

                Button_GUARDAR_REGISTROS_MASIVOS.Visible = false;
                Panel_INFO_DATOS_SUBIDA_MASIVA.Visible = false;

                GridView_ERRORES_SUBIDA_MASIVA.DataSource = tablaErrores;
                GridView_ERRORES_SUBIDA_MASIVA.DataBind();

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El archivo contiene errores y no puede ser procesado, por favor revise la lista de errores.", Proceso.Error);

                Session.Remove("listaRegistrosAcoset");

                Button_CANCELAR_SUBIDA_MASIVA.Focus();
            }
            else
            {
                Session["listaRegistrosAcoset"] = listaRegistros;

                Panel_GRILLA_ERRORES_SUBIDA_MASIVA.Visible = false;
                Panel_FILEUPLOAD_ARCHIVO_PLANO.Visible = true;
                Button_CONFIRMAR_INFO_aRCHIVP_PLANO.Visible = false;
                Button_CANCELAR_SUBIDA_MASIVA.Visible = true;
                Button_GUARDAR_REGISTROS_MASIVOS.Visible = true;
                Panel_INFO_DATOS_SUBIDA_MASIVA.Visible = true;

                Label_NUM_REGISTROS_ARCHIVO.Text = contadorRegistrosProcesados.ToString();

                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El archivo fue verificado, y cumple con las especificaciones, puede continuar con el cargue masivo de egistros Acoset", Proceso.Correcto);

                Button_CANCELAR_SUBIDA_MASIVA.Focus();
            }
        }
        else
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP,Panel_MENSAJES, Label_MENSAJE, "ERROR: Por favor seleccione el archivo con la información de los registros Acoset.", Proceso.Error);

            Session.Remove("listaRegistrosAcoset");

            Button_CANCELAR_SUBIDA_MASIVA.Focus();
        }
    }
    private void Guardar()
    {
        String NOMBRES = TextBox_NOMBRES.Text.ToUpper().Trim();
        String APELLIDOS = TextBox_APELLIDOS.Text.ToUpper().Trim();
        String TIP_DOC_IDENTIDAD = DropDownList_TIP_DOC.SelectedValue;
        String NUM_DOC_IDENTIDAD = TextBox_NUM_DOC.Text.ToUpper().Trim();

        String OBS_ACOSET = TextBox_MOTIVO_REPORTE.Text.Trim().ToUpper();

        String ENTIDAD_REPORTA = DropDownList_ENTIDAD_REPORTA.SelectedValue;

        acoset _acoset = new acoset(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal REGISTRO = _acoset.AdicionarRegAcoset(APELLIDOS, NOMBRES, TIP_DOC_IDENTIDAD, NUM_DOC_IDENTIDAD, OBS_ACOSET, ENTIDAD_REPORTA);

        if (REGISTRO == 0)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _acoset.MensajeError, Proceso.Error);
        }
        else
        {
            Cargar(REGISTRO);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El numero de identificación: " + NUM_DOC_IDENTIDAD + " fue registrado correctamente en la Base de datos ACOSET.", Proceso.Correcto);
        }
    }
    private void Cargar(Decimal REGISTRO)
    {
        HiddenField_REGISTRO_ACOSET.Value = REGISTRO.ToString();

        acoset _acoset = new acoset(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaRegistro = _acoset.ObtenerRegAcosetPorRegistro(Convert.ToInt32(REGISTRO));

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

            if (_acoset.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _acoset.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información del registro especificado.", Proceso.Error);
            }
        }
        else
        {
            Ocultar(Acciones.Inicio);
            Mostrar(Acciones.CargarRegistro);
            Desactivar(Acciones.Inicio);

            DataRow filaRegistro = tablaRegistro.Rows[0];

            cargar_informacion_registro_control(filaRegistro);

            cargar_datos_personales(filaRegistro);
        }
    }
    private void Buscar()
    {
        Ocultar(Acciones.Inicio);
        Mostrar(Acciones.Busqueda);

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

        acoset _acoset = new acoset(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaResultadosBusqueda = new DataTable();

        if (DropDownList_BUSCAR.SelectedValue == "NOMBRES")
        {
            tablaResultadosBusqueda = _acoset.ObtenerRegAcosetPorNombre(datosCapturados);
        }
        else
        {
            if (DropDownList_BUSCAR.SelectedValue == "APELLIDOS")
            {
                tablaResultadosBusqueda = _acoset.ObtenerRegAcosetPorApellido(datosCapturados);
            }
            else
            {
                if (DropDownList_BUSCAR.SelectedValue == "NUM_DOC_IDENTIDAD")
                {
                    tablaResultadosBusqueda = _acoset.ObtenerRegAcosetPorNumeroID(datosCapturados);
                }
            }
        }

        if (tablaResultadosBusqueda.Rows.Count <= 0)
        {
            if (_acoset.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _acoset.MensajeError, Proceso.Error);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La busqueda no arrojó resultados.", Proceso.Advertencia);
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaResultadosBusqueda;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
    protected void Button_GUARDAR_REGISTROS_MASIVOS_Click(object sender, EventArgs e)
    {
        List<acoset> listaRegistrosAcoset = new List<acoset>();

        try
        {
            listaRegistrosAcoset = (List<acoset>)(Session["listaRegistrosAcoset"]);
        }
        catch
        {
            listaRegistrosAcoset = new List<acoset>();
        }

        acoset _acoset = new acoset(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Boolean verificador = _acoset.AdicionarRegAcosetMasivo(listaRegistrosAcoset);

        if (verificador == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _acoset.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 carga masiva de reportes Acoset fue realizada correctamente. Se procesaron " + listaRegistrosAcoset.Count.ToString() + " registros correctamente.", Proceso.Correcto);
        }
    }
        public DataTable ObtenerRegSolicitudesingresoPorNumDocIdentidadValAcoset(String NUM_DOC_IDENTIDAD)
        {
            DataSet _dataSet = new DataSet();
            DataView _dataView = new DataView();
            DataTable _dataTable = new DataTable();
            String sql = null;
            String informacion = null;
            Boolean ejecutar = true;

            acoset _acoset = new acoset(Empresa, Usuario);

            if (_acoset.ObtenerRegAcosetPorNumeroID(NUM_DOC_IDENTIDAD).Rows.Count == 0)
            {
                if (ObtenerRegSolicitudesingresoPorNumDocIdentidadDescartadoMalo(NUM_DOC_IDENTIDAD).Rows.Count == 0)
                {
                    sql = "usp_reg_solicitudes_ingreso_obtener_Por_num_doc_identidad_para_radicacion_hoja_vida ";

                    if (!(String.IsNullOrEmpty(NUM_DOC_IDENTIDAD)))
                    {
                        sql += "'" + NUM_DOC_IDENTIDAD.Trim() + "'";
                        informacion += "NUM_DOC_IDENTIDAD = '" + NUM_DOC_IDENTIDAD.ToString() + "'";
                    }
                    else
                    {
                        MensajeError += "El campo NUM_DOC_IDENTIDAD no puede ser nulo\n";
                        ejecutar = false;
                    }

                    if (ejecutar)
                    {
                        Conexion conexion = new Conexion(Empresa);
                        try
                        {
                            _dataSet = conexion.ExecuteReader(sql);
                            _dataView = _dataSet.Tables[0].DefaultView;
                            _dataTable = _dataView.Table;

                            #region auditoria
                            auditoria _auditoria = new auditoria(Empresa);
                            _auditoria.Adicionar(Usuario, tabla.REG_SOLICITUDES_INGRESO, tabla.ACCION_CONSULTAR, sql, informacion, conexion);
                            #endregion auditoria
                        }
                        catch (Exception e)
                        {
                            MensajeError = e.Message;
                        }
                        finally
                        {
                            conexion.Desconectar();
                        }
                    }
                }
                else
                {
                    MensajeError = "El aspirante fue rechazado de forma negativa con anterioridad.";
                }

            }
            else
            {
                MensajeError = "Descartado limitante comuníquese con su jefe inmediato.";
            }

            return _dataTable;
        }