private void cargarSemaforos()
    {
        contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());
        DataTable tblcontratosServicio = new DataTable();

        tblcontratosServicio = _contratosServicio.ObtenerSemaforoContratosDeServico();
        int conteoBajo = (from s in tblcontratosServicio.AsEnumerable() where s["ALERTA"].ToString()=="BAJO" select s).Count();
        int conteoMedio = (from s in tblcontratosServicio.AsEnumerable() where s["ALERTA"].ToString()=="MEDIO" select s).Count();
        int conteoAlto = (from s in tblcontratosServicio.AsEnumerable() where s["ALERTA"].ToString()=="ALTO" select s).Count();

        var listaFinal = (from s in tblcontratosServicio.AsEnumerable() select new { ALERTA = s["ALERTA"].ToString(), contador = 0 });
        DataTable tablaFinal = new System.Data.DataTable();
        tablaFinal.Columns.Add("ALERTA");
        tablaFinal.Columns.Add("contador");

        foreach (var item in (from s in listaFinal orderby s.ALERTA select s).Distinct().ToList())
        {

            //if ((from s in tablaFinal.AsEnumerable() where s["ALERTA"] == item.ALERTA select s).Count() <= 0)
            //{
                DataRow fila = tablaFinal.NewRow();

                fila["ALERTA"] = item.ALERTA;
                switch (item.ALERTA.ToLower())
                {
                    case "bajo":
                        fila["contador"] = conteoBajo;
                        break;
                    case "medio":
                        fila["contador"] = conteoMedio;
                        break;
                    case "alto":
                        fila["contador"] = conteoAlto;
                        break;
                }

                tablaFinal.Rows.Add(fila);
            //}
        }

        DataView custDV = new DataView(tablaFinal);

        Display(custDV);
    }
    private void Cargar()
    {
        contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());

        Cargar(GridView_HOJA_DE_TRABAJO, _contratosServicio.ObtenerSemaforoContratosDeServico());
        Cargar(DropDownList_BUSCAR);
    }
    private void Buscar()
    {
        DataTable dataTableColor = new DataTable();
        DataRow[] dataRows;
        string alerta = null;
        Configurar(dataTableColor);
        if (DropDownList_BUSCAR.SelectedValue.Equals("Rojo")) alerta = "ALTO";
        if (DropDownList_BUSCAR.SelectedValue.Equals("Amarillo")) alerta = "MEDIO";
        if (DropDownList_BUSCAR.SelectedValue.Equals("Verde")) alerta = "BAJO";

        contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());
        if (DropDownList_BUSCAR.SelectedValue.ToString() == "")
        {
            dataTableColor = _contratosServicio.ObtenerSemaforoContratosDeServico();
        }
        else
        {
            dataRows = _contratosServicio.ObtenerSemaforoContratosDeServico().Select("ALERTA = '" + alerta + "'");
            foreach (DataRow dataRow in dataRows)
            {
                dataTableColor.ImportRow(dataRow);
            }
        }
        Cargar(GridView_HOJA_DE_TRABAJO, dataTableColor);
    }
    private void Modificar()
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

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

        Decimal REGISTRO_CONTRATO = Convert.ToDecimal(HiddenField_REGISTRO_CONTRATO.Value);

        String NUMERO_CONTRATO = TextBox_NUMERO_CONTRATO.Text.Trim();

        DateTime FECHA_INICIO = Convert.ToDateTime(TextBox_inicio_contrato_comercial.Text);
        DateTime FECHA_VENCE = Convert.ToDateTime(TextBox_fecha_vencimiento_contrato_comercial.Text);

        String TIPO_CONTRATO = DropDownList_TIPO_SERVICIO_RESPECTIVO.SelectedValue;
        String OBJ_CONTRATO = TextBox_DetalleServicioRespectivo.Text.Trim();

        String FIRMADO = "N";
        if (CheckBox_FIRMADO.Checked == true)
        {
            FIRMADO = "S";
        }

        String ENVIADO = "N";
        if (CheckBox_ENVIO_CTE.Checked == true)
        {
            ENVIADO = "S";
        }

        List<HistorialEnvioDevolucion> listaEnviosDevoluciones = new List<HistorialEnvioDevolucion>();

        for (int i = 0; i < GridView_HistorialEnvios.Rows.Count; i++)
        {
            GridViewRow filaGrilla = GridView_HistorialEnvios.Rows[i];

            Decimal ID_ACCION = Convert.ToDecimal(GridView_HistorialEnvios.DataKeys[i].Values["ID_ACCION"]);

            if (ID_ACCION <= 0)
            {
                Decimal ID_CONTRATO = Convert.ToDecimal(HiddenField_REGISTRO_CONTRATO.Value);

                TextBox textoFechaAccion = filaGrilla.FindControl("TextBox_FECHA_ACCION") as TextBox;
                DateTime FECHA_ACCION = Convert.ToDateTime(textoFechaAccion.Text);

                DropDownList dropTipoAccion = filaGrilla.FindControl("DropDownList_TIPO_ACCION") as DropDownList;
                String TIPO_ACCION = dropTipoAccion.SelectedValue;

                TextBox textoObservaciones = filaGrilla.FindControl("TextBox_OBSERVACIONES_ACCION") as TextBox;
                String OBSERVACIONES = textoObservaciones.Text.Trim();

                HistorialEnvioDevolucion _envioDevolucion = new HistorialEnvioDevolucion();

                _envioDevolucion.FECHA_ACCION = FECHA_ACCION;
                _envioDevolucion.ID_ACCION = ID_ACCION;
                _envioDevolucion.ID_CONTRATO = ID_CONTRATO;
                _envioDevolucion.OBSERVACIONES = OBSERVACIONES;
                _envioDevolucion.TIPO_ACCION = TIPO_ACCION;

                listaEnviosDevoluciones.Add(_envioDevolucion);
            }
        }

        contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());

        Boolean verificador = _contratosServicio.Actualizar(REGISTRO_CONTRATO, NUMERO_CONTRATO, FECHA_INICIO, FECHA_VENCE, TIPO_CONTRATO, OBJ_CONTRATO, FIRMADO, ENVIADO, Session["USU_LOG"].ToString(), listaEnviosDevoluciones, FECHA_INICIO, FECHA_VENCE);

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

            DataTable tablainfoContrato = _contratosServicio.ObtenerContratosDeServicioIdContrato(REGISTRO_CONTRATO);
            Cargar(tablainfoContrato.Rows[0]);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El Contrato de Servicio / Servicio Respectivo fue modificado correctamente.", Proceso.Correcto);
        }
    }
    private void cargar_GridView_RESULTADOS_BUSQUEDA()
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        String reg = QueryStringSeguro["reg"].ToString();
        contratosServicio _contratosServico = new contratosServicio(Session["idEmpresa"].ToString());

        DataTable tablaContratosOriginal = _contratosServico.ObtenerContratosDeServicioPorIdEmpresa(Convert.ToDecimal(reg));

        if (tablaContratosOriginal.Rows.Count <= 0)
        {
            if (_contratosServico.MensajeError == null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron registros de Contratos de Servicio para esta empresa.", Proceso.Advertencia);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _contratosServico.MensajeError, Proceso.Error);
            }

            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaContratosOriginal;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }
    }
    private void CargarHistorialEnviosDevoluciones(Decimal REGISTRO)
    {
        contratosServicio _contrato = new contratosServicio(Session["idEmpresa"].ToString());

        DataTable tablaHistorial = _contrato.ObtenerHistorialEnviosDevolucionesPorIdContrato(REGISTRO);

        if (tablaHistorial.Rows.Count <= 0)
        {
            if (_contrato.MensajeError != null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _contrato.MensajeError, Proceso.Error);
            }

            Panel_HistorialEnvios.Visible = false;
        }
        else
        {
            Panel_HistorialEnvios.Visible = true;

            cargar_GridView_HistorialEnvios_desde_tabla(tablaHistorial);
        }
    }
    protected void GridView_RESULTADOS_BUSQUEDA_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int indexSeleccionado = Convert.ToInt32(e.CommandArgument);

        if (e.CommandName == "seleccionar")
        {
            Decimal REGISTRO = Convert.ToDecimal(GridView_RESULTADOS_BUSQUEDA.DataKeys[indexSeleccionado].Values["REGISTRO"]);

            contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());
            DataTable tablainfoContrato = _contratosServicio.ObtenerContratosDeServicioIdContrato(REGISTRO);

            Cargar(tablainfoContrato.Rows[0]);
        }
    }
        private void cargarSemaforos()
        {
            contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());
            DataTable tblcontratosServicio = new DataTable();

            tblcontratosServicio = _contratosServicio.ObtenerSemaforoContratosDeServico();

            //var qryLatestInterview = from rows in tblcontratosServicio.AsEnumerable()
            //             orderby rows["ALERTA"] descending
            //             group rows by new { PositionID = rows["ALERTA"]} into grp
            //             select grp.First();

            //var qryLatestInterview = from row in tblcontratosServicio.AsEnumerable()
            //                         group row by row.Field<string>("ALERTA") into sales
            //                         select new
            //                         {
            //                             ALERTA = sales.Key,
            //                             contador = sales.Count()
            //                         };

            //var dtPositionInterviews = qryLatestInterview.CopyToDataTable();

            DataView custDV = new DataView(tblcontratosServicio);

            Display(custDV);
        }
    private void GrabarFilaGrilla_2(GridView grilla, int fila, int colInicio)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        GridViewRow filaGrilla = GridViewAdministradorInfoBasicaComercia.Rows[fila];

        Label txtCodigo = filaGrilla.FindControl("lblCODIGO") as Label;
        String _txtCodigo = txtCodigo.Text;
        TextBox lblDESCRIPCION = filaGrilla.FindControl("TXTDESCRIPCION") as TextBox;
        Label txtSiNo = filaGrilla.FindControl("lblCODIGO") as Label;
        String _lblDESCRIPCION = lblDESCRIPCION.Text;

        Int32 operaciones = 3 ;

        contratosServicio _contratosServico = new contratosServicio(Session["idEmpresa"].ToString());
        DataTable tablaContratosOriginal = _contratosServico.ObtenerITEMSInformacionBasicapor(operaciones, _txtCodigo, _lblDESCRIPCION);
        cargar_GridView_RESULTADOS_BUSQUEDA_Administrador();
    }
    private void cargar_GridView_RESULTADOS_BUSQUEDA_Administrador()
    {
        contratosServicio _contratosServico = new contratosServicio(Session["idEmpresa"].ToString());
        Int32 operaciones = 1;
        String Codigo = "";
        String Descripcion = "";
        DataTable tablaContratosOriginal = _contratosServico.ObtenerITEMSInformacionBasicapor(operaciones, Codigo, Descripcion);
        this.div_GridViewAdministradorInfoBasicaComercia.Visible = true;
        GridViewAdministradorInfoBasicaComercia.Visible = true;
        GridViewAdministradorInfoBasicaComercia.DataSource = tablaContratosOriginal;
        GridViewAdministradorInfoBasicaComercia.DataBind();
        ACTUALIZAR.Visible = false;
        Button3.Visible = false;
        this.txt_Nuevo_Registro.Text = "";

        for (int i = 0; i < GridViewAdministradorInfoBasicaComercia.Rows.Count; i++)
        {
            GridViewAdministradorInfoBasicaComercia.Rows[i].Cells[2].Enabled = false;
            GridViewRow filaGrilla = GridViewAdministradorInfoBasicaComercia.Rows[i];

            Label TXT_SI_NO = filaGrilla.FindControl("TXT_SINO") as Label;
            String _txtCodigo = TXT_SI_NO.Text;
            if (_txtCodigo == "X")
            {
                GridViewAdministradorInfoBasicaComercia.Rows[i].Cells[0].Enabled = false;
                GridViewAdministradorInfoBasicaComercia.Rows[i].Cells[1].Enabled = true;
                GridViewAdministradorInfoBasicaComercia.Rows[i].Cells[2].Enabled = false;

                TextBox lblDESCRIPCION = filaGrilla.FindControl("TXTDESCRIPCION") as TextBox;
                lblDESCRIPCION.Enabled = false;
                lblDESCRIPCION.BackColor = System.Drawing.ColorTranslator.FromHtml("#BDC0C6");
                lblDESCRIPCION.BorderColor = System.Drawing.ColorTranslator.FromHtml("#BDC0C6");
                filaGrilla.BackColor = System.Drawing.ColorTranslator.FromHtml("#BDC0C6");
            }
            else
            {
                GridViewAdministradorInfoBasicaComercia.Rows[i].Cells[0].Enabled = false;
                GridViewAdministradorInfoBasicaComercia.Rows[i].Cells[1].Enabled = true;
                GridViewAdministradorInfoBasicaComercia.Rows[i].Cells[2].Enabled = false;
            }
        }
    }
    private void cargar_GridView_RESULTADOS_BUSQUEDA()
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        String reg = QueryStringSeguro["reg"].ToString();
        contratosServicio _contratosServico = new contratosServicio(Session["idEmpresa"].ToString());

        DataTable tablaContratosOriginal = _contratosServico.ObtenerInformacionBasicaporId_Empresa(Convert.ToDecimal(reg));

        if (tablaContratosOriginal.Rows.Count <= 0)
        {

            if (_contratosServico.MensajeError == null)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron registros de Contratos de Servicio para esta empresa.", Proceso.Advertencia);
            }
            else
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _contratosServico.MensajeError, Proceso.Error);
            }
            Panel_RESULTADOS_GRID.Visible = false;
        }
        else
        {
            GridView_RESULTADOS_BUSQUEDA.DataSource = tablaContratosOriginal;
            GridView_RESULTADOS_BUSQUEDA.DataBind();
        }

        for (int i = 0; i < GridView_RESULTADOS_BUSQUEDA.Rows.Count; i++)
        {
            GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[2].Enabled = false;
            GridViewRow filaGrilla = GridView_RESULTADOS_BUSQUEDA.Rows[i];

            Label TXT_SI_NO = filaGrilla.FindControl("TXT_SINO") as Label;
            String _txtCodigo = TXT_SI_NO.Text;
            Label _TXT_ESTADO_REG = filaGrilla.FindControl("TXT_ESTADO_REG") as Label;
            String _txtESTADO = _TXT_ESTADO_REG.Text;
            if (_txtCodigo != "X")
            {
                RadioButtonList lblRadioSINO = filaGrilla.FindControl("RadioButtonListSN") as RadioButtonList;
                TextBox lblDESCRIPCION = filaGrilla.FindControl("TXT_ACLARACION") as TextBox;
                lblRadioSINO.SelectedValue = _txtESTADO;
                lblRadioSINO.Enabled = false;
                lblDESCRIPCION.Enabled = false;
                lblDESCRIPCION.BackColor = System.Drawing.ColorTranslator.FromHtml("#BDC0C6");
                lblDESCRIPCION.BorderColor = System.Drawing.ColorTranslator.FromHtml("#BDC0C6");
                filaGrilla.BackColor = System.Drawing.ColorTranslator.FromHtml("#BDC0C6");
            }
            else
            {
                GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[0].Enabled = false;
                GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[1].Enabled = false;
                GridView_RESULTADOS_BUSQUEDA.Rows[i].Cells[2].Enabled = true;
            }

        }
    }
    protected void GridViewAdministradorInfoBasicaComercia_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int indexSeleccionado = Convert.ToInt32(e.CommandArgument);
        switch (e.CommandName)
        {
            case "Editar":
                ActivarFilaGrilla_2(GridViewAdministradorInfoBasicaComercia, indexSeleccionado, 2);
                break;
            case "Borrar":
                tools _tools = new tools();
                SecureQueryString QueryStringSeguro;
                QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

                GridViewRow filaGrilla = GridViewAdministradorInfoBasicaComercia.Rows[indexSeleccionado];

                Label txtCodigo = filaGrilla.FindControl("lblCODIGO") as Label;
                String _txtCodigo = txtCodigo.Text;
                TextBox lblDESCRIPCION = filaGrilla.FindControl("TXTDESCRIPCION") as TextBox;
                Label txtSiNo = filaGrilla.FindControl("lblCODIGO") as Label;
                String _lblDESCRIPCION = lblDESCRIPCION.Text;

                Int32 operaciones = 4 ;

                contratosServicio _contratosServico = new contratosServicio(Session["idEmpresa"].ToString());
                DataTable tablaContratosOriginal = _contratosServico.ObtenerITEMSInformacionBasicapor(operaciones, _txtCodigo, _lblDESCRIPCION);
                cargar_GridView_RESULTADOS_BUSQUEDA_Administrador();
                break;
            case "Grabar":
                GrabarFilaGrilla_2(GridView_RESULTADOS_BUSQUEDA, indexSeleccionado, 2);
                break;
        }
    }
    protected void Grabar_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        String _lblDESCRIPCION = this.txt_Nuevo_Registro.Text;
        Int32 operaciones = 2;
        String _txtCodigo = "";

        contratosServicio _contratosServico = new contratosServicio(Session["idEmpresa"].ToString());
        DataTable tablaContratosOriginal = _contratosServico.ObtenerITEMSInformacionBasicapor(operaciones, _txtCodigo, _lblDESCRIPCION);
        cargar_GridView_RESULTADOS_BUSQUEDA_Administrador();
    }
    private DataRow ObtenerContratoDeServicioVigentePorIdEmpresa(Decimal ID_EMPRESA)
    {
        DataRow resultado = null;

        contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());

        DataTable tablaContratoVigente = _contratosServicio.ObtenerContratoDeServicioVigentePorIdEmpresa(ID_EMPRESA);

        if (tablaContratoVigente.Rows.Count > 0)
        {
            resultado = tablaContratoVigente.Rows[0];
        }

        return resultado;
    }
    protected void GridView_HOJA_DE_TRABAJO_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView_HOJA_DE_TRABAJO.PageIndex = e.NewPageIndex;

        contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());
        Cargar(GridView_HOJA_DE_TRABAJO, _contratosServicio.ObtenerSemaforoContratosDeServico());
    }
    private void cargar_datos_servicio_respectivo(DataRow filaInfoReq)
    {
        if (DropDownList_ID_EMPRESA.SelectedValue == "")
        {
            Label_ID_SERVICIO_RESPECTIVO.Text = "DESCONOCIDO";
            TextBox_DESCRIPCION_SERVICIO.Text = "NO SE NCONTRÓ INFORMACIÓN DEL SERVICIO RESPECTIVO ASOCIADO A ESTA REQUISICIÓN.";
            TextBox_FECHA_VENCE_SERVICIO.Text = "";
        }
        else
        {
            Decimal ID_SERVICIO_RESPECTIVO = 0;
            try
            {
                ID_SERVICIO_RESPECTIVO = Convert.ToDecimal(filaInfoReq["ID_SERVICIO_RESPECTIVO"]);
            }
            catch
            {
                ID_SERVICIO_RESPECTIVO = 0;
            }

            if (ID_SERVICIO_RESPECTIVO == 0)
            {
                Label_ID_SERVICIO_RESPECTIVO.Text = "DESCONOCIDO";
                TextBox_DESCRIPCION_SERVICIO.Text = "NO SE NCONTRÓ INFORMACIÓN DEL SERVICIO RESPECTIVO ASOCIADO A ESTA REQUISICIÓN.";
                TextBox_FECHA_VENCE_SERVICIO.Text = "";
            }
            else
            {
                contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());
                DataTable tablaServicoRespectivo = _contratosServicio.ObtenerContratosDeServicioIdContrato(ID_SERVICIO_RESPECTIVO);

                if (tablaServicoRespectivo.Rows.Count <= 0)
                {
                    Label_ID_SERVICIO_RESPECTIVO.Text = "DESCONOCIDO";
                    TextBox_DESCRIPCION_SERVICIO.Text = "NO SE NCONTRÓ INFORMACIÓN DEL SERVICIO RESPECTIVO ASOCIADO A ESTA REQUISICIÓN.";
                    TextBox_FECHA_VENCE_SERVICIO.Text = "";
                }
                else
                {
                    DataRow infoServicio = tablaServicoRespectivo.Rows[0];

                    Label_ID_SERVICIO_RESPECTIVO.Text = infoServicio["REGISTRO"].ToString();
                    TextBox_DESCRIPCION_SERVICIO.Text = infoServicio["OBJ_CONTRATO"].ToString().Trim();
                    TextBox_FECHA_VENCE_SERVICIO.Text = Convert.ToDateTime(infoServicio["FCH_VENCE"]).ToShortDateString();
                }
            }
        }
    }
        //private void Cargar()
        public List<Data> Cargar()
        {
            contratosServicio _contratosServicio = new contratosServicio(Session["idEmpresa"].ToString());

            //Aca se sacar el valor que necesita la torta.
            List<Data> dataList = new List<Data>();
            string cat = "";
            int val = 0;

            cat = "Hola";
            val = 12;
            dataList.Add(new Data(cat, val));

            return dataList;

            //Cargar(GridView_HOJA_DE_TRABAJO, _contratosServicio.ObtenerSemaforoContratosDeServico());
        }