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(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;
        }
    }
    private void Cargar_DropDownList_Implementos(DropDownList drop)
    {
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);

        DeterminarIDsSubCCentrosCCiudadDesdeDrops();

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

        tablaServiciosComplementariosAsociados = _servicio.ObtenerServiciosComplementariosPorUbicacion(GLO_ID_CIUDAD, GLO_ID_CENTRO_C, GLO_ID_SUB_C, GLO_ID_SERVICIO);

        drop.Items.Clear();

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

        foreach (DataRow fila in tablaServiciosComplementariosAsociados.Rows)
        {
            Boolean excluir = false;

            foreach (String nombre in listaExclusionImplementos)
            {
                excluir = false;

                if (fila["NOMBRE_SERVICIO_COMPLEMENTARIO"].ToString().Trim() == nombre)
                {
                    excluir = true;
                    break;
                }
            }

            if (excluir == false)
            {
                item = new System.Web.UI.WebControls.ListItem(fila["NOMBRE_SERVICIO_COMPLEMENTARIO"].ToString(), fila["ID_SERVICIO_COMPLEMENTARIO"].ToString());
                drop.Items.Add(item);
            }
        }
        drop.DataBind();
    }
    private void Cargar(Acciones accion)
    {
        switch (accion)
        {
            case Acciones.Inicio:
                Page.Header.Title = "CONDICIONES DE CONTRATACIÓN";

                CargarInformacionEmpresa();

                configurarCaracteresAceptadosBusqueda(true, true);

                iniciar_seccion_de_busqueda();

                HiddenField_ID_PERFIL.Value = "";
                HiddenField_REGISTRO_VEN_P_CONTRATACION.Value = "";
                HiddenField_TIPO_BUSQUEDA_ACTUAL.Value = "SIN_FILTRO";
                HiddenField_FILTRO_DROP.Value = String.Empty;
                HiddenField_FILTRO_DATO.Value = String.Empty;
                HiddenField_ACCION_GRILLA_IMPLEMENTOS.Value = AccionesGrilla.Ninguna.ToString();
                HiddenField_ACCION_GRILLA_EXAMENES.Value = AccionesGrilla.Ninguna.ToString();

                HiddenField_GridPagina.Value = "0";

                Cargar_GridViewPerfiles();

                break;
            case Acciones.NuevaCondicion:
                Cargar_DropDownList_CIUDAD(Convert.ToDecimal(HiddenField_ID_EMPRESA.Value));
                Cargar_DropDownListVacio(DropDownList_CENTRO_COSTO);
                Cargar_DropDownListVacio(DropDownList_SUB_CENTRO);
                Cargar_DropDownListVacio(DropDownList_SERVICIO);
                break;
            case Acciones.ModificarCondicion:

                DeterminarIDsSubCCentrosCCiudadDesdeDrops();

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

                    Panel_SERVICIOS_COMPLEMENTARIOS.Visible = true;

                    PanelInfoNoConfExamenesMedicos.Visible = false;

                    Panel_EXAMENES_SELECCIONADOS.Visible = true;
                    Panel_BotonesExamenesMedicos.Visible = true;
                    Button_NuevoExamen.Visible = true;
                }
                else
                {
                    HiddenField_ServicioExamenesMedicos.Value = "NO";
                    HiddenField_ID_PARA_SABER_ID_DE_EXAMENES_MEDICOS.Value = "";

                    PanelInfoNoConfExamenesMedicos.Visible = true;

                    Panel_EXAMENES_SELECCIONADOS.Visible = false;
                }

                if (TotalServiciosComplementariosAptosParaImplementos(tablaServiciosComplementariosAsociados) <= 0)
                {
                    Panel_InfoNoConfImplementos.Visible = true;

                    Panel_LISTA_IMPLEMENTOS_SELECCIONADOS.Visible = false;
                    Panel_BotonesImplementos.Visible = false;
                    Button_NuevoImplemento.Visible = false;
                    Button_GuardarImplemento.Visible = false;
                    Button_CancelarImplemento.Visible = false;

                    GridView_ImplementosParametrizados.DataSource = null;
                    GridView_ImplementosParametrizados.DataBind();
                }
                else
                {
                    Panel_InfoNoConfImplementos.Visible = false;

                    Panel_LISTA_IMPLEMENTOS_SELECCIONADOS.Visible = true;
                    Panel_BotonesImplementos.Visible = true;
                    Button_NuevoImplemento.Visible = true;
                }
                break;
        }
    }