protected void UiVistaClienesEnRuta_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }

            try {
                switch (e.Parameters.Split('|')[0])
                {
                case "ObtenerPuntosPadre":
                    ReporteClientesEnSector = null;

                    var arg = new PoligonoArgumento
                    {
                        Poligono = new Poligono
                        {
                            POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Sector)
                            ,
                            POLYGON_ID = int.Parse(UiRutaListaSector.Text.ToString().Split(';')[0])
                            ,
                            POLYGON_NAME = UiRutaListaSector.Text.ToString().Split(';')[1]
                            ,
                            SUB_TYPE = "COMMERCIAL"
                        }
                    };

                    UsuarioDeseaObtenerPuntosDePoligonoDeSector?.Invoke(sender, arg);

                    UiVistaClienesEnRuta.JSProperties.Add("cpFormarPoligonoPadreRuta", ReporteClientesEnSector);

                    break;

                case "ObtenerReporteRuta":
                    var fechaInicio   = UiFechaIncioRuta.Date;
                    var fechaFinal    = UiFechaFinalRuta.Date;
                    var arrayEtiqueta = (e.Parameters.Split('|')[1]).Split(',').ToList();
                    var arrayCanal    = (e.Parameters.Split('|')[2]).Split(',').ToList();
                    var tipoAnalisis  = e.Parameters.Split('|')[3];
                    var padre         = int.Parse(e.Parameters.Split('|')[4]);

                    string etiquetas = null, canales = null;

                    if (arrayEtiqueta[0] != "null")
                    {
                        foreach (var item in arrayEtiqueta)
                        {
                            etiquetas += item + "|";
                        }
                    }

                    if (arrayCanal[0] != "null")
                    {
                        foreach (var item in arrayCanal)
                        {
                            canales += item + "|";
                        }
                    }

                    var poligonoArgumento = new PoligonoArgumento
                    {
                        Poligono = new Poligono {
                            POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Ruta), POLYGON_ID = padre, SUB_TYPE = "COMMERCIAL"
                        }
                        ,
                        FechaDe = fechaInicio
                        ,
                        FechaHasta = fechaFinal
                        ,
                        Etiqueta = new Etiqueta {
                            TAG_VALUE_TEXT = etiquetas
                        }
                        ,
                        Canal = new Canal {
                            CODE_CHANNEL = canales
                        }
                        ,
                        TipoAnalisis = tipoAnalisis
                    };
                    UsuarioDeseaObtenerReporteRuta?.Invoke(sender, poligonoArgumento);

                    UsuarioDeseaObtenerPuntosDePoligonoDeRuta?.Invoke(sender, new PoligonoArgumento {
                        Poligono = new Poligono {
                            POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Ruta), POLYGON_ID_PARENT = padre, SUB_TYPE = "COMMERCIAL"
                        }
                    });

                    //if (tipoCarga == "1")
                    //    UiVistaClienesEnRegion.JSProperties.Add("cpFormarPoligonoRegionSector", ReporteClientesEnRegion);
                    //else
                    UiVistaClienesEnRuta.JSProperties.Add("cpFormarPoligonosRuta", ReporteClientesEnRuta);
                    break;

                case "Limpiar":
                    ReporteClientesEnRuta           = null;
                    UiVistaClienesEnRuta.DataSource = null;
                    UiVistaClienesEnRuta.DataBind();
                    break;
                }
            }
            catch (Exception ex)
            {
                EstablecerError(ex.Message, sender);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }

            if (!Page.IsPostBack)
            {
                //Session["UiVistaDevolucion"] = null;
            }

            if (Session["connectionString"] == null || Session["USER"] == null)
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "Logoff", "LogOff();", true);
                //UiVistaDevolucion.JSProperties.Add("cpLocation", "Enable");
                return;
            }

            if (Session["UiVistaClienesEnRegion"] != null)
            {
                UiVistaClienesEnRegion.DataSource = Session["UiVistaClienesEnRegion"];
                UiVistaClienesEnRegion.DataBind();
            }

            if (Session["UiVistaUnidadDeMedidaEnRegion"] != null)
            {
                UiVistaUnidadDeMedidaEnRegion.DataSource = Session["UiVistaUnidadDeMedidaEnRegion"];
                UiVistaUnidadDeMedidaEnRegion.DataBind();
            }

            if (Session["UiVistaClienesEnSector"] != null)
            {
                UiVistaClienesEnSector.DataSource = Session["UiVistaClienesEnSector"];
                UiVistaClienesEnSector.DataBind();
            }

            if (Session["UiVistaUnidadDeMedidaEnSector"] != null)
            {
                UiVistaUnidadDeMedidaEnSector.DataSource = Session["UiVistaUnidadDeMedidaEnSector"];
                UiVistaUnidadDeMedidaEnSector.DataBind();
            }

            if (Session["UiVistaClienesEnRuta"] != null)
            {
                UiVistaClienesEnRuta.DataSource = Session["UiVistaClienesEnRuta"];
                UiVistaClienesEnRuta.DataBind();
            }

            if (Session["UiVistaUnidadDeMedidaEnRuta"] != null)
            {
                UiVistaUnidadDeMedidaEnRuta.DataSource = Session["UiVistaUnidadDeMedidaEnRuta"];
                UiVistaUnidadDeMedidaEnRuta.DataBind();
            }

            if (Session["UiListaEtiquetas"] != null)
            {
                UiRegionListaEtiquetas.DataSource = Session["UiListaEtiquetas"];
                UiRegionListaEtiquetas.DataBind();
                UiSectorListaEtiquetas.DataSource = Session["UiListaEtiquetas"];
                UiSectorListaEtiquetas.DataBind();
                UiRutaListaEtiquetas.DataSource = Session["UiListaEtiquetas"];
                UiRutaListaEtiquetas.DataBind();
                UiTopListaEtiquetas.DataSource = Session["UiListaEtiquetas"];
                UiTopListaEtiquetas.DataBind();
            }

            if (Session["UiListaCanales"] != null)
            {
                UiRegionListaCanal.DataSource = Session["UiListaCanales"];
                UiRegionListaCanal.DataBind();
                UiSectorListaCanal.DataSource = Session["UiListaCanales"];
                UiSectorListaCanal.DataBind();
                UiRutaListaCanal.DataSource = Session["UiListaCanales"];
                UiRutaListaCanal.DataBind();
                UiTopListaCanal.DataSource = Session["UiListaCanales"];
                UiTopListaCanal.DataBind();
            }

            if (Session["UiSectorListaRegion"] != null)
            {
                UiSectorListaRegion.DataSource = Session["UiSectorListaRegion"];
                UiSectorListaRegion.DataBind();
            }

            if (Session["UiRutaListaSector"] != null)
            {
                UiRutaListaSector.DataSource = Session["UiRutaListaSector"];
                UiRutaListaSector.DataBind();
            }

            if (Session["UiVistaTop"] != null)
            {
                UiVistaTop.DataSource = Session["UiVistaTop"];
                UiVistaTop.DataBind();
                GenerarReporteDeVistaTop();
            }
        }