protected override void OnLoad(EventArgs e)
        {
            Monitor.ContextMenuPostback += Monitor_ContextMenuPostback;
            chkQtree.Visible             = WebSecurity.IsSecuredAllowed(Securables.ViewQtree);

            base.OnLoad(e);

            if (!IsPostBack)
            {
                this.RegisterCss(ResolveUrl("~/App_Styles/openlayers.css"));
                RegisterExtJsStyleSheet();

                dtDesde.SelectedDate = InitialDate.Get().ToDisplayDateTime();
                dtHasta.SelectedDate = FinalDate.Get().ToDisplayDateTime();
                WestPanel.Enabled    = !LockFilters.Get();
                dtDesde.Enabled      = !LockFilters.Get();
                dtHasta.Enabled      = !LockFilters.Get();
                if (Distrito.Get() > 0)
                {
                    ddlDistrito.SetSelectedValue(Distrito.Get());
                }
                if (Location.Get() > 0)
                {
                    ddlPlanta.SetSelectedValue(Location.Get());
                }
                if (Chofer.Get() > 0)
                {
                    ddlEmpleado.SetSelectedValue(Chofer.Get());
                }
                if (TypeMobile.Get() > 0)
                {
                    ddlTipoVehiculo.SetSelectedValue(TypeMobile.Get());
                }
                if (Mobile.Get() > 0)
                {
                    ddlMovil.SetSelectedValue(Mobile.Get());
                }

                foreach (var id in PoisTypesIds.Get())
                {
                    var it = lbPuntosDeInteres.Items.FindByValue(id.ToString());
                    if (it != null)
                    {
                        it.Selected = true;
                    }
                }
                PoisTypesIds.Set(lbPuntosDeInteres.SelectedValues);

                InitializeMap();
                if (Mobile.Get() > 0)
                {
                    LoadPositions(true);
                }
            }
        }
        private void LoadPositions(bool center)
        {
            var par = new Parameters
            {
                Empresa  = Distrito.Get(),
                Linea    = Location.Get(),
                Chofer   = Chofer.Get(),
                Vehiculo = Mobile.Get(),
                Desde    = InitialDate.Get(),
                Hasta    = FinalDate.Get(),
                TiposPoi = PoisTypesIds.Get().ToArray()
            };

            Monitor.ExecuteScript(string.Format("CallForData('{0}', {1});", par.Serialize(), center ? "true" : "false"));
        }
        private void GetReferenciasGeograficas()
        {
            var pois = !PoisTypesIds.Contains(0)
                       ? DAOFactory.ReferenciaGeograficaDAO.GetList(new[] { Distrito }, new[] { Location }, PoisTypesIds).Where(x => x.Vigencia == null || x.Vigencia.Vigente(InitialDate, FinalDate)).ToList()
                       : new List <ReferenciaGeografica>();

            if (pois.Count == 0 && lstTicket.SelectedValue != "")
            {
                var value = lstTicket.SelectedValue.Contains("T-") || lstTicket.SelectedValue.Contains("V-")
                            ? Convert.ToInt32((string)lstTicket.SelectedValue.Split('-')[1])
                            : Convert.ToInt32((string)lstTicket.SelectedValue);

                if (value > 0 && lstTicket.SelectedValue.Contains("T-"))
                {
                    var ticket = DAOFactory.TicketDAO.FindById(value);

                    pois.Add(ticket.Linea.ReferenciaGeografica);
                    pois.Add(ticket.PuntoEntrega.ReferenciaGeografica);
                }

                if (value > 0 && lstTicket.SelectedValue.Contains("V-"))
                {
                    var viaje = DAOFactory.ViajeDistribucionDAO.FindById(value);

                    pois.Add(viaje.Linea.ReferenciaGeografica);
                    pois.AddRange(viaje.Detalles.Select(detalle => detalle.ReferenciaGeografica));
                }
            }

            foreach (var punto in pois)
            {
                if (punto.Poligono != null)
                {
                    DrawGeocerca(punto);
                }

                if (punto.Direccion != null)
                {
                    Monitor.AddMarkers(Layers.PuntosDeInteres, new Marker(punto.Id.ToString("#0"), GetPoiIcon(punto), punto.Direccion.Latitud, punto.Direccion.Longitud,
                                                                          string.Format("javascript:gPOIP('{0}')", punto.Descripcion), DrawingFactory.GetSize(24, 24), DrawingFactory.GetOffset(-12, -12)));
                }
            }
        }
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            Distrito.Set(ddlDistrito.Selected);
            Location.Set(ddlPlanta.Selected);
            Chofer.Set(ddlEmpleado.Selected);
            Mobile.Set(ddlMovil.Selected);
            InitialDate.Set(SecurityExtensions.ToDataBaseDateTime(dtDesde.SelectedDate.Value));
            FinalDate.Set(SecurityExtensions.ToDataBaseDateTime(dtHasta.SelectedDate.Value));
            PoisTypesIds.Set(lbPuntosDeInteres.SelectedValues);

            var deltaTime = FinalDate.Get().Subtract(InitialDate.Get());

            if (deltaTime > dtvalidator.MaxRange)
            {
                ShowError("El rango de tiempo debe ser menor o igual a " + dtvalidator.MaxRange.ToString());
                return;
            }
            LoadPositions(true);
        }
        private void GetReferenciasGeograficas()
        {
            var pois = !PoisTypesIds.Contains(0)
                       ? DAOFactory.ReferenciaGeograficaDAO.GetList(new[] { Distrito }, new[] { Location }, PoisTypesIds).Where(x => x.Vigencia == null || x.Vigencia.Vigente(InitialDate, FinalDate)).ToList()
                       : new List <ReferenciaGeografica>();

            foreach (var punto in pois)
            {
                if (punto.Poligono != null)
                {
                    DrawGeocerca(punto);
                }

                if (punto.Direccion != null)
                {
                    Monitor.AddMarkers(Layers.PuntosDeInteres, new Marker(punto.Id.ToString("#0"), GetPoiIcon(punto), punto.Direccion.Latitud, punto.Direccion.Longitud,
                                                                          string.Format("javascript:gPOIP('{0}')", punto.Descripcion), DrawingFactory.GetSize(24, 24), DrawingFactory.GetOffset(-12, -12)));
                }
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            Monitor.ContextMenuPostback += Monitor_ContextMenuPostback;

            LoadQtreeInfo();

            base.OnLoad(e);

            var empresa  = DAOFactory.EmpresaDAO.FindById(ddlDistrito.Selected);
            var maxHours = empresa != null && empresa.Id > 0 ? empresa.MaxHorasMonitor : 24;

            dtvalidator.MaxRange = new TimeSpan(maxHours, 0, 0);

            if (!IsPostBack)
            {
                this.RegisterCss(ResolveUrl("~/App_Styles/openlayers.css"));
                RegisterExtJsStyleSheet();

                dtDesde.SelectedDate = InitialDate.Get().ToDisplayDateTime();
                dtHasta.SelectedDate = FinalDate.Get().ToDisplayDateTime();
                WestPanel.Enabled    = !LockFilters.Get();
                dtDesde.Enabled      = !LockFilters.Get();
                dtHasta.Enabled      = !LockFilters.Get();
                if (Distrito.Get() > 0)
                {
                    ddlDistrito.SetSelectedValue(Distrito.Get());
                }
                if (Location.Get() > 0)
                {
                    ddlPlanta.SetSelectedValue(Location.Get());
                }
                if (Chofer.Get() > 0)
                {
                    ddlEmpleado.SetSelectedValue(Chofer.Get());
                }
                if (TypeMobile.Get() > 0)
                {
                    ddlTipoVehiculo.SetSelectedValue(TypeMobile.Get());
                }
                if (Mobile.Get() > 0)
                {
                    ddlMovil.SetSelectedValue(Mobile.Get());
                }

                foreach (var id in PoisTypesIds.Get())
                {
                    var it = lbPuntosDeInteres.Items.FindByValue(id.ToString());
                    if (it != null)
                    {
                        it.Selected = true;
                    }
                }
                PoisTypesIds.Set(lbPuntosDeInteres.SelectedValues);

                InitializeMap();
                if (Mobile.Get() > 0)
                {
                    LoadPositions(true);
                }
            }
        }