private void cargar_GridView_DETALLES_SERVICIO_SELECCIONADO(Decimal ID_SERVICIO, String NOMBRE_SERVICIO, Decimal ID_SERVICIO_POR_EMPRESA)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        String accion = QueryStringSeguro["accion"].ToString();

        DataTable tablaDetallesServicio = new DataTable();

        tablaDetallesServicio.Columns.Add("ID_SERVICIO");
        tablaDetallesServicio.Columns.Add("NOMBRE_SERVICIO");
        tablaDetallesServicio.Columns.Add("ID_SERVICIO_COMPLEMENTARIO");
        tablaDetallesServicio.Columns.Add("NOMBRE_SERVICIO_COMPLEMENTARIO");

        DataRow filaTablaDetallesServicio;

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

        List<detalleServicio> listaDetallesServicio = capturarListaDetallesServicioDesdeSession();
        foreach (detalleServicio detalle in listaDetallesServicio)
        {
            if((ID_SERVICIO_POR_EMPRESA == detalle.ID_SERVICIO_POR_EMPRESA) && (ID_SERVICIO == detalle.ID_SERVICIO) && (NOMBRE_SERVICIO == detalle.NOMBRE_SERVICIO))
            {
                filaTablaDetallesServicio = tablaDetallesServicio.NewRow();

                filaTablaDetallesServicio["ID_SERVICIO"] = ID_SERVICIO.ToString();
                filaTablaDetallesServicio["NOMBRE_SERVICIO"] = NOMBRE_SERVICIO;
                filaTablaDetallesServicio["ID_SERVICIO_COMPLEMENTARIO"] = detalle.ID_SERVICIO_COMPLEMENTARIO.ToString();

                tablaInfoDetalle = _condicionComercial.ObtenerServiciosComplementariosPorId(detalle.ID_SERVICIO_COMPLEMENTARIO);
                filaTablaInfoDetalle = tablaInfoDetalle.Rows[0];

                filaTablaDetallesServicio["NOMBRE_SERVICIO_COMPLEMENTARIO"] = filaTablaInfoDetalle["NOMBRE_SERVICIO_COMPLEMENTARIO"];

                tablaDetallesServicio.Rows.Add(filaTablaDetallesServicio);
            }
        }

        if ((accion == "inicial") || (accion == "cargarModificado") || (accion == "cargarNuevo"))
        {
            GridView_DETALLES_SERVICIO_SELECCIONADO.Columns[0].Visible = false;
        }

        GridView_DETALLES_SERVICIO_SELECCIONADO.DataSource = tablaDetallesServicio;
        GridView_DETALLES_SERVICIO_SELECCIONADO.DataBind();

        Panel_GRID_DETALLES_SERVICIO_SELECCIONADO.Visible = true;
    }
    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();
    }
    protected void DropDownList_SERVICIOS_COMPLEMENTARIOS_SelectedIndexChanged(object sender, EventArgs e)
    {
        int indexSeleccionado = Convert.ToInt32(HiddenField_FILA_SELECCIONADA_GRILLA_IMPLEMENTOS.Value);

        DropDownList drop_ServicioComplementario = GridView_ImplementosParametrizados.Rows[indexSeleccionado].FindControl("DropDownList_SERVICIOS_COMPLEMENTARIOS") as DropDownList;
        DropDownList drop_Objetos = GridView_ImplementosParametrizados.Rows[indexSeleccionado].FindControl("DropDownList_OBJETOS_SERVICIO") as DropDownList;

        if (drop_ServicioComplementario.SelectedValue == "")
        {
            drop_Objetos.Items.Clear();
            drop_Objetos.Items.Add(new System.Web.UI.WebControls.ListItem("Seleccione...", ""));
            drop_Objetos.DataBind();
        }
        else
        {
            Decimal ID_SERICIO_COMPLEMENTARIO = Convert.ToDecimal(drop_ServicioComplementario.SelectedValue);

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

            DataRow filaInfoServicioComplementario = tablaInfoServicioComplementario.Rows[0];

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

            Cargar_DropDownList_OBJETOS_SERVICIO(ID_SERICIO_COMPLEMENTARIO, drop_Objetos);
        }
    }
    private void CargarGridView_ImplementosDesdeTabla(DataTable tablaImplementos)
    {
        GridView_ImplementosParametrizados.DataSource = tablaImplementos;
        GridView_ImplementosParametrizados.DataBind();

        for (int i = 0; i < GridView_ImplementosParametrizados.Rows.Count; i++)
        {
            GridViewRow filaGrilla = GridView_ImplementosParametrizados.Rows[i];
            DataRow filaTabla = tablaImplementos.Rows[i];

            DropDownList dropServicioComplementario = filaGrilla.FindControl("DropDownList_SERVICIOS_COMPLEMENTARIOS") as DropDownList;
            Cargar_DropDownList_Implementos(dropServicioComplementario);
            dropServicioComplementario.SelectedValue = filaTabla["ID_SERVICIO_COMPLEMENTARIO"].ToString();

            DropDownList dropProducto = filaGrilla.FindControl("DropDownList_OBJETOS_SERVICIO") as DropDownList;
            if (dropServicioComplementario.SelectedValue == "")
            {
                dropProducto.Items.Clear();
                dropProducto.Items.Add(new System.Web.UI.WebControls.ListItem("Seleccione...", ""));
            }
            else
            {
                Decimal ID_SERICIO_COMPLEMENTARIO = Convert.ToDecimal(filaTabla["ID_SERVICIO_COMPLEMENTARIO"]);

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

                DataRow filaInfoServicioComplementario = tablaInfoServicioComplementario.Rows[0];

                Cargar_DropDownList_OBJETOS_SERVICIO(ID_SERICIO_COMPLEMENTARIO, dropProducto);
                dropProducto.SelectedValue = filaTabla["ID_PRODUCTO"].ToString();
            }

            TextBox textoCantidadInicial = filaGrilla.FindControl("TextBox_CANTIDAD_ENTREGA") as TextBox;
            textoCantidadInicial.Text = filaTabla["CANTIDAD_INICIAL"].ToString();

            DropDownList dropFactaurarInicial = filaGrilla.FindControl("DropDownList_FACTURAR_A") as DropDownList;
            Cargar_DropDownList_FACTURAR_A(dropFactaurarInicial);
            dropFactaurarInicial.SelectedValue = filaTabla["CODIGO_FACTURAR_A_INICIAL"].ToString();

            TextBox textoValorInicial = filaGrilla.FindControl("TextBox_VALOR_PRODDUCTO") as TextBox;
            textoValorInicial.Text = filaTabla["VALOR_INICIAL"].ToString();

            CheckBox checkProgramado = filaGrilla.FindControl("CheckBox_ProgramarEntregas") as CheckBox;
            TextBox textoCantidadProgramado = filaGrilla.FindControl("TextBox_CantidadPeriodica") as TextBox;
            DropDownList dropPeriodicidadProgramado = filaGrilla.FindControl("DropDownList_PERIODO_ENTREGA") as DropDownList;
            Cargar_DropDownList_PERIODO_ENTREGA(dropPeriodicidadProgramado);
            DropDownList dropFacturarProgramado = filaGrilla.FindControl("DropDownList_FacturarAPeriodica") as DropDownList;
            Cargar_DropDownList_FACTURAR_A(dropFacturarProgramado);
            TextBox textoValorProgramado = filaGrilla.FindControl("TextBox_ValorPeriodica") as TextBox;
            DropDownList dropAjusteProgramado = filaGrilla.FindControl("DropDownList_AjusteEntrega") as DropDownList;
            Cargar_DropDownList_AjusteA(dropAjusteProgramado);
            TextBox textoFechaInicialProgramado = filaGrilla.FindControl("TextBox_FechaInicialProgramado") as TextBox;

            if (filaTabla["CHECK_PROGRAMADO"].ToString() == "True")
            {
                checkProgramado.Checked = true;

                textoCantidadProgramado.Text = filaTabla["CANTIDAD_PROGRAMADO"].ToString();

                dropPeriodicidadProgramado.SelectedValue = filaTabla["CODIGO_PERIODO_PROGRAMADO"].ToString();

                dropFacturarProgramado.SelectedValue = filaTabla["CODIGO_FACTURAR_A_PROGRAMADO"].ToString();

                textoValorProgramado.Text = filaTabla["VALOR_PROGRAMADO"].ToString();

                dropAjusteProgramado.SelectedValue = filaTabla["AJUSTE_A_PROGRAMADO"].ToString();
                textoFechaInicialProgramado.Text = "";
                if (dropAjusteProgramado.SelectedValue == tabla.EntregaAjusteA.FECHA.ToString())
                {
                    textoFechaInicialProgramado.Text = filaTabla["FECHA_INICIO_PROGRAMADO"].ToString();
                }
            }
            else
            {
                checkProgramado.Checked = false;

                textoCantidadProgramado.Text = "";

                dropPeriodicidadProgramado.SelectedValue = "";

                dropFacturarProgramado.SelectedValue = "";

                textoValorProgramado.Text = "";

                dropAjusteProgramado.SelectedValue = "";
                textoFechaInicialProgramado.Text = "";
            }
        }
    }