public void activarEmpleado()
    {
        radicacionHojasDeVida _sol = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        registroContrato contrato = new registroContrato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        String valores = HiddenField_persona.Value;
        String[] val = valores.Split(',');

        DataTable tablaCont = contrato.ObtenerConRegContratosPorRegistro(Convert.ToInt32(val[5].ToString()));
        DataRow filacont = tablaCont.Rows[0];

        if (filacont["CONTRATO_IMPRESO"].Equals("S") & filacont["CLAUSULA_IMPRESO"].Equals("S"))
        {
            _sol.ActualizarEstadoRegSolicitudesIngreso(Convert.ToInt32(val[1].ToString()), Convert.ToInt32(val[0].ToString()), "CONTRATADO");
            Label_MENSAJE_Entregas.Text = "Se activo el empleado en el sistema";
            configurarMensajes(true, System.Drawing.Color.Green, Label_MENSAJE_Entregas, Panel_MENSAJE_Entregas);
        }
        else
        {
            Label_MENSAJE_Entregas.Text = "ADVERTENCIA: No se han impreso las clausulas o el contrato. Verifique por favor";
            configurarMensajes(true, System.Drawing.Color.Red, Label_MENSAJE_Entregas, Panel_MENSAJE_Entregas);
        }
    }
        public String ElaborarContrato(int id_requerimiento, int id_solicitud, int id_empresa, int id_centro_Costo, int id_sub_cc, String ciudad,
            int ID_SERVICIO_RESPECTIVO, int servicio, int id_ARP, int id_caja_c, int id_EPS, int id_Pensiones, Decimal riesgo, String pensionado,
            String Clase_Contrato, String Tipo_Contrato, String Tipo_Pago, DateTime fecha_Inicia, DateTime fecha_termina, String sal_int,
            Decimal Salario, String vigente, String activo, String liquidado, String pago_Liquidacion, int id_entidad, String Num_Cuenta, String Forma_pago,
            String PAGO_DIAS_PRODUCTIVIDAD, String SENA_PRODICTIVO, String SENA_ELECTIVO, String PRACTICANTE_UNIVERSITARIO, Decimal VALOR_NOMINA, Decimal VALOR_CONTRATO,
            DateTime FECHA_INICIO_PERIODO, DateTime FECHA_FIN_PERIODO, String Periodo_Pago, String tipo_Cuenta, string descripcion_salario, decimal idPerfil)
        {
            String datosG = "";
            int id_perfil = 0;
            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

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

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

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

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

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

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

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

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

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

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

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

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

            return datosG;
        }
    protected void Button_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);
            }
        }
    }
        public Decimal AdicionarRegRegistrosHojaVida(Decimal ID_SOLICITUD,
            String CLASE_REGISTRO,
            String COMENTARIOS,
            String MOTIVO,
            Decimal ID_REQUERIMIENTO)
        {
            Boolean correcto = true;

            Decimal REGISTRO_HOJA_VIDA = 0;
            String ARCHIVO = "";

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                REGISTRO_HOJA_VIDA = AdicionarRegistroHojaVida(ID_SOLICITUD, CLASE_REGISTRO, COMENTARIOS, MOTIVO, ID_REQUERIMIENTO, conexion);

                if (REGISTRO_HOJA_VIDA <= 0)
                {
                    conexion.DeshacerTransaccion();
                    correcto = false;
                    REGISTRO_HOJA_VIDA = 0;
                }
                else
                {
                    if (CLASE_REGISTRO == "DESC. SELECCION")
                    {
                        ARCHIVO = "DESCARTADO SELECCION";
                    }
                    else
                    {
                        ARCHIVO = "DISPONIBLE";
                    }

                    radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Empresa, Usuario);

                    if (_radicacionHojasDeVida.ActualizarEstadoRegSolicitudesIngreso(ID_REQUERIMIENTO, ID_SOLICITUD, ARCHIVO, conexion) == false)
                    {
                        conexion.DeshacerTransaccion();
                        correcto = false;
                        REGISTRO_HOJA_VIDA = 0;
                        MensajeError = _radicacionHojasDeVida.MensajeError;
                    }
                }

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

            return REGISTRO_HOJA_VIDA;
        }
    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_CANDIDATOS_EN_CLIENTE_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"].ToString());
        int ID_REQUERIMIENTO = Convert.ToInt32(QueryStringSeguro["requerimiento"]);

        int filaSeleccionada = Convert.ToInt32(e.CommandArgument);
        int ID_SOLICITUD = Convert.ToInt32(GridView_CANDIDATOS_EN_CLIENTE.DataKeys[filaSeleccionada].Values["ID_SOLICITUD"]);

        Boolean resultado = true;
        if (e.CommandName == "disponible")
        {
            radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

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

            if (resultado == true)
            {
                configurarMensajes(true, System.Drawing.Color.Green);
                Label_MENSAJE.Text = "Se actualizó correctamente el estado del candidato.";
            }
            else
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = _radicacionHojasDeVida.MensajeError;
            }

            configurarPaneles(false, false, false, false, false, true);

            Button_ENVIAR_CANDIDATOS.Visible = true;
        }
        else
        {
            if (e.CommandName == "contratar")
            {
                Label_ID_SOLICITUD.Text = ID_SOLICITUD.ToString();
                Panel_BOTONES_INTERNOS_ENVIAR_A_CONTRATAR.Visible = false;
                Panel_CONFIRMAR_SULEDO_ENVIAR_A_CONTRATAR.Visible = true;
                TextBox_CONFIRMAR_SUELDO.Text = TextBox_SALARIO.Text;
                TextBox_FECHA_INICIACION.Text = DateTime.Now.ToShortDateString();
                Label_NOMBRE_CANDIDATO.Text = GridView_CANDIDATOS_EN_CLIENTE.Rows[filaSeleccionada].Cells[5].Text + " " + GridView_CANDIDATOS_EN_CLIENTE.Rows[filaSeleccionada].Cells[6].Text;

                DataTable tablaRequisitosFaltantes = devolverRequisitosFaltantes(ID_REQUERIMIENTO, ID_SOLICITUD);

                if (DropDownList_TIP_REQ.SelectedItem.ToString() != "TRASLADO")
                {
                    if (tablaRequisitosFaltantes.Rows.Count <= 0)
                    {
                        Panel_REQUISITOS_FALTANTES.Visible = false;
                        Panel_REQUISITOS_CUMPLIDOS.Visible = true;
                        Button_CONFIRMAR_SUELDO.Visible = true;
                    }
                    else
                    {
                        Panel_REQUISITOS_FALTANTES.Visible = true;
                        Panel_REQUISITOS_CUMPLIDOS.Visible = false;
                        Button_CONFIRMAR_SUELDO.Visible = false;

                        GridView_REQUISITOS_FALTANTES.DataSource = tablaRequisitosFaltantes;
                        GridView_REQUISITOS_FALTANTES.DataBind();

                        configurarMensajes(true, System.Drawing.Color.Orange);
                        Label_MENSAJE.Text = "La persona que intenta enviar a contratar no cumple con los requerimientos.";
                    }
                }
                else
                {
                    Panel_REQUISITOS_FALTANTES.Visible = false;
                    Panel_REQUISITOS_CUMPLIDOS.Visible = true;
                    Button_CONFIRMAR_SUELDO.Visible = true;
                }
            }
        }
    }