예제 #1
0
        private void SeleccionarZona(Zona zonaMapa, bool clear = true)
        {
            if (clear)
            {
                this.mapa.Markers.Clear();
            }

            this.DibujarZona(zonaMapa);

            zonaMapa.Clientes.Clear();
            ControladorZonas.CargarClientes(zonaMapa, this.ModoVerClientesConRuteo);

            this.VerClientes(zonaMapa.Clientes);

            if (this.ModoSeleccion == SelectionMode.Single)
            {
                this.VisibilidadColumnaClientes         = GridLength.Auto;
                this.clientesUC.Clientes                = new ObservableCollection <Cliente>(zonaMapa.Clientes);
                this.clientesUC.dgClientes.Items.Filter = null;
                this.clientesUC.cantidadClientes        = this.clientesUC.Clientes.Count;
                this.ZonaSeleccionada = zonaMapa;
            }
            else
            {
                this.VisibilidadColumnaClientes = new GridLength(0);
            }
        }
        private object VerZonasDelVendedor(object vendedorMapa)
        {
            //Random r = new Random();
            var v = (Vendedor)vendedorMapa;

            try
            {
                if (v.Zonas.Count == 0) //cargo las listas de zonas si no están cargadas
                {
                    ControladorZonas.CargarZonasDelVendedor(v, DateTime.Today);
                }
                foreach (var zonamapa in v.Zonas) //dibujo
                {
                    //var alpha = r.Next(0, byte.MaxValue + 1);
                    //var red = r.Next(0, byte.MaxValue + 1);
                    //var green = r.Next(0, byte.MaxValue + 1);
                    //var blue = r.Next(0, byte.MaxValue + 1);
                    //var brush = new SolidColorBrush(Color.FromArgb((byte)alpha, (byte)red, (byte)green, (byte)blue));
                    if (zonamapa.Vertices.Count == 0) //cargo los vertices si es que no los cargué aun.
                    {
                        zonamapa.Vertices = ControladorZonas.ObtenerVerticesZona(zonamapa.Codigo, zonamapa.CodigoEmpresa, zonamapa.CodigoDivision);
                    }
                    this.mapa.Markers.Add(ControladorMapa.CrearPoligonoZona(zonamapa.Vertices, zonamapa.CodigoEmpresa == "01" ? Brushes.LightBlue : Brushes.Orange, zonamapa.Codigo));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            v.VerZona = true;
            ControladorMapa.RefrescarVista(this.mapa);
            return(true);
        }
        private void AgregarActualizarVendedor(Vendedor vendedorMapa)
        {
            try
            {
                var v = Vendedores.FirstOrDefault(e => e.Codigo == vendedorMapa.Codigo);
                if (v == null)
                {
                    var prev = ControladorVendedores.ObtenerVendedor(vendedorMapa.Codigo);
                    if (prev != null)
                    {
                        vendedorMapa.Foto   = prev.Foto;
                        vendedorMapa.Nombre = prev.Nombre;
                        vendedorMapa.Calle  = prev.Calle;
                        vendedorMapa.Numero = prev.Numero;
                        vendedorMapa.CoordenadaDomicilio = new PointLatLng(prev.CoordenadaDomicilio.Lat, prev.CoordenadaDomicilio.Lng);
                    }

                    this.CalculaTiempoReporte(vendedorMapa);

                    if (vendedorMapa.CoordenadaActual.Lat == 0 && vendedorMapa.CoordenadaActual.Lng == 0) //si lat y lng vienen 0, 0 es porque tiene gps apagado
                    {
                        vendedorMapa.CoordenadaActual = new PointLatLng(-38.002452, -57.601936);
                        vendedorMapa.Estado           = Estado.GPS_APAGADO;
                    }

                    this.Vendedores.Add(vendedorMapa);
                }
                else
                {
                    if (v.Zonas.Count == 0)
                    {
                        ControladorZonas.CargarZonasDelVendedor(v, DateTime.Today);
                    }
                    ControladorVendedores.CalcularBultosYPesos(v, FechaDesde, FechaHasta);

                    v.Estado = vendedorMapa.Estado;
                    v.Fecha  = vendedorMapa.Fecha;

                    this.CalculaTiempoReporte(v);

                    if (vendedorMapa.CoordenadaActual.Lat == 0 && vendedorMapa.CoordenadaActual.Lng == 0)
                    {
                        vendedorMapa.Estado = Estado.GPS_APAGADO;
                    }
                    else
                    {
                        v.CoordenadaActual = vendedorMapa.CoordenadaActual;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #4
0
 private void VerZonasDelVendedor(Vendedor vendedorMapa)
 {
     foreach (var zona in vendedorMapa.Zonas) //dibujo
     {
         if (zona.Vertices.Count == 0)        //cargo los vertices si es que no los cargué aun.
         {
             zona.Vertices = ControladorZonas.ObtenerVerticesZona(zona.Codigo, zona.CodigoEmpresa, zona.CodigoDivision);
         }
         this.mapa.Markers.Add(ControladorMapa.CrearPoligonoZona(zona.Vertices, zona.CodigoEmpresa == "01" ? Brushes.LightBlue : Brushes.Orange, zona.Codigo));
     }
 }
예제 #5
0
        private void DibujarZona(Zona zonaMapa)
        {
            var tag   = zonaMapa.Codigo + "-" + zonaMapa.CodigoDivision + "-" + zonaMapa.CodigoEmpresa;
            var color = (Brush)colorEmpresaConverter.Convert(zonaMapa.CodigoEmpresa, null, null, null);

            if (zonaMapa.Vertices.Count == 0)
            {
                zonaMapa.Vertices = ControladorZonas.ObtenerVerticesZona(zonaMapa.Codigo, zonaMapa.CodigoEmpresa, zonaMapa.CodigoDivision);
            }
            if (!this.mapa.Markers.Any(z => z.ZIndex == 0 && z.Tag.ToString() == tag))
            {
                this.mapa.Markers.Add(ControladorMapa.CrearPoligonoZona(zonaMapa.Vertices, color, tag));
            }
        }
예제 #6
0
 private void SeleccionarMarcador(Vendedor vendedor)
 {
     if (vendedor.Zonas.Count == 0)
     {
         ControladorZonas.CargarZonasDelVendedor(vendedor, diaSeleccionado.Value);
     }
     vendedor.CantidadClientes = 0;
     foreach (var zona in vendedor.Zonas)
     {
         ControladorZonas.CargarClientes(zona, this.ModoVerClientesConRuteo);
         vendedor.CantidadClientes += zona.Clientes.Count;
     }
     ControladorVendedores.CalcularBultosYPesos(vendedor, diaSeleccionado.Value, diaSeleccionado.Value.AddDays(1));
     this.MostrarMarcador(vendedor, true);
 }
예제 #7
0
        public VisualizadorZonasClientes()
        {
            InitializeComponent();
            this.DataContext = this;

            colorEmpresaConverter = new ColorEmpresaConverter();

            this.CmdMoverUbicacionDeClienteManualmente = new RelayCommand(e => this.MoverUbicacionDeClienteManualmente(e));

            List <Zona> zonas = new List <Zona>();

            try
            {
                zonas = ControladorZonas.ObtenerZonas();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\n\nEsta ventana se cerrará.");
                this.Close();
            }
            this.TodasLasZonas = new ObservableCollection <Zona>(zonas);
            this.Zonas         = new ObservableCollection <Zona>(this.TodasLasZonas);
            this.listaDeZonas.SelectionChanged += listaDeZonas_SelectionChanged;

            var mdp = ControladorMapa.ObtenerCordenadasPorDireccion("Mar del Plata, Buenos Aires");

            if (mdp.HasValue)
            {
                this.mapa.Position = mdp.Value;
            }
            else
            {
                this.mapa.Position = new PointLatLng(-38.0042615, -57.6070055);
            }

            this.clientesUC.dgClientes.SelectionChanged += DgClientes_SelectionChanged;

            this.mapa.MouseRightButtonDown += Mapa_MouseRightButtonDown;

            this.KeyDown += VisualizadorZonasClientes_KeyDown;
        }