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;
        }
    }
    private void CargarClausulasAdicionales(Decimal ID_EMPRESA)
    {
        DataTable tablaPerfilesClausulas = ConfigurarTablaPerfilesClausulas();

        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPerfiles = _perfil.ObtenerVenDPerfilesConOcupacionPorIdEmpresa(ID_EMPRESA);

        foreach (DataRow filaPerfil in tablaPerfiles.Rows)
        {
            Decimal ID_PERFIL = Convert.ToDecimal(filaPerfil["REGISTRO"]);
            String PERFIL = filaPerfil["NOM_OCUPACION"].ToString().Trim() + " (Entre " + filaPerfil["EDAD_MIN"].ToString().Trim() + " y " + filaPerfil["EDAD_MAX"].ToString().Trim() + ").";

            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaClausulas = _condicionesContratacion.obtenerClausulasPorPerfil(ID_PERFIL);

            String CLAUSULAS = String.Empty;
            foreach(DataRow filaClausula in tablaClausulas.Rows)
            {
                if (String.IsNullOrEmpty(CLAUSULAS) == true)
                {
                    CLAUSULAS = filaClausula["NOMBRE"].ToString().Trim() + ".";
                }
                else
                {
                    CLAUSULAS += "<br>" + filaClausula["NOMBRE"].ToString().Trim();
                }
            }

            DataRow filaPerfilClausula = tablaPerfilesClausulas.NewRow();

            filaPerfilClausula["REGISTRO"] = ID_PERFIL;
            filaPerfilClausula["PERFIL"] = PERFIL;
            if(String.IsNullOrEmpty(CLAUSULAS) == true)
            {
                filaPerfilClausula["CLAUSULAS_ADICIONALES"] = "Ninguna.";
            }
            else
            {
                filaPerfilClausula["CLAUSULAS_ADICIONALES"] = CLAUSULAS;
            }

            tablaPerfilesClausulas.Rows.Add(filaPerfilClausula);
            tablaPerfilesClausulas.AcceptChanges();
        }

        if (tablaPerfilesClausulas.Rows.Count <= 0)
        {
            GridView_ClausulasAdicionalesContrato.DataSource = null;
        }
        else
        {
            GridView_ClausulasAdicionalesContrato.DataSource = tablaPerfilesClausulas;
        }

        GridView_ClausulasAdicionalesContrato.DataBind();
    }
    protected void DropDownList_SUB_CENTRO_TRABAJADOR_SelectedIndexChanged(object sender, EventArgs e)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);
        String ID_CIUDAD = DropDownList_CIUDAD_TRABAJADOR.SelectedValue;
        Decimal ID_CENTRO_C = Convert.ToDecimal(DropDownList_CC_TRABAJADOR.SelectedValue);

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        if (DropDownList_SUB_CENTRO_TRABAJADOR.SelectedIndex <= 0)
        {
            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCentroC(ID_PERFIL, ID_CENTRO_C);

            if (tablaCondicionContratacion.Rows.Count <= 0)
            {
                colorear_indicadores_de_ubicacion(false, true, false, System.Drawing.Color.Red);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
            }
            else
            {
                colorear_indicadores_de_ubicacion(false, true, false, System.Drawing.Color.Green);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
            }
        }
        else
        {
            Decimal ID_SUB_C = Convert.ToDecimal(DropDownList_SUB_CENTRO_TRABAJADOR.SelectedValue);

            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdSubC(ID_PERFIL, ID_SUB_C);

            if (tablaCondicionContratacion.Rows.Count <= 0)
            {
                colorear_indicadores_de_ubicacion(false, false, true, System.Drawing.Color.Red);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
            }
            else
            {
                colorear_indicadores_de_ubicacion(false, false, true, System.Drawing.Color.Green);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
            }
        }
    }
    private void cargar_ubicacion_trabajador_segun_ciudad_cc_subc(DataRow filaInfoContrato)
    {
        String ID_CIUDAD = filaInfoContrato["ID_CIUDAD"].ToString().Trim();
        Decimal ID_CENTRO_C = 0;
        Decimal ID_SUB_C = 0;

        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);
        Decimal ID_EMPRESA = Convert.ToDecimal(filaInfoContrato["ID_EMPRESA"]);

        try
        {
            ID_CENTRO_C = Convert.ToDecimal(filaInfoContrato["ID_CENTRO_C"]);
        }
        catch
        {
            ID_CENTRO_C = 0;
        }

        try
        {
            ID_SUB_C = Convert.ToDecimal(filaInfoContrato["ID_SUB_C"]);
        }
        catch
        {
            ID_SUB_C = 0;
        }

        HiddenField_CIUDAD_TRABAJADOR.Value = ID_CIUDAD;
        HiddenField_CENTRO_C_TRABAJADOR.Value = ID_CENTRO_C.ToString();
        HiddenField_SUB_C_TRABAJADOR.Value = ID_SUB_C.ToString();

        HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

        cargar_DropDownList_RIESGO_EMPLEADO(ID_EMPRESA);

        try
        {
            DropDownList_RIESGO_EMPLEADO.SelectedValue = Convert.ToDecimal(filaInfoContrato["RIESGO"]).ToString();
        }
        catch
        {
            DropDownList_RIESGO_EMPLEADO.SelectedIndex = 0;
        }
        HiddenField_RIESGO_INICIAL.Value = DropDownList_RIESGO_EMPLEADO.SelectedValue;

        if (String.IsNullOrEmpty(HiddenField_RIESGO_INICIAL.Value) == true)
        {
            Label_RIESGO_INICIAL.Text = "Riesgo Inicial: Desconocido";
            Label_RIESGO_INICIAL.ForeColor = System.Drawing.Color.Red;
        }
        else
        {
            Label_RIESGO_INICIAL.Text = "Riesgo Inicial: " + HiddenField_RIESGO_INICIAL.Value;
            Label_RIESGO_INICIAL.ForeColor = System.Drawing.Color.Green;
        }

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        if (ID_SUB_C != 0)
        {
            subCentroCosto _subCentroCosto = new subCentroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

            DataTable tablaInfoSubC = _subCentroCosto.ObtenerSubCentroDeCostoPorIdSubCConInfoDeCCyCiudad(ID_SUB_C);
            DataRow filaInfoSubC = tablaInfoSubC.Rows[0];

            cargar_DropDownList_CIUDAD(ID_EMPRESA);
            DropDownList_CIUDAD_TRABAJADOR.SelectedValue = filaInfoSubC["ID_CIUDAD"].ToString().Trim();

            cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, filaInfoSubC["ID_CIUDAD"].ToString().Trim());
            DropDownList_CC_TRABAJADOR.SelectedValue = filaInfoSubC["ID_CENTRO_C"].ToString().Trim();

            cargar_DropDownList_SUB_CENTRO(ID_EMPRESA, Convert.ToDecimal(filaInfoSubC["ID_CENTRO_C"]));
            try
            {
                DropDownList_SUB_CENTRO_TRABAJADOR.SelectedValue = ID_SUB_C.ToString();
            }
            catch
            {
                DropDownList_SUB_CENTRO_TRABAJADOR.ClearSelection();
            }

            DropDownList_CIUDAD_TRABAJADOR.Enabled = true;
            DropDownList_CC_TRABAJADOR.Enabled = true;
            DropDownList_SUB_CENTRO_TRABAJADOR.Enabled = true;

            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdSubC(ID_PERFIL, ID_SUB_C);

            if (tablaCondicionContratacion.Rows.Count <= 0)
            {
                colorear_indicadores_de_ubicacion(false, false, true, System.Drawing.Color.Red);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
            }
            else
            {
                colorear_indicadores_de_ubicacion(false, false, true, System.Drawing.Color.Green);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
            }
        }
        else
        {
            if (ID_CENTRO_C != 0)
            {
                centroCosto _centroCosto = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

                DataTable tablaInfoCentroC = _centroCosto.ObtenerCentrosDeCostoPorIdCentroCosto(ID_CENTRO_C);
                DataRow filaInfoCentroC = tablaInfoCentroC.Rows[0];

                cargar_DropDownList_CIUDAD(ID_EMPRESA);
                DropDownList_CIUDAD_TRABAJADOR.SelectedValue = filaInfoCentroC["ID_CIUDAD"].ToString().Trim();

                cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, filaInfoCentroC["ID_CIUDAD"].ToString().Trim());
                DropDownList_CC_TRABAJADOR.SelectedValue = ID_CENTRO_C.ToString();

                cargar_DropDownList_SUB_CENTRO(ID_EMPRESA, ID_CENTRO_C);

                DropDownList_CIUDAD_TRABAJADOR.Enabled = true;
                DropDownList_CC_TRABAJADOR.Enabled = true;
                DropDownList_SUB_CENTRO_TRABAJADOR.Enabled = true;

                DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCentroC(ID_PERFIL, ID_CENTRO_C);

                if (tablaCondicionContratacion.Rows.Count <= 0)
                {
                    colorear_indicadores_de_ubicacion(false, true, false, System.Drawing.Color.Red);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
                }
                else
                {
                    colorear_indicadores_de_ubicacion(false, true, false, System.Drawing.Color.Green);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
                }
            }
            else
            {
                if (String.IsNullOrEmpty(ID_CIUDAD) == false)
                {
                    cargar_DropDownList_CIUDAD(ID_EMPRESA);
                    DropDownList_CIUDAD_TRABAJADOR.SelectedValue = ID_CIUDAD;

                    cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);

                    DropDownList_CIUDAD_TRABAJADOR.Enabled = true;
                    DropDownList_CC_TRABAJADOR.Enabled = true;
                    inhabilitar_DropDownList_SUB_CENTRO();

                    DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCiudad(ID_PERFIL, ID_CIUDAD);

                    if (tablaCondicionContratacion.Rows.Count <= 0)
                    {
                        colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Red);
                        HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
                    }
                    else
                    {
                        colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Green);
                        HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
                    }
                }
            }
        }
    }
    protected void DropDownList_CIUDAD_TRABAJADOR_SelectedIndexChanged(object sender, EventArgs e)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);

        if (DropDownList_CIUDAD_TRABAJADOR.SelectedIndex <= 0)
        {
            colorear_indicadores_de_ubicacion(false, false, false, System.Drawing.Color.Transparent);
            HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

            inhabilitar_DropDownList_CENTRO_COSTO();
            inhabilitar_DropDownList_SUB_CENTRO();
        }
        else
        {
            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

            String ID_CIUDAD = DropDownList_CIUDAD_TRABAJADOR.SelectedValue;

            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCiudad(ID_PERFIL, ID_CIUDAD);

            if (tablaCondicionContratacion.Rows.Count <= 0)
            {
                colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Red);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
            }
            else
            {
                colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Green);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
            }

            cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);
            DropDownList_CC_TRABAJADOR.Enabled = true;
            inhabilitar_DropDownList_SUB_CENTRO();
        }

        if (HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value == "N")
        {
            Panel_ARP.Visible = false;
            Panel_EPS.Visible = false;
            Panel_CCF.Visible = false;
            Panel_AFP.Visible = false;

            limpiar_DropDownList_AFP();
            limpiar_DropDownList_ENTIDAD_ARP();
            limpiar_DropDownList_ENTIDAD_Caja();
            limpiar_DropDownList_ENTIDAD_EPS();
        }
        else
        {
            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();
        }
    }
    /// <summary>
    /// hecho por cesar pulido
    /// el dia 17 de enero de 2013
    /// para cargar la seccion de examenes medicos por condicion de contratacion
    /// </summary>
    /// <param name="ID_EMPRESA"></param>
    /// <returns></returns>
    private String CargarExamenesMedicosContratacion(Decimal ID_EMPRESA, Conexion _datos)
    {
        DataTable tablaPerfilesExamenes = ConfigurarTablaPerfilesExamenes();

        //capturamos los perfils de la empresa
        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        //ok -------------
        DataTable tablaPerfiles = _perfil.ObtenerVenDPerfilesConOcupacionPorIdEmpresa(ID_EMPRESA, _datos);

        String htmlSeccion = String.Empty;

        //recorremos cada uno de los perfiles de la tabla
        foreach (DataRow filaPerfil in tablaPerfiles.Rows)
        {
            Decimal ID_PERFIL = Convert.ToDecimal(filaPerfil["REGISTRO"]);
            String PERFIL = filaPerfil["NOM_OCUPACION"].ToString().Trim() + " (Entre " + filaPerfil["EDAD_MIN"].ToString().Trim() + " y " + filaPerfil["EDAD_MAX"].ToString().Trim() + ").";

            //CAPTURAMOS LA INFORMACION DE CONDICIONES DE CONTRATACION ASOCIADAS AL PERFIL SELECCIONADO
            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            //ok ---------------
            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionContratacionPorIdPerfil(ID_PERFIL, _datos);

            foreach (DataRow filaCondicion in tablaCondicionContratacion.Rows)
            {
                //ok
                CargarVariablesCiudadCentroYSubCentro(filaCondicion);

                DataTable tablaInfoExamenesParametrizados;
                if (GLO_ID_SUB_C != 0)
                {
                    //ok --------------------
                    tablaInfoExamenesParametrizados = _condicionesContratacion.ObtenerExamenesParametrizadosParaSubC(ID_PERFIL, GLO_ID_SUB_C, 0, _datos);
                }
                else
                {
                    if (GLO_ID_CENTRO_C != 0)
                    {
                        //ok -----------
                        tablaInfoExamenesParametrizados = _condicionesContratacion.ObtenerExamenesParametrizadosParaCentroC(ID_PERFIL, GLO_ID_CENTRO_C, 0, _datos);
                    }
                    else
                    {
                        //ok --------------
                        tablaInfoExamenesParametrizados = _condicionesContratacion.ObtenerExamenesParametrizadosParaCiudad(ID_PERFIL, GLO_ID_CIUDAD, 0, _datos);
                    }
                }

                String EXAMENES_MEDICOS_REQUERIDOS = String.Empty;

                foreach (DataRow filaInfoExamen in tablaInfoExamenesParametrizados.Rows)
                {
                    if (String.IsNullOrEmpty(EXAMENES_MEDICOS_REQUERIDOS) == true)
                    {
                        EXAMENES_MEDICOS_REQUERIDOS = "<b>" + filaInfoExamen["NOMBRE"].ToString().Trim() + "</b> - Facturar a: " + filaInfoExamen["FACTURADO_A"].ToString().Trim();
                    }
                    else
                    {
                        EXAMENES_MEDICOS_REQUERIDOS += "<br><b>" + filaInfoExamen["NOMBRE"].ToString().Trim() + "</b> - Facturar a: " + filaInfoExamen["FACTURADO_A"].ToString().Trim();
                    }
                }

                DataRow filaPerfilExamen = tablaPerfilesExamenes.NewRow();

                filaPerfilExamen["REGISTRO"] = ID_PERFIL;
                filaPerfilExamen["PERFIL"] = PERFIL;

                if (filaCondicion["ID_CIUDAD"] != DBNull.Value)
                {
                    filaPerfilExamen["NOM_SUB_C"] = "NO APLICA";
                    filaPerfilExamen["NOM_CC"] = "NO APLICA";

                    ciudad _ciudad = new ciudad(Session["idEmpresa"].ToString());
                    //ok ---------
                    DataTable tablaCiudad = _ciudad.ObtenerCiudadPorIdCiudad(filaCondicion["ID_CIUDAD"].ToString(), _datos);
                    DataRow filaCiudad = tablaCiudad.Rows[0];

                    filaPerfilExamen["NOMBRE_CIUDAD"] = filaCiudad["NOMBRE_CIUDAD"];
                }
                else
                {
                    if (filaCondicion["ID_CENTRO_C"] != DBNull.Value)
                    {
                        filaPerfilExamen["NOM_SUB_C"] = "NO APLICA";

                        centroCosto _centroCosto = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                        // ok -----------
                        DataTable tablaCC = _centroCosto.ObtenerCentrosDeCostoPorIdCentroCosto(Convert.ToDecimal(filaCondicion["ID_CENTRO_C"]), _datos);
                        DataRow filaCC = tablaCC.Rows[0];

                        filaPerfilExamen["NOM_CC"] = filaCC["NOM_CC"];

                        ciudad _ciudad = new ciudad(Session["idEmpresa"].ToString());
                        // ok ...................
                        DataTable tablaCiudad = _ciudad.ObtenerCiudadPorIdCiudad(filaCC["ID_CIUDAD"].ToString(), _datos);
                        DataRow filaCiudad = tablaCiudad.Rows[0];

                        filaPerfilExamen["NOMBRE_CIUDAD"] = filaCiudad["NOMBRE_CIUDAD"];
                    }
                    else
                    {
                        if (filaCondicion["ID_SUB_C"] != DBNull.Value)
                        {
                            subCentroCosto _subCentroCosto = new subCentroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                            //ok -------------
                            DataTable tablaSubC = _subCentroCosto.ObtenerSubCentrosDeCostoPorIdSubCosto(Convert.ToDecimal(filaCondicion["ID_SUB_C"]), _datos);
                            DataRow filaSubC = tablaSubC.Rows[0];

                            filaPerfilExamen["NOM_SUB_C"] = filaSubC["NOM_SUB_C"];

                            centroCosto _centroCosto = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                            //ok ---------
                            DataTable tablaCC = _centroCosto.ObtenerCentrosDeCostoPorIdCentroCosto(Convert.ToDecimal(filaSubC["ID_CENTRO_C"]), _datos);
                            DataRow filaCC = tablaCC.Rows[0];

                            filaPerfilExamen["NOM_CC"] = filaCC["NOM_CC"];

                            ciudad _ciudad = new ciudad(Session["idEmpresa"].ToString());
                            //ok -------
                            DataTable tablaCiudad = _ciudad.ObtenerCiudadPorIdCiudad(filaCC["ID_CIUDAD"].ToString(), _datos);
                            DataRow filaCiudad = tablaCiudad.Rows[0];

                            filaPerfilExamen["NOMBRE_CIUDAD"] = filaCiudad["NOMBRE_CIUDAD"];
                        }
                    }
                }

                if (String.IsNullOrEmpty(EXAMENES_MEDICOS_REQUERIDOS) == true)
                {
                    filaPerfilExamen["EXAMENES_MEDICOS_REQUERIDOS"] = "Ninguno";
                }
                else
                {
                    filaPerfilExamen["EXAMENES_MEDICOS_REQUERIDOS"] = EXAMENES_MEDICOS_REQUERIDOS;
                }

                tablaPerfilesExamenes.Rows.Add(filaPerfilExamen);
                tablaPerfilesExamenes.AcceptChanges();
            }
        }

        //tablaTemp.Columns.Add("REGISTRO");
        //tablaTemp.Columns.Add("PERFIL");
        //tablaTemp.Columns.Add("NOM_SUB_C");
        //tablaTemp.Columns.Add("NOM_CC");
        //tablaTemp.Columns.Add("NOMBRE_CIUDAD");
        //tablaTemp.Columns.Add("EXAMENES_MEDICOS_REQUERIDOS");

        foreach (DataRow fila in tablaPerfilesExamenes.Rows)
        {
            htmlSeccion += "<tr>";
            htmlSeccion += "  <td width=\"23%\" style=\"text-align:left;\">";
            htmlSeccion += fila["PERFIL"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"13%\" style=\"text-align:center;\">";
            htmlSeccion += fila["NOM_SUB_C"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"13%\" style=\"text-align:center;\">";
            htmlSeccion += fila["NOM_CC"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"13%\" style=\"text-align:center;\">";
            htmlSeccion += fila["NOMBRE_CIUDAD"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"38%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["EXAMENES_MEDICOS_REQUERIDOS"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "</tr>";
        }

        return htmlSeccion;
    }
    private void CargarUbicacionTrabajadorSegunTemporal(DataRow filaContratoTemporal)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        if (DBNull.Value.Equals(filaContratoTemporal["ID_SUB_C"]) == false)
        {
            Decimal ID_SUB_C = Convert.ToDecimal(filaContratoTemporal["ID_SUB_C"]);

            subCentroCosto _sub = new subCentroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaSubCentro = _sub.ObtenerSubCentrosDeCostoPorIdSubCosto(ID_SUB_C);
            DataRow filaSub = tablaSubCentro.Rows[0];

            Decimal ID_CENTRO_C = Convert.ToDecimal(filaSub["ID_CENTRO_C"]);

            centroCosto _centro = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaCentro = _centro.ObtenerCentrosDeCostoPorIdCentroCosto(ID_CENTRO_C);
            DataRow filaCentro = tablaCentro.Rows[0];

            String ID_CIUDAD = filaCentro["ID_CIUDAD"].ToString().Trim();

            cargar_DropDownList_SUB_CENTRO(ID_EMPRESA, ID_CENTRO_C);
            DropDownList_sub_cc.SelectedValue = ID_SUB_C.ToString();
            DropDownList_sub_cc.Enabled = true;

            cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);
            DropDownList_CentroCosto.SelectedValue = ID_CENTRO_C.ToString();
            DropDownList_CentroCosto.Enabled = true;

            cargar_DropDownList_CIUDAD(ID_EMPRESA);
            DropDownList_Ciudad.SelectedValue = ID_CIUDAD;
            DropDownList_Ciudad.Enabled = true;

            if (Session["idEmpresa"].ToString() == "1")
            {
                DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdSubC(ID_PERFIL, ID_SUB_C);

                if (tablaCondicionContratacion.Rows.Count <= 0)
                {
                    colorear_indicadores_de_ubicacion(false, false, true, false, System.Drawing.Color.Red);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                    Label_Riesgo.Text = "Riesgo: Desconocido.";
                    TextBox_Doc_Entregar.Text = "";
                    TextBox_Req_usuario.Text = "";
                }
                else
                {
                    colorear_indicadores_de_ubicacion(false, false, true, false, System.Drawing.Color.Green);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";

                    DataRow filaCondicion = tablaCondicionContratacion.Rows[0];

                    Label_Riesgo.Text = "Riesgo: " + filaCondicion["VALOR_RIESGO"].ToString().Trim(); ;
                    TextBox_Doc_Entregar.Text = filaCondicion["DOC_TRAB"].ToString().Trim();
                    TextBox_Req_usuario.Text = filaCondicion["OBS_CTE"].ToString().Trim();
                }

                Label_Servicio.Visible = false;
                Label_SERVICIO_SELECCIONADO.Visible = false;
            }
            else
            {
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                cargar_DropDownList_SERVICIO_sub_c(ID_SUB_C);

                colorear_indicadores_de_ubicacion(false, false, false, true, System.Drawing.Color.Red);

                Label_Servicio.Visible = true;
                Label_SERVICIO_SELECCIONADO.Visible = true;
            }
        }
        else
        {
            if (DBNull.Value.Equals(filaContratoTemporal["ID_CENTRO_C"]) == false)
            {
                Decimal ID_CENTRO_C = Convert.ToDecimal(filaContratoTemporal["ID_CENTRO_C"]);

                centroCosto _centro = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                DataTable tablaCentro = _centro.ObtenerCentrosDeCostoPorIdCentroCosto(ID_CENTRO_C);
                DataRow filaCentro = tablaCentro.Rows[0];

                String ID_CIUDAD = filaCentro["ID_CIUDAD"].ToString().Trim();

                inhabilitar_DropDownList_SUB_CENTRO();
                DropDownList_sub_cc.Enabled = true;

                cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);
                DropDownList_CentroCosto.SelectedValue = ID_CENTRO_C.ToString();
                DropDownList_CentroCosto.Enabled = true;

                cargar_DropDownList_CIUDAD(ID_EMPRESA);
                DropDownList_Ciudad.SelectedValue = ID_CIUDAD;
                DropDownList_Ciudad.Enabled = true;

                if (Session["idEmpresa"].ToString() == "1")
                {
                    DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCentroC(ID_PERFIL, ID_CENTRO_C);

                    if (tablaCondicionContratacion.Rows.Count <= 0)
                    {
                        colorear_indicadores_de_ubicacion(false, true, false, false, System.Drawing.Color.Red);
                        HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                        Label_Riesgo.Text = "Riesgo: Desconocido.";
                        TextBox_Doc_Entregar.Text = "";
                        TextBox_Req_usuario.Text = "";
                    }
                    else
                    {
                        colorear_indicadores_de_ubicacion(false, true, false, false, System.Drawing.Color.Green);
                        HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";

                        DataRow filaCondicion = tablaCondicionContratacion.Rows[0];

                        Label_Riesgo.Text = "Riesgo: " + filaCondicion["VALOR_RIESGO"].ToString().Trim(); ;
                        TextBox_Doc_Entregar.Text = filaCondicion["DOC_TRAB"].ToString().Trim();
                        TextBox_Req_usuario.Text = filaCondicion["OBS_CTE"].ToString().Trim();
                    }

                    Label_Servicio.Visible = false;
                    Label_SERVICIO_SELECCIONADO.Visible = false;
                }
                else
                {
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                    cargar_DropDownList_SERVICIO_centro_c(ID_CENTRO_C);

                    colorear_indicadores_de_ubicacion(false, false, false, true, System.Drawing.Color.Red);

                    Label_Servicio.Visible = true;
                    Label_SERVICIO_SELECCIONADO.Visible = true;
                }
            }
            else
            {
                String ID_CIUDAD = filaContratoTemporal["ID_CIUDAD"].ToString().Trim();

                inhabilitar_DropDownList_SUB_CENTRO();
                DropDownList_sub_cc.Enabled = true;

                inhabilitar_DropDownList_CENTRO_COSTO();
                DropDownList_CentroCosto.Enabled = true;

                cargar_DropDownList_CIUDAD(ID_EMPRESA);
                DropDownList_Ciudad.SelectedValue = ID_CIUDAD;
                DropDownList_Ciudad.Enabled = true;

                if (Session["idEmpresa"].ToString() == "1")
                {
                    DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCiudad(ID_PERFIL, ID_CIUDAD);

                    if (tablaCondicionContratacion.Rows.Count <= 0)
                    {
                        colorear_indicadores_de_ubicacion(true, false, false, false, System.Drawing.Color.Red);
                        HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                        Label_Riesgo.Text = "Riesgo: Desconocido.";
                        TextBox_Doc_Entregar.Text = "";
                        TextBox_Req_usuario.Text = "";
                    }
                    else
                    {
                        colorear_indicadores_de_ubicacion(true, false, false, false, System.Drawing.Color.Green);
                        HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";

                        DataRow filaCondicion = tablaCondicionContratacion.Rows[0];

                        Label_Riesgo.Text = "Riesgo: " + filaCondicion["VALOR_RIESGO"].ToString().Trim(); ;
                        TextBox_Doc_Entregar.Text = filaCondicion["DOC_TRAB"].ToString().Trim();
                        TextBox_Req_usuario.Text = filaCondicion["OBS_CTE"].ToString().Trim();
                    }

                    Label_Servicio.Visible = false;
                    Label_SERVICIO_SELECCIONADO.Visible = false;
                }
                else
                {
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                    cargar_DropDownList_SERVICIO_ciudad(ID_CIUDAD, ID_EMPRESA);

                    colorear_indicadores_de_ubicacion(false, false, false, true, System.Drawing.Color.Red);

                    Label_Servicio.Visible = true;
                    Label_SERVICIO_SELECCIONADO.Visible = true;
                }
            }
        }
    }
    private void Guardar()
    {
        determinarIDsSubCCentrosCCiudad();

        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);

        String RIESGO = DropDownList_RIESGOS.SelectedValue;

        String DOC_TRAB = GetListaDocumentosEntregados();

        String OBS_CTE = TextBox_REQUERIMIENTOS_USUARIO.Text.ToUpper().Trim();

        condicionComercial _condicionComercial = new condicionComercial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        List<condicionesContratacion> listaImplementosExamenes = new List<condicionesContratacion>();

        DataTable tablaImplementos = ObtenerDataTable_De_GridView_Implementos();
        for (int i = 0; i < tablaImplementos.Rows.Count; i++)
        {
            DataRow filaTabla = tablaImplementos.Rows[i];

            condicionesContratacion _implementoParaLista = new condicionesContratacion();
            _implementoParaLista.AJUSTE_A = tabla.EntregaAjusteA.CONTRATO.ToString();

            if (String.IsNullOrEmpty(filaTabla["CANTIDAD_INICIAL"].ToString()) == false) { _implementoParaLista.CANTIDAD = Convert.ToInt32(filaTabla["CANTIDAD_INICIAL"]); }
            else { _implementoParaLista.CANTIDAD = 0; }

            _implementoParaLista.FACTURAR_A = filaTabla["CODIGO_FACTURAR_A_INICIAL"].ToString().Trim();
            _implementoParaLista.FECHA_INICIO = new DateTime();
            _implementoParaLista.ID_PERIODICIDAD = "0";
            _implementoParaLista.ID_PRODUCTO = Convert.ToDecimal(filaTabla["ID_PRODUCTO"]);
            _implementoParaLista.PRIMERA_ENTREGA = true;
            _implementoParaLista.REGISTRO_CON_REG_ELEMENTO_TRABAJO = Convert.ToDecimal(filaTabla["REGISTRO_CON_REG_ELEMENTO_TRABAJO_INICIAL"]);
            _implementoParaLista.REGISTRO_VEN_P_CONTRATACION = 0;
            if (String.IsNullOrEmpty(filaTabla["VALOR_INICIAL"].ToString().Trim()) == false)
            {
                _implementoParaLista.VALOR = Convert.ToDecimal(filaTabla["VALOR_INICIAL"]);
            }
            else
            {
                _implementoParaLista.VALOR = 0;
            }

            listaImplementosExamenes.Add(_implementoParaLista);

            if (filaTabla["CHECK_PROGRAMADO"].ToString() == "True")
            {
                _implementoParaLista = new condicionesContratacion();
                _implementoParaLista.AJUSTE_A = filaTabla["AJUSTE_A_PROGRAMADO"].ToString();

                if (String.IsNullOrEmpty(filaTabla["CANTIDAD_PROGRAMADO"].ToString()) == false) { _implementoParaLista.CANTIDAD = Convert.ToInt32(filaTabla["CANTIDAD_PROGRAMADO"]); }
                else { _implementoParaLista.CANTIDAD = 0; }

                _implementoParaLista.FACTURAR_A = filaTabla["CODIGO_FACTURAR_A_PROGRAMADO"].ToString().Trim();

                if (String.IsNullOrEmpty(filaTabla["FECHA_INICIO_PROGRAMADO"].ToString().Trim()) == false) { _implementoParaLista.FECHA_INICIO = Convert.ToDateTime(filaTabla["FECHA_INICIO_PROGRAMADO"]); }
                else { _implementoParaLista.FECHA_INICIO = new DateTime(); }

                _implementoParaLista.ID_PERIODICIDAD = filaTabla["CODIGO_PERIODO_PROGRAMADO"].ToString();
                _implementoParaLista.ID_PRODUCTO = Convert.ToDecimal(filaTabla["ID_PRODUCTO"]);
                _implementoParaLista.PRIMERA_ENTREGA = false;
                _implementoParaLista.REGISTRO_CON_REG_ELEMENTO_TRABAJO = Convert.ToDecimal(filaTabla["REGISTRO_CON_REG_ELEMENTO_TRABAJO_PROGRAMADO"]);
                _implementoParaLista.REGISTRO_VEN_P_CONTRATACION = 0;
                if (String.IsNullOrEmpty(filaTabla["VALOR_PROGRAMADO"].ToString().Trim()) == false)
                {
                    _implementoParaLista.VALOR = Convert.ToDecimal(filaTabla["VALOR_PROGRAMADO"]);
                }
                else
                {
                    _implementoParaLista.VALOR = 0;
                }

                listaImplementosExamenes.Add(_implementoParaLista);
            }
        }

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

            condicionesContratacion _implementoParaLista = new condicionesContratacion();

            _implementoParaLista.VALOR = 0;
            _implementoParaLista.REGISTRO_VEN_P_CONTRATACION = 0;
            _implementoParaLista.REGISTRO_CON_REG_ELEMENTO_TRABAJO = Convert.ToDecimal(filaTabla["REGISTRO_CON_REG_ELEMENTO_TRABAJO"]);
            _implementoParaLista.PRIMERA_ENTREGA = true;
            _implementoParaLista.ID_PRODUCTO = Convert.ToDecimal(filaTabla["ID_PRODUCTO"]);
            _implementoParaLista.ID_PERIODICIDAD = filaTabla["CODIGO_PERIODO"].ToString().Trim();
            _implementoParaLista.FECHA_INICIO = new DateTime();
            _implementoParaLista.FACTURAR_A = filaTabla["CODIGO_FACTURAR_A"].ToString().Trim();
            _implementoParaLista.CANTIDAD = 1;
            _implementoParaLista.AJUSTE_A = tabla.EntregaAjusteA.CONTRATO.ToString();

            listaImplementosExamenes.Add(_implementoParaLista);
        }

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal REGISTRO_VEN_P_CONTRATACION = _condicionesContratacion.AdicionarCondicionContratacionUnificada(ID_EMPRESA, DOC_TRAB, ID_PERFIL, RIESGO, OBS_CTE, GLO_ID_SUB_C, GLO_ID_CENTRO_C, GLO_ID_CIUDAD, GLO_ID_SERVICIO, listaImplementosExamenes, Recuperar(GridView_clausulas));

        if (REGISTRO_VEN_P_CONTRATACION <= 0)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _condicionesContratacion.MensajeError, Proceso.Error);
        }
        else
        {
            HiddenField_REGISTRO_VEN_P_CONTRATACION.Value = REGISTRO_VEN_P_CONTRATACION.ToString();

            Ocultar(Acciones.Inicio);
            Desactivar(Acciones.Inicio);
            Mostrar(Acciones.CargarGrillaReplique);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La condición de contratación fue creada correctament.", Proceso.Correcto);
        }
    }
    private void CargarFormularioContratacion(Decimal ID_EMPRESA, tabla.proceso proceso)
    {
        contactos _contacto = new contactos(Session["idEmpresa"].ToString());
        DataTable tablaContactosOriginal = _contacto.ObtenerContactosPorIdEmpresa(ID_EMPRESA,  proceso);

        HiddenField_contratacion_idEmpresa.Value = ID_EMPRESA.ToString();

        GridView_ContactosContratacion.DataSource = tablaContactosOriginal;
        GridView_ContactosContratacion.DataBind();

        condicionesContratacion _condContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaExamenesMedicos = _condContratacion.ObtenerExamenesVSCargosPorIdEmpresa(Convert.ToDecimal(HiddenField_contratacion_idEmpresa.Value));
        CargarTablaConfiguradaParaExamenesMedicosContratacion(tablaExamenesMedicos);

        DataTable tablaBancosPorCiudad = _condContratacion.ObtenerBancosVSCiudadesPorIdEmpresa(Convert.ToDecimal(HiddenField_contratacion_idEmpresa.Value));
        CargarTablaConfiguradaParaBancosContratacion(tablaBancosPorCiudad);

        Cargar(GridView_contratacion_cobertura, Convert.ToDecimal(HiddenField_contratacion_idEmpresa.Value));
    }
    protected void Button_EMPEZAR_CONFIGURACION_Click(object sender, EventArgs e)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);

        Boolean verificador = true;
        verificador = determinarIDsSubCCentrosCCiudad();

        if (verificador == true)
        {
            servicio _servicio = new servicio(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaServiciosComplementariosAsociados;

            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaCondicionContratacion;

            condicionComercial _condicionComercial = new condicionComercial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaCondicionComercial;

            tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionContratacionPorUbicacion(ID_PERFIL, GLO_ID_CIUDAD, GLO_ID_CENTRO_C, GLO_ID_SUB_C, GLO_ID_SERVICIO);
            tablaServiciosComplementariosAsociados = _servicio.ObtenerServiciosComplementariosPorUbicacion(GLO_ID_CIUDAD, GLO_ID_CENTRO_C, GLO_ID_SUB_C, GLO_ID_SERVICIO);

            if (tablaCondicionContratacion.Rows.Count > 0)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La UBICACIÓN, PERFIL Y/Ó SERVICIO seleccionado YA POSEE CONDICIONES DE CONTRATACIÓN configuradas.", Proceso.Advertencia);
            }
            else
            {
                tablaCondicionComercial = _condicionComercial.ObtenerCondicionesEconomicasPorId(ID_EMPRESA, GLO_ID_CIUDAD, GLO_ID_CENTRO_C, GLO_ID_SUB_C);

                if (tablaCondicionComercial.Rows.Count <= 0)
                {
                    EnviarCorreoAComercial();
                }

                Ocultar(Acciones.Inicio);
                Desactivar(Acciones.Inicio);
                Mostrar(Acciones.NuevaCondicionSegundaParte);
                Activar(Acciones.NuevaCondicionSegundaParte);

                CargarInterfazNuevaCondicionSegundaParte(tablaServiciosComplementariosAsociados);
            }
        }
        else
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Debe seleccionar por lo mínimo una ciudad, para aplicar nuevas condiciones.", Proceso.Advertencia);
        }
    }
    private void Cargar_GridView_EXAMENES_SELECICONADOS_con_todos_examenesbasicos_nuevo_registro()
    {
        DataTable tablaParaGrid = configurarTablaParaExamenesMedicos();

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaExamenesBasicos;
        tablaExamenesBasicos = _condicionesContratacion.obtenerExamenesBasicosTodos(tabla.SERVICIO_EMPRESA_TEMPORAL);

        foreach (DataRow filaOriginal in tablaExamenesBasicos.Rows)
        {
            DataRow filaParaGrid = tablaParaGrid.NewRow();

            filaParaGrid["REGISTRO_CON_REG_ELEMENTO_TRABAJO"] = 0;
            filaParaGrid["REGISTRO_VEN_P_CONTRATACION"] = 0;
            filaParaGrid["ID_PRODUCTO"] = Convert.ToDecimal(filaOriginal["ID_PRODUCTO"]);
            filaParaGrid["CANTIDAD"] = 1;
            filaParaGrid["CODIGO_PERIODO"] = 0;
            filaParaGrid["CODIGO_FACTURAR_A"] = "NO FACTURAR";
            filaParaGrid["VALOR"] = 0;
            filaParaGrid["PRIMERA_ENTREGA"] = "True";
            filaParaGrid["AJUSTE_A"] = tabla.EntregaAjusteA.CONTRATO.ToString();
            filaParaGrid["FECHA_INICIO"] = "";
            filaParaGrid["ID_SERVICIO_COMPLEMENTARIO"] = Convert.ToDecimal(filaOriginal["ID_SERVICIO_COMPLEMENTARIO"]);

            tablaParaGrid.Rows.Add(filaParaGrid);
        }

        Cargar_GridView_ExamenesMedicosDesdeTabla(tablaParaGrid);
    }
    private void Cargar_DropDownList_OBJETOS_SERVICIO(Decimal TIPO, DropDownList drop)
    {
        condicionComercial _condicionComercial = new condicionComercial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoServicioComplementario = _condicionComercial.ObtenerServiciosComplementariosPorId(TIPO);
        DataRow filaInfoServicioComplementario = tablaInfoServicioComplementario.Rows[0];

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaObjetos = new DataTable();

        if (filaInfoServicioComplementario["NOMBRE_SERVICIO_COMPLEMENTARIO"].ToString() == "EXAMENES MEDICOS")
        {
            tablaObjetos = _condicionesContratacion.obtenerProductoTipoExamenMedico(TIPO);
        }
        else
        {
            tablaObjetos = _condicionesContratacion.obtenerProductosSegunTipoServicioComplementario(TIPO);
        }

        drop.Items.Clear();

        System.Web.UI.WebControls.ListItem item = new System.Web.UI.WebControls.ListItem("Seleccione...", "");
        drop.Items.Add(item);

        foreach (DataRow fila in tablaObjetos.Rows)
        {
            item = new System.Web.UI.WebControls.ListItem(fila["NOMBRE"].ToString(), fila["ID_PRODUCTO"].ToString());
            drop.Items.Add(item);
        }

        drop.DataBind();
    }
    private void CargarCondicionesDeUnPerfil(Decimal ID_PERFIL)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);

        HiddenField_ID_PERFIL.Value = ID_PERFIL.ToString();

        HiddenField_REGISTRO_VEN_P_CONTRATACION.Value = "";

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionContratacionPorIdPerfil(ID_PERFIL);

        if (tablaCondicionContratacion.Rows.Count <= 0)
        {
            if (_condicionesContratacion.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _condicionesContratacion.MensajeError, Proceso.Error);
            }
            else
            {
                cargarInterfazNuevaCondicion();
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron condiciones de contratación para el perfil seleccionado</br>Por favor proceda a seleccionar una UBICACIÓN Y/Ó SERVICIO y configure los datos que se presentan.", Proceso.Advertencia);
            }
        }
        else
        {
            Ocultar(Acciones.Inicio);
            Mostrar(Acciones.GrillaCondicionesConfiguradas);

            cargar_GridView_LISTA_CONFIGURACION_ACTUAL(tablaCondicionContratacion);

            if (Session["idEmpresa"].ToString() == "1")
            {
                GridView_LISTA_CONFIGURACION_ACTUAL.Columns[7].Visible = false;
            }
            else
            {
                GridView_LISTA_CONFIGURACION_ACTUAL.Columns[7].Visible = true;
            }
        }
    }
    private void Cargar(Decimal REGISTRO_VEN_P_CONTRATACION)
    {
        HiddenField_REGISTRO_VEN_P_CONTRATACION.Value = REGISTRO_VEN_P_CONTRATACION.ToString();

        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable TablaInfoCondicionContratacion = _condicionesContratacion.ObtenerCondicionContratacionPorRegistro(REGISTRO_VEN_P_CONTRATACION);
        DataRow filaInfoCondicionContratacion = TablaInfoCondicionContratacion.Rows[0];

        DeterminarIDsSubCCentrosCCiudadDesdeDataRow(filaInfoCondicionContratacion);

        CargarInformacionPerfilSeleccionado(ID_PERFIL);

        CargarDropsCiudadCCSubCYServico(filaInfoCondicionContratacion);

        CargarDatosControlRegistro(filaInfoCondicionContratacion);

        CargarRiesgoDocumentosyRequerimientos(filaInfoCondicionContratacion);

        servicio _servicio = new servicio(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaServiciosComplementariosAsociados = _servicio.ObtenerServiciosComplementariosPorUbicacion(GLO_ID_CIUDAD, GLO_ID_CENTRO_C, GLO_ID_SUB_C, GLO_ID_SERVICIO);

        if (ExisteServicioExameneszMedicos(tablaServiciosComplementariosAsociados) > 0)
        {
            HiddenField_ServicioExamenesMedicos.Value = "SI";
            HiddenField_ID_PARA_SABER_ID_DE_EXAMENES_MEDICOS.Value = ExisteServicioExameneszMedicos(tablaServiciosComplementariosAsociados).ToString();
        }
        else
        {
            HiddenField_ServicioExamenesMedicos.Value = "NO";
            HiddenField_ID_PARA_SABER_ID_DE_EXAMENES_MEDICOS.Value = "";
        }

        DataTable tablaInfoImplementosParametrizados = _condicionesContratacion.obtenerImplementosOExamenesActivosPorRegistroVenPContratacionYTipo(REGISTRO_VEN_P_CONTRATACION, TiposServicioComplementarios.IMPLEMENTOS.ToString());
        DataTable tablaInfoExamenesParametrizados = _condicionesContratacion.obtenerImplementosOExamenesActivosPorRegistroVenPContratacionYTipo(REGISTRO_VEN_P_CONTRATACION, TiposServicioComplementarios.EXAMENES_MEDICOS.ToString());

        DataTable tablaParaGrillaImplementos = GetTablaParaGrillaImplementosDesdeTabla(tablaInfoImplementosParametrizados);
        CargarGridView_ImplementosDesdeTabla(tablaParaGrillaImplementos);
        inhabilitarFilasGrilla(GridView_ImplementosParametrizados, 2);
        AjustarEstadoValidadoresGrillaImplementos(GridView_ImplementosParametrizados);
        if (tablaParaGrillaImplementos.Rows.Count <= 0)
        {
            Panel_LISTA_IMPLEMENTOS_SELECCIONADOS.Visible = false;
        }

        DataTable tablaExamenesConfigurada = GetTablaParaGrillaExamenesMedicosDesdetabla(tablaInfoExamenesParametrizados);
        Cargar_GridView_ExamenesMedicosDesdeTabla(tablaExamenesConfigurada);
        inhabilitarFilasGrilla(GridView_ExamenesParametrizados, 2);
        if (tablaExamenesConfigurada.Rows.Count <= 0)
        {
            Panel_EXAMENES_SELECCIONADOS.Visible = false;
        }
    }
    /// <summary>
    /// hecho por cesar pulido
    /// el dia 17 de enero de 2013
    /// para cargar en el pdf las clausulas adicionales al contrato
    /// </summary>
    /// <param name="ID_EMPRESA"></param>
    /// <returns></returns>
    private String CargarClausulasAdicionales(Decimal ID_EMPRESA, Conexion _datos)
    {
        DataTable tablaPerfilesClausulas = ConfigurarTablaPerfilesClausulas();

        //capturamos los perfils de la empresa
        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        //ok -------------------
        DataTable tablaPerfiles = _perfil.ObtenerVenDPerfilesConOcupacionPorIdEmpresa(ID_EMPRESA, _datos);

        String htmlSeccion = string.Empty;

        //recorremos cada uno de los perfiles de la tabla
        foreach (DataRow filaPerfil in tablaPerfiles.Rows)
        {
            Decimal ID_PERFIL = Convert.ToDecimal(filaPerfil["REGISTRO"]);
            String PERFIL = filaPerfil["NOM_OCUPACION"].ToString().Trim() + " (Entre " + filaPerfil["EDAD_MIN"].ToString().Trim() + " y " + filaPerfil["EDAD_MAX"].ToString().Trim() + ").";

            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            //ok ----------------
            DataTable tablaClausulas = _condicionesContratacion.obtenerClausulasPorPerfil(ID_PERFIL, _datos);

            if (tablaClausulas.Rows.Count > 0)
            {
                String CLAUSULAS = String.Empty;
                foreach (DataRow filaClausula in tablaClausulas.Rows)
                {
                    if (String.IsNullOrEmpty(CLAUSULAS) == true)
                    {
                        CLAUSULAS = filaClausula["NOMBRE"].ToString().Trim();
                    }
                    else
                    {
                        CLAUSULAS += "<br>" + filaClausula["NOMBRE"].ToString().Trim();
                    }
                }

                DataRow filaPerfilClausula = tablaPerfilesClausulas.NewRow();

                filaPerfilClausula["REGISTRO"] = ID_PERFIL;
                filaPerfilClausula["PERFIL"] = PERFIL;
                if (String.IsNullOrEmpty(CLAUSULAS) == true)
                {
                    filaPerfilClausula["CLAUSULAS_ADICIONALES"] = "Ninguna.";
                }
                else
                {
                    filaPerfilClausula["CLAUSULAS_ADICIONALES"] = CLAUSULAS;
                }

                tablaPerfilesClausulas.Rows.Add(filaPerfilClausula);
                tablaPerfilesClausulas.AcceptChanges();
            }
        }

        //tablaTemp.Columns.Add("REGISTRO");
        //tablaTemp.Columns.Add("PERFIL");
        //tablaTemp.Columns.Add("CLAUSULAS_ADICIONALES");

        foreach (DataRow fila in tablaPerfilesClausulas.Rows)
        {
            htmlSeccion += "<tr>";
            htmlSeccion += "  <td width=\"30%\" style=\"text-align:left;\">";
            htmlSeccion += fila["PERFIL"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"70%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["CLAUSULAS_ADICIONALES"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "</tr>";
        }

        return htmlSeccion;
    }
    protected void GridView_ExamenesMedicosContratacion_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView_ExamenesMedicosContratacion.PageIndex = e.NewPageIndex;

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

        Decimal ID_EMPRESA = Convert.ToDecimal(QueryStringSeguro["reg"]);
        int proceso = Convert.ToInt32(QueryStringSeguro["proceso"]);

        condicionesContratacion _condContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaExamenesMedicos = _condContratacion.ObtenerExamenesVSCargosPorIdEmpresa(ID_EMPRESA);
        CargarTablaConfiguradaParaExamenesMedicosContratacion(tablaExamenesMedicos);
    }
    private String CargarCondicionesContratacion(Decimal ID_EMPRESA, Conexion _datos)
    {
        DataTable tablaPerfilesCondiciones = ConfigurarTablaPerfilesCondicionesContratacion();

        //capturamos los perfils de la empresa
        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        //ok -----------------------
        DataTable tablaPerfiles = _perfil.ObtenerVenDPerfilesConOcupacionPorIdEmpresa(ID_EMPRESA, _datos);

        String htmlSeccion = String.Empty;

        //recorremos cada uno de los perfiles de la tabla
        foreach (DataRow filaPerfil in tablaPerfiles.Rows)
        {
            Decimal ID_PERFIL = Convert.ToDecimal(filaPerfil["REGISTRO"]);
            String PERFIL = filaPerfil["NOM_OCUPACION"].ToString().Trim() + " (Entre " + filaPerfil["EDAD_MIN"].ToString().Trim() + " y " + filaPerfil["EDAD_MAX"].ToString().Trim() + ").";

            //CAPTURAMOS LA INFORMACION DE CONDICIONES DE CONTRATACION ASOCIADAS AL PERFIL SELECCIONADO
            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            // ok ------------
            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionContratacionPorIdPerfil(ID_PERFIL, _datos);

            foreach (DataRow filaCondicion in tablaCondicionContratacion.Rows)
            {
                DataRow filaPerfilCondicion = tablaPerfilesCondiciones.NewRow();

                filaPerfilCondicion["REGISTRO"] = ID_PERFIL;
                filaPerfilCondicion["PERFIL"] = PERFIL;

                if (filaCondicion["ID_CIUDAD"] != DBNull.Value)
                {
                    filaPerfilCondicion["NOM_SUB_C"] = "NO APLICA";
                    filaPerfilCondicion["NOM_CC"] = "NO APLICA";

                    ciudad _ciudad = new ciudad(Session["idEmpresa"].ToString());
                    //ok -------------------------
                    DataTable tablaCiudad = _ciudad.ObtenerCiudadPorIdCiudad(filaCondicion["ID_CIUDAD"].ToString(), _datos);
                    DataRow filaCiudad = tablaCiudad.Rows[0];

                    filaPerfilCondicion["NOMBRE_CIUDAD"] = filaCiudad["NOMBRE_CIUDAD"];
                }
                else
                {
                    if (filaCondicion["ID_CENTRO_C"] != DBNull.Value)
                    {
                        filaPerfilCondicion["NOM_SUB_C"] = "NO APLICA";

                        centroCosto _centroCosto = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                        //ok ----------------------
                        DataTable tablaCC = _centroCosto.ObtenerCentrosDeCostoPorIdCentroCosto(Convert.ToDecimal(filaCondicion["ID_CENTRO_C"]), _datos);
                        DataRow filaCC = tablaCC.Rows[0];

                        filaPerfilCondicion["NOM_CC"] = filaCC["NOM_CC"];

                        ciudad _ciudad = new ciudad(Session["idEmpresa"].ToString());
                        // ok --------------------
                        DataTable tablaCiudad = _ciudad.ObtenerCiudadPorIdCiudad(filaCC["ID_CIUDAD"].ToString(), _datos);
                        DataRow filaCiudad = tablaCiudad.Rows[0];

                        filaPerfilCondicion["NOMBRE_CIUDAD"] = filaCiudad["NOMBRE_CIUDAD"];
                    }
                    else
                    {
                        if (filaCondicion["ID_SUB_C"] != DBNull.Value)
                        {
                            subCentroCosto _subCentroCosto = new subCentroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                            //ok ----------------
                            DataTable tablaSubC = _subCentroCosto.ObtenerSubCentrosDeCostoPorIdSubCosto(Convert.ToDecimal(filaCondicion["ID_SUB_C"]), _datos);
                            DataRow filaSubC = tablaSubC.Rows[0];

                            filaPerfilCondicion["NOM_SUB_C"] = filaSubC["NOM_SUB_C"];

                            centroCosto _centroCosto = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                            // ok -------------
                            DataTable tablaCC = _centroCosto.ObtenerCentrosDeCostoPorIdCentroCosto(Convert.ToDecimal(filaSubC["ID_CENTRO_C"]), _datos);
                            DataRow filaCC = tablaCC.Rows[0];

                            filaPerfilCondicion["NOM_CC"] = filaCC["NOM_CC"];

                            ciudad _ciudad = new ciudad(Session["idEmpresa"].ToString());
                            //ok --------------
                            DataTable tablaCiudad = _ciudad.ObtenerCiudadPorIdCiudad(filaCC["ID_CIUDAD"].ToString(), _datos);
                            DataRow filaCiudad = tablaCiudad.Rows[0];

                            filaPerfilCondicion["NOMBRE_CIUDAD"] = filaCiudad["NOMBRE_CIUDAD"];
                        }
                    }
                }

                filaPerfilCondicion["PORCENTAJE_RIESGO"] = filaCondicion["PORCENTAJE_RIESGO"].ToString().Trim() + "%";
                filaPerfilCondicion["DOC_TRAB"] = filaCondicion["DOC_TRAB"].ToString().Trim();
                filaPerfilCondicion["OBS_CTE"] = filaCondicion["OBS_CTE"].ToString().Trim();

                //asignamos la fila a la tabla final
                tablaPerfilesCondiciones.Rows.Add(filaPerfilCondicion);
                tablaPerfilesCondiciones.AcceptChanges();
            }
        }

        //tablaTemp.Columns.Add("REGISTRO");
        //tablaTemp.Columns.Add("PERFIL");
        //tablaTemp.Columns.Add("NOM_SUB_C");
        //tablaTemp.Columns.Add("NOM_CC");
        //tablaTemp.Columns.Add("NOMBRE_CIUDAD");
        //tablaTemp.Columns.Add("PORCENTAJE_RIESGO");
        //tablaTemp.Columns.Add("DOC_TRAB");
        //tablaTemp.Columns.Add("OBS_CTE");

        foreach (DataRow fila in tablaPerfilesCondiciones.Rows)
        {
            htmlSeccion += "<tr>";
            htmlSeccion += "  <td width=\"16%\" style=\"text-align:left;\">";
            htmlSeccion += fila["PERFIL"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"12%\" style=\"text-align:center;\">";
            htmlSeccion += fila["NOM_SUB_C"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"12%\" style=\"text-align:center;\">";
            htmlSeccion += fila["NOM_CC"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"12%\" style=\"text-align:center;\">";
            htmlSeccion += fila["NOMBRE_CIUDAD"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"7%\" style=\"text-align:center;\">";
            htmlSeccion += fila["PORCENTAJE_RIESGO"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"20%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["DOC_TRAB"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"21%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["OBS_CTE"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "</tr>";
        }

        return htmlSeccion;
    }
    private void previsualizar_clausula(Decimal ID_CON_REG_CLAUSULAS_PERFIL)
    {
        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoClausula = _condicionesContratacion.obtenerClausulasPorIdCluasula(ID_CON_REG_CLAUSULAS_PERFIL);
        DataRow filaInfo = tablaInfoClausula.Rows[0];

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

        tools _tools = new tools();

        String html_completo = "<html><body>";
        html_completo += archivo.ReadToEnd();
        html_completo += "</body></html>";

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

        if (Session["idEmpresa"].ToString() == "1")
        {
            html_completo = html_completo.Replace("[NOMBRE_EMPRESA]", tabla.VAR_NOMBRE_SERTEMPO);
        }
        else
        {
            html_completo = html_completo.Replace("[NOMBRE_EMPRESA]", tabla.VAR_NOMBRE_EYS);
        }
        html_completo = html_completo.Replace("[NOMBRE_TRABAJADOR]", "NOMBRE DEL TRABAJADOR");
        html_completo = html_completo.Replace("[NOMBRE_CLAUSULA]", filaInfo["NOMBRE"].ToString());
        html_completo = html_completo.Replace("[ENCABEZADO_CLAUSULA]", filaInfo["ENCABEZADO"].ToString());
        html_completo = html_completo.Replace("[CONTENIDO_CLAUSULA]", filaInfo["DESCRIPCION"].ToString());

        usuario _usuario = new usuario(Session["idEmpresa"].ToString());
        DataTable tablaInfoUsuario = _usuario.ObtenerInicioSesionPorUsuLog(Session["USU_LOG"].ToString());
        if (tablaInfoUsuario.Rows.Count <= 0)
        {
            html_completo = html_completo.Replace("[CIUDAD_FIRMA]", "Desconocida");
        }
        else
        {
            DataRow filaInfoUsuario = tablaInfoUsuario.Rows[0];
            html_completo = html_completo.Replace("[CIUDAD_FIRMA]", filaInfoUsuario["NOMBRE_CIUDAD"].ToString());
        }

        html_completo = html_completo.Replace("[DIAS]", DateTime.Now.Day.ToString());
        html_completo = html_completo.Replace("[MES]", _tools.obtenerNombreMes(DateTime.Now.Month));
        html_completo = html_completo.Replace("[ANNO]", DateTime.Now.Year.ToString());

        String filename = "previsulizador_clausula";

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

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

        iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.A4, 40, 40, 80, 40);

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

        document.Open();

        String tempFile = Path.GetTempFileName();

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

        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);
    }
    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 CargarUbicacionTrabajadorSegunTemporal(DataRow filaContratoTemporal)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        if (DBNull.Value.Equals(filaContratoTemporal["ID_SUB_C"]) == false)
        {
            Decimal ID_SUB_C = Convert.ToDecimal(filaContratoTemporal["ID_SUB_C"]);

            subCentroCosto _sub = new subCentroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaSubCentro = _sub.ObtenerSubCentrosDeCostoPorIdSubCosto(ID_SUB_C);
            DataRow filaSub = tablaSubCentro.Rows[0];

            Decimal ID_CENTRO_C = Convert.ToDecimal(filaSub["ID_CENTRO_C"]);

            centroCosto _centro = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaCentro = _centro.ObtenerCentrosDeCostoPorIdCentroCosto(ID_CENTRO_C);
            DataRow filaCentro = tablaCentro.Rows[0];

            String ID_CIUDAD = filaCentro["ID_CIUDAD"].ToString().Trim();

            cargar_DropDownList_SUB_CENTRO(ID_EMPRESA, ID_CENTRO_C);
            DropDownList_SUB_CENTRO_TRABAJADOR.SelectedValue = ID_SUB_C.ToString();
            DropDownList_SUB_CENTRO_TRABAJADOR.Enabled = true;

            cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);
            DropDownList_CC_TRABAJADOR.SelectedValue = ID_CENTRO_C.ToString();
            DropDownList_CC_TRABAJADOR.Enabled = true;

            cargar_DropDownList_CIUDAD(ID_EMPRESA);
            DropDownList_CIUDAD_TRABAJADOR.SelectedValue = ID_CIUDAD;
            DropDownList_CIUDAD_TRABAJADOR.Enabled = true;

            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdSubC(ID_PERFIL, ID_SUB_C);

            if (tablaCondicionContratacion.Rows.Count <= 0)
            {
                colorear_indicadores_de_ubicacion(false, false, true, System.Drawing.Color.Red);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
            }
            else
            {
                colorear_indicadores_de_ubicacion(false, false, true, System.Drawing.Color.Green);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
            }
        }
        else
        {
            if (DBNull.Value.Equals(filaContratoTemporal["ID_CENTRO_C"]) == false)
            {
                Decimal ID_CENTRO_C = Convert.ToDecimal(filaContratoTemporal["ID_CENTRO_C"]);

                centroCosto _centro = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                DataTable tablaCentro = _centro.ObtenerCentrosDeCostoPorIdCentroCosto(ID_CENTRO_C);
                DataRow filaCentro = tablaCentro.Rows[0];

                String ID_CIUDAD = filaCentro["ID_CIUDAD"].ToString().Trim();

                inhabilitar_DropDownList_SUB_CENTRO();
                DropDownList_SUB_CENTRO_TRABAJADOR.Enabled = true;

                cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);
                DropDownList_CC_TRABAJADOR.SelectedValue = ID_CENTRO_C.ToString();
                DropDownList_CC_TRABAJADOR.Enabled = true;

                cargar_DropDownList_CIUDAD(ID_EMPRESA);
                DropDownList_CIUDAD_TRABAJADOR.SelectedValue = ID_CIUDAD;
                DropDownList_CIUDAD_TRABAJADOR.Enabled = true;

                DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCentroC(ID_PERFIL, ID_CENTRO_C);

                if (tablaCondicionContratacion.Rows.Count <= 0)
                {
                    colorear_indicadores_de_ubicacion(false, true, false, System.Drawing.Color.Red);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
                }
                else
                {
                    colorear_indicadores_de_ubicacion(false, true, false, System.Drawing.Color.Green);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
                }
            }
            else
            {
                String ID_CIUDAD = filaContratoTemporal["ID_CIUDAD"].ToString().Trim();

                inhabilitar_DropDownList_SUB_CENTRO();
                DropDownList_SUB_CENTRO_TRABAJADOR.Enabled = true;

                inhabilitar_DropDownList_CENTRO_COSTO();
                DropDownList_CC_TRABAJADOR.Enabled = true;

                cargar_DropDownList_CIUDAD(ID_EMPRESA);
                DropDownList_CIUDAD_TRABAJADOR.SelectedValue = ID_CIUDAD;
                DropDownList_CIUDAD_TRABAJADOR.Enabled = true;

                DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCiudad(ID_PERFIL, ID_CIUDAD);

                if (tablaCondicionContratacion.Rows.Count <= 0)
                {
                    colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Red);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
                }
                else
                {
                    colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Green);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";
                }
            }
        }
    }
    protected void DropDownList_Ciudad_SelectedIndexChanged(object sender, EventArgs e)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);

        if (DropDownList_Ciudad.SelectedIndex <= 0)
        {
            HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
            inhabilitar_DropDownList_CENTRO_COSTO();
            inhabilitar_DropDownList_SUB_CENTRO();
            limpiarDropDownList_Servicio();

            Label_Riesgo.Text = "Riesgo: Desconocido.";
            TextBox_Doc_Entregar.Text = "";
            TextBox_Req_usuario.Text = "";

            if (Session["idEmpresa"].ToString() == "1")
            {
                colorear_indicadores_de_ubicacion(false, false, false, false, System.Drawing.Color.Transparent);
                Label_Servicio.Visible = false;
                Label_SERVICIO_SELECCIONADO.Visible = false;
            }
            else
            {
                colorear_indicadores_de_ubicacion(false, false, false, true, System.Drawing.Color.Red);
                Label_Servicio.Visible = true;
                Label_SERVICIO_SELECCIONADO.Visible = true;
            }
        }
        else
        {
            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

            String ID_CIUDAD = DropDownList_Ciudad.SelectedValue;

            cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);
            DropDownList_CentroCosto.Enabled = true;
            inhabilitar_DropDownList_SUB_CENTRO();

            if (Session["idEmpresa"].ToString() == "1")
            {
                DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCiudad(ID_PERFIL, ID_CIUDAD);

                if (tablaCondicionContratacion.Rows.Count <= 0)
                {
                    colorear_indicadores_de_ubicacion(true, false, false, false, System.Drawing.Color.Red);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                    Label_Riesgo.Text = "Riesgo: Desconocido.";
                    TextBox_Doc_Entregar.Text = "";
                    TextBox_Req_usuario.Text = "";
                }
                else
                {
                    colorear_indicadores_de_ubicacion(true, false, false, false, System.Drawing.Color.Green);
                    HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";

                    DataRow filaCondicion = tablaCondicionContratacion.Rows[0];

                    Label_Riesgo.Text = "Riesgo: " + filaCondicion["VALOR_RIESGO"].ToString().Trim();
                    TextBox_Doc_Entregar.Text = filaCondicion["DOC_TRAB"].ToString().Trim();
                    TextBox_Req_usuario.Text = filaCondicion["OBS_CTE"].ToString().Trim();
                }

                Label_Servicio.Visible = false;
                Label_SERVICIO_SELECCIONADO.Visible = false;
            }
            else
            {
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

                cargar_DropDownList_SERVICIO_ciudad(ID_CIUDAD, ID_EMPRESA);

                colorear_indicadores_de_ubicacion(false, false, false, true, System.Drawing.Color.Red);

                Label_Servicio.Visible = true;
                Label_SERVICIO_SELECCIONADO.Visible = true;
            }
        }
    }
    protected void DropDownList_CIUDAD_TRABAJADOR_SelectedIndexChanged(object sender, EventArgs e)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        cargar_DropDownList_RIESGO_EMPLEADO(ID_EMPRESA);

        if (DropDownList_CIUDAD_TRABAJADOR.SelectedIndex <= 0)
        {
            colorear_indicadores_de_ubicacion(false, false, false, System.Drawing.Color.Transparent);
            HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";

            inhabilitar_DropDownList_CENTRO_COSTO();
            inhabilitar_DropDownList_SUB_CENTRO();
        }
        else
        {
            condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

            Decimal ID_PERFIL = Convert.ToDecimal(DropDownList_CARGO_TRABAJADOR.SelectedValue);
            String ID_CIUDAD = DropDownList_CIUDAD_TRABAJADOR.SelectedValue;

            DataTable tablaCondicionContratacion = _condicionesContratacion.ObtenerCondicionComercialPorIdPerfilIdCiudad(ID_PERFIL, ID_CIUDAD);

            if (tablaCondicionContratacion.Rows.Count <= 0)
            {
                colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Red);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "N";
            }
            else
            {
                colorear_indicadores_de_ubicacion(true, false, false, System.Drawing.Color.Green);
                HiddenField_SELECCION_ITEM_CON_CONDICIONES_CONTRATACION.Value = "S";

                DataRow filaInfoCondicion = tablaCondicionContratacion.Rows[0];
                try
                {
                    DropDownList_RIESGO_EMPLEADO.SelectedValue = Convert.ToDecimal(filaInfoCondicion["RIESGO"]).ToString();
                }
                catch
                {
                    DropDownList_RIESGO_EMPLEADO.SelectedIndex = 0;
                }
            }

            cargar_DropDownList_CENTRO_COSTO(ID_EMPRESA, ID_CIUDAD);
            DropDownList_CC_TRABAJADOR.Enabled = true;
            inhabilitar_DropDownList_SUB_CENTRO();
        }

        ColorearRiesgoInicial();
    }