public VisualizadorActividadesClientes()
        {
            InitializeComponent();
            this.DataContext = this;
            List <Actividad> actividades = new List <Actividad>();

            this.clientesActividadSeleccionMultiple = new List <Cliente>();
            try
            {
                actividades = ControladorActividades.ObtenerActividades();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\n\nEsta ventana se cerrará.");
                this.Close();
            }

            this.Actividades = new ObservableCollection <Actividad>(actividades);

            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.listaDeActividades.SelectionChanged += ListaDeActividades_SelectionChanged;
        }
        private object VerCaminoDelVendedor(object vendedorMapa)
        {
            if (vendedorMapa == null)
            {
                return(false);
            }
            try
            {
                var v = vendedorMapa as Vendedor;
                v.VerTodasLasPosiciones = true;

                this.mapa.Markers.Add(ControladorMapa.CrearRuta(v.Posiciones.Where(p => p.Latitud != 0 && p.Longitud != 0).Select(x => new PointLatLng(x.Latitud, x.Longitud)).ToList(), Brushes.Red));
                foreach (var pos in v.Posiciones)
                {
                    if (pos.Latitud != 0 && pos.Longitud != 0)
                    {
                        this.mapa.Markers.Add(ControladorMapa.CrearPuntoPosicion(pos));
                    }
                }

                ControladorMapa.RefrescarVista(this.mapa);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(true);
        }
 private void ListaDeActividades_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         this.mapa.Markers.Clear();
         this.clientesActividadSeleccionMultiple.Clear();
         if (this.listaDeActividades.SelectedItem != null)
         {
             foreach (var act in listaDeActividades.SelectedItems)
             {
                 var actividad = act as Actividad;
                 this.SeleccionarActividad(actividad, false);
                 this.clientesActividadSeleccionMultiple.AddRange(actividad.Clientes);
             }
             if (ModoSeleccion == SelectionMode.Multiple)
             {
                 this.clientesUC.Clientes                = new ObservableCollection <Cliente>(clientesActividadSeleccionMultiple);
                 this.clientesUC.cantidadClientes        = this.clientesUC.Clientes.Count;
                 this.clientesUC.dgClientes.Items.Filter = null;
             }
         }
         ControladorMapa.RefrescarVista(this.mapa);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        public MapaPosicionesActuales()
        {
            InitializeComponent();
            this.DataContext    = this;
            this.servicioMobile = new ServiceSoapClient();
            this.Vendedores     = new ObservableCollection <Vendedor>();

            this.FechaDesde = DateTime.Today.AddHours(8);
            this.FechaHasta = DateTime.Today.AddDays(1);

            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.actualizadorDePosiciones          = new Timer(45000);
            this.actualizadorDePosiciones.Elapsed += actualizadorDePosiciones_Elapsed;
            this.actualizadorDePosiciones.Start();

            this.listaDeElementos.SelectionChanged += listaDeElementos_SelectionChanged;

            this.CmdVerClientesPorRuta   = new RelayCommand(e => this.VerClientesDelVendedor(e));
            this.CmdDibujarZona          = new RelayCommand(e => this.VerZonasDelVendedor(e));
            this.CmdVerCaminoPreventista = new RelayCommand(e => this.VerCaminoDelVendedor(e));
            //this.CmdVerificarPreventistaDentroDeZona = new RelayCommand(e => this.VerificarPreventistaDentroDeZona(e));
            this.CmdVerDomicilioVendedor = new RelayCommand(e => this.VerDomicilioVendedor(e));
        }
Пример #5
0
        private void MostrarMarcador(Fletero fletero, bool clear = false)
        {
            if (clear)
            {
                mapa.Markers.Clear();
            }

            var marcador = new GMapMarker(fletero.CoordenadaActual);
            Pin pin      = new PinAzul();

            pin.Tag      = fletero;
            pin.Etiqueta = fletero.Codigo;

            var menuItem = new MenuItem();

            menuItem.Header = fletero.Nombre;
            pin.Menu.Items.Add(menuItem);

            pin.Menu.UpdateLayout();

            //pin.MouseDoubleClick += pin_MouseDoubleClick;

            marcador.Shape  = pin;
            marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
            marcador.ZIndex = 4;
            this.mapa.Markers.Add(marcador);

            this.VerDomicilioVendedor(fletero);

            ControladorMapa.RefrescarVista(this.mapa);
        }
Пример #6
0
        private void VerClientes(List <Cliente> clientes)
        {
            foreach (var cli in clientes)
            {
                var marcador = new GMapMarker(cli.Coordenada.Value);

                var pin = ControladorMapa.CrearPinCliente(null, cli);

                marcador.Tag   = cli;
                marcador.Shape = pin;
                marcador.Shape.IsHitTestVisible = true;
                marcador.Offset = new Point(-pin.Width / 2, -pin.Height);

                if (this.ModoSeleccion == SelectionMode.Single)
                {
                    var menuMover = new MenuItem();
                    menuMover.Header           = "Ubicar manualmente en el mapa";
                    menuMover.Command          = this.CmdMoverUbicacionDeClienteManualmente;
                    menuMover.CommandParameter = marcador;
                    pin.Menu.Items.Add(menuMover);
                }

                pin.Menu.UpdateLayout();

                marcador.ZIndex = 3;

                this.mapa.Markers.Add(marcador);
            }
            ControladorMapa.RefrescarVista(this.mapa);
        }
Пример #7
0
        private void VerClientesDelVendedor(Vendedor vendedor)
        {
            if (vendedor.Posiciones.Count == 0)
            {
                ControladorVendedores.CargarPosiciones(vendedor, diaSeleccionado.Value, diaSeleccionado.Value.AddDays(1));
            }
            foreach (var zona in vendedor.Zonas)
            {
                foreach (var cli in zona.Clientes)
                {
                    var marcador = new GMapMarker(cli.Coordenada.Value);

                    var pin = ControladorMapa.CrearPinCliente(vendedor.Posiciones, cli);

                    pin.Menu.UpdateLayout();

                    marcador.Shape = pin;
                    marcador.Shape.IsHitTestVisible = true;
                    marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                    marcador.ZIndex = 3;

                    this.mapa.Markers.Add(marcador);
                }
            }
        }
Пример #8
0
 protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
 {
     if (e.Property == ModoVerClientesConRuteoProperty)
     {
         if (this.ModoSeleccion == SelectionMode.Single)
         {
             if (listaDeZonas.SelectedItem != null)
             {
                 this.ZonaSeleccionada = (Zona)listaDeZonas.SelectedItem;
                 this.SeleccionarZona(this.ZonaSeleccionada);
             }
             else
             {
                 this.mapa.Markers.Clear();
                 foreach (var zona in listaDeZonas.SelectedItems)
                 {
                     var zonaMapa = zona as Zona;
                     this.SeleccionarZona(zonaMapa, false); //ya hice el clear antes.
                 }
             }
         }
         ControladorMapa.RefrescarVista(this.mapa);
     }
     base.OnPropertyChanged(e);
 }
        private void btnConsultar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (this.query != string.Empty)
                {
                    this.listaClientes = new ObservableCollection <Cliente>(ControladorClientes.ProcesarConsulta(this.query));
                    var listaMarcadores = new List <GMapMarker>();
                    foreach (var cli in this.listaClientes)
                    {
                        var marcador = new GMapMarker(cli.Coordenada.Value);

                        var pin = ControladorMapa.CrearPinCliente(null, cli);

                        marcador.Shape = pin;
                        marcador.Shape.IsHitTestVisible = true;
                        marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                        marcador.ZIndex = 3;
                        listaMarcadores.Add(marcador);
                    }
                    this.mapa.ItemsSource = listaMarcadores;
                    ControladorMapa.RefrescarVista(this.mapa);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #10
0
        private object VerCaminoDelVendedor(object fleteroMapa)
        {
            if (fleteroMapa == null)
            {
                return(false);
            }
            try
            {
                var f = fleteroMapa as Fletero;
                f.VerTodasLasPosiciones = true;
                if (f.Posiciones.Count == 0)
                {
                    ControladorFleteros.CargarPosiciones(f, FechaDesde, FechaHasta);
                }
                this.mapa.Markers.Add(ControladorMapa.CrearRuta(f.Posiciones.Where(p => p.Latitud != 0 && p.Longitud != 0).Select(x => new PointLatLng(x.Latitud, x.Longitud)).ToList(), Brushes.Red));
                foreach (var pos in f.Posiciones)
                {
                    if (pos.Latitud != 0 && pos.Longitud != 0)
                    {
                        this.mapa.Markers.Add(ControladorMapa.CrearPuntoPosicion(pos));
                    }
                }

                ControladorMapa.RefrescarVista(this.mapa);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(true);
        }
 protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
 {
     if (e.Property == ModoVerClientesConRuteoProperty)
     {
         if (this.ModoSeleccion == SelectionMode.Single)
         {
             if (listaDeActividades.SelectedItem != null)
             {
                 this.ActividadSeleccionada = (Actividad)listaDeActividades.SelectedItem;
                 this.SeleccionarActividad(this.ActividadSeleccionada);
             }
         }
         else
         {
             this.mapa.Markers.Clear();
             this.clientesActividadSeleccionMultiple.Clear();
             foreach (var act in listaDeActividades.SelectedItems)
             {
                 var actividad = act as Actividad;
                 this.SeleccionarActividad(actividad, false); //ya hice el clear antes.
                 this.clientesActividadSeleccionMultiple.AddRange(actividad.Clientes);
             }
             this.clientesUC.Clientes                = new ObservableCollection <Cliente>(clientesActividadSeleccionMultiple);
             this.clientesUC.cantidadClientes        = this.clientesUC.Clientes.Count;
             this.clientesUC.dgClientes.Items.Filter = null;
         }
         ControladorMapa.RefrescarVista(this.mapa);
     }
     base.OnPropertyChanged(e);
 }
        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);
        }
Пример #13
0
 private void CargaClientesWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (e.Result != null)
     {
         var flet = (Fletero)e.Result;
         ControladorMapa.ImprimirClientesFletero(this.mapa, flet.Posiciones, flet.Clientes);
     }
 }
Пример #14
0
        private void MostrarMarcador(Fletero fleteroMapa, bool clear = false)
        {
            if (clear)
            {
                mapa.Markers.Clear();
            }

            var marcador = new GMapMarker(fleteroMapa.CoordenadaActual);
            Pin pin      = new PinAzul();

            pin.Tag      = fleteroMapa;
            pin.Etiqueta = fleteroMapa.Codigo;

            var menuItem = new MenuItem();

            menuItem.Header           = "Ver Clientes de la Ruta";
            menuItem.Command          = this.CmdVerClientesPorRuta;
            menuItem.CommandParameter = fleteroMapa;
            pin.Menu.Items.Add(menuItem);

            var menuMostrarCamino = new MenuItem();

            menuMostrarCamino.Header           = "Mostrar todos los reportes";
            menuMostrarCamino.Command          = this.CmdVerCaminoPreventista;
            menuMostrarCamino.CommandParameter = fleteroMapa;
            pin.Menu.Items.Add(menuMostrarCamino);

            var menuMostrarDomicilio = new MenuItem();

            menuMostrarDomicilio.Header           = "Mostrar domicilio del fletero";
            menuMostrarDomicilio.Command          = this.CmdVerDomicilioFletero;
            menuMostrarDomicilio.CommandParameter = fleteroMapa;
            pin.Menu.Items.Add(menuMostrarDomicilio);

            pin.Menu.UpdateLayout();

            //pin.MouseDoubleClick += pin_MouseDoubleClick;

            marcador.Shape  = pin;
            marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
            marcador.ZIndex = 4;
            this.mapa.Markers.Add(marcador);

            if (fleteroMapa.VerClientes)
            {
                this.VerClientesDelVendedor(fleteroMapa);
            }
            if (fleteroMapa.VerTodasLasPosiciones)
            {
                this.VerCaminoDelVendedor(fleteroMapa);
            }
            if (fleteroMapa.VerDomicilioDelFletero)
            {
                this.VerDomicilioFletero(fleteroMapa);
            }

            ControladorMapa.RefrescarVista(this.mapa);
        }
Пример #15
0
 private void VerCaminoDelVendedor(Vendedor v)
 {
     this.mapa.Markers.Add(ControladorMapa.CrearRuta(v.Posiciones.Where(p => p.Latitud != 0 && p.Longitud != 0).Select(x => new PointLatLng(x.Latitud, x.Longitud)).ToList(), Brushes.Red));
     foreach (var pos in v.Posiciones)
     {
         if (pos.Latitud != 0 && pos.Longitud != 0)
         {
             this.mapa.Markers.Add(ControladorMapa.CrearPuntoPosicion(pos));
         }
     }
 }
Пример #16
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));
     }
 }
Пример #17
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));
            }
        }
Пример #18
0
        private void MostrarMarcador(Vendedor vendedorMapa, bool clear = false)
        {
            if (clear)
            {
                mapa.Markers.Clear();
            }

            var marcador = new GMapMarker(vendedorMapa.CoordenadaActual);
            Pin pin;

            if (vendedorMapa.CodigoEmpresa == "10")
            {
                pin = new PinNaranja();
            }
            else
            {
                pin = new PinAzul();
            }
            pin.Tag      = vendedorMapa;
            pin.Etiqueta = vendedorMapa.Codigo;

            var menuItem = new MenuItem();

            menuItem.Header = vendedorMapa.Nombre;
            pin.Menu.Items.Add(menuItem);

            pin.Menu.UpdateLayout();

            //pin.MouseDoubleClick += pin_MouseDoubleClick;

            marcador.Shape  = pin;
            marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
            marcador.ZIndex = 4;
            this.mapa.Markers.Add(marcador);

            try
            {
                this.VerZonasDelVendedor(vendedorMapa);
                this.VerClientesDelVendedor(vendedorMapa);
                this.VerCaminoDelVendedor(vendedorMapa);
                this.VerDomicilioVendedor(vendedorMapa);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            ControladorMapa.RefrescarVista(this.mapa);
        }
        private object VerDomicilioVendedor(object vendedorMapa)
        {
            if (vendedorMapa == null)
            {
                return(false);
            }
            try
            {
                var v = vendedorMapa as Vendedor;
                v.VerDomicilioDelVendedor = true;

                if (v.Calle != string.Empty)
                {
                    var dirCasa        = v.Calle + " " + v.Numero + ", Mar del Plata";
                    var coordenadaCasa = ControladorMapa.ObtenerCordenadasPorDireccion(dirCasa);
                    if (coordenadaCasa.HasValue)
                    {
                        v.CoordenadaDomicilio = coordenadaCasa.Value;
                        ControladorVendedores.ActualizarCoordenadaDomicilio(v);
                    }
                }
                if (v.CoordenadaDomicilio.Lat != 0)
                {
                    var marcador = new GMapMarker(v.CoordenadaDomicilio);
                    var pin      = new PinCasa();
                    pin.Tag        = v;
                    pin.Etiqueta   = string.Empty;
                    marcador.Shape = pin;
                    marcador.Shape.IsHitTestVisible = true;
                    marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                    pin.ToolTip     = "Casa de " + v.Nombre;

                    var menuItem = new MenuItem();
                    menuItem.Header = v.Calle + " " + v.Numero;
                    pin.Menu.Items.Add(menuItem);

                    pin.Menu.UpdateLayout();

                    marcador.ZIndex = 3;
                    this.mapa.Markers.Add(marcador);
                }
                ControladorMapa.RefrescarVista(this.mapa);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(true);
        }
Пример #20
0
 private void cargaPosicionesFleteroWorker_Complete(object sender, RunWorkerCompletedEventArgs e)
 {
     if (e.Result != null)
     {
         var fletero             = (Fletero)e.Result;
         var cargaClientesWorker = new CargarClientesFleteroWorker(this.mapa, fletero, diaSeleccionado.Value);
         cargaClientesWorker.RunWorkerCompleted += CargaClientesWorker_RunWorkerCompleted;
         cargaClientesWorker.RunWorkerAsync();
         ControladorMapa.ImprimirCamino(this.mapa, fletero.Posiciones);
         var reporte = ReportMaker.CrearReporte(fletero);
         this.posicionesUC.FechaDelReporte = this.dtpFecha.SelectedDate.Value.ToString("dddd, dd MMMM yyyy");
         this.posicionesUC.Posiciones      = new ObservableCollection <ItemReporte>(reporte);
         this.posicionesUC.NombreVendedor  = fletero.Nombre;
         this.posicionesUC.CodigoVendedor  = fletero.Codigo;
         this.VisibilidadColumnaClientes   = GridLength.Auto;
     }
 }
Пример #21
0
        private void dgPosiciones_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (sender != null)
            {
                var dg       = (DataGrid)sender;
                var posicion = (ItemReporte)dg.SelectedItem;
                if (posicion != null)
                {
                    var vendedor   = this.Vendedores.FirstOrDefault(x => x.Codigo == posicion.CodigoVendedor);
                    var posiciones = vendedor.Posiciones.Where(x => x.Fecha >= posicion.CheckIn && x.Fecha <= posicion.CheckOut).Select(p => new PointLatLng(p.Latitud, p.Longitud)).ToList();

                    this.mapa.Markers.Clear();

                    this.mapa.Markers.Add(ControladorMapa.CrearRuta(posiciones, Brushes.Green));
                    foreach (var punto in posiciones)
                    {
                        this.mapa.Markers.Add(ControladorMapa.CrearPuntoPosicion(punto, Brushes.PaleVioletRed));
                    }

                    if (posicion.Cliente != "VIAJE") //muestro el pin del cliente
                    {
                        foreach (var zona in vendedor.Zonas)
                        {
                            var cli = zona.Clientes.FirstOrDefault(c => c.Codigo == posicion.Cliente);
                            if (cli != null)
                            {
                                var marcador = new GMapMarker(cli.Coordenada.Value);

                                var pin = ControladorMapa.CrearPinCliente(null, cli);

                                marcador.Shape = pin;
                                marcador.Shape.IsHitTestVisible = true;
                                marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                                marcador.ZIndex = 3;

                                this.mapa.Markers.Add(marcador);
                                break;
                            }
                        }
                    }
                    ControladorMapa.RefrescarVista(this.mapa);
                }
            }
        }
        private object VerClientesDelVendedor(object vendedorMapa)
        {
            if (vendedorMapa == null)
            {
                return(false);
            }
            try
            {
                var v = vendedorMapa as Vendedor;
                v.VerClientes = true;

                //if (v.CantidadClientes == 0)

                ControladorVendedores.CargarClientes(v, DateTime.Today, this.ModoVerClientesConRuteo);
                if (v.Posiciones.Count == 0)
                {
                    ControladorVendedores.CargarPosiciones(v, FechaDesde, FechaHasta);
                }
                foreach (var zona in v.Zonas)
                {
                    foreach (var cli in zona.Clientes)
                    {
                        var marcador = new GMapMarker(cli.Coordenada.Value);

                        var pin = ControladorMapa.CrearPinCliente(v.Posiciones, cli);

                        marcador.Shape = pin;
                        marcador.Shape.IsHitTestVisible = true;
                        marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                        marcador.ZIndex = 3;

                        this.mapa.Markers.Add(marcador);
                    }
                }
                ControladorMapa.RefrescarVista(this.mapa);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(true);
        }
Пример #23
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;
        }
Пример #24
0
 private void listaDeZonas_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     this.clienteAMover = null;
     try
     {
         this.mapa.Markers.Clear();
         if (this.listaDeZonas.SelectedItem != null)
         {
             foreach (var zona in listaDeZonas.SelectedItems)
             {
                 var zonaMapa = zona as Zona;
                 this.SeleccionarZona(zonaMapa, false);
             }
         }
         ControladorMapa.RefrescarVista(this.mapa);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Пример #25
0
 private object MoverUbicacionDeClienteManualmente(object cliente)
 {
     if (cliente == null)
     {
         return(false);
     }
     try
     {
         var cli = cliente as GMapMarker;
         this.mapa.Markers.Clear();
         this.DibujarZona(this.ZonaSeleccionada);
         this.mapa.Markers.Add(cli);
         this.clientesUC.dgClientes.Items.Filter = c => c == cli.Tag;
         this.clienteAMover = cli;
         ControladorMapa.RefrescarVista(this.mapa);
         MessageBox.Show("Muévase por el mapa y haga clic derecho sobre la nueva ubicación de este cliente.", "Preparándose para mover el cliente");
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     return(true);
 }
Пример #26
0
        public HistorialPosicionesLogistica()
        {
            InitializeComponent();
            this.DataContext = this;

            this.Fleteros       = new ObservableCollection <Fletero>();
            this.fleterosDelDia = new List <Fletero>();

            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.listaDeElementos.SelectionChanged += ListaDeElementos_SelectionChanged;

            this.posicionesUC.dgPosiciones.SelectionChanged += dgPosiciones_SelectionChanged;
        }
Пример #27
0
        private object VerClientesDelVendedor(object fleteroMapa)
        {
            if (fleteroMapa == null)
            {
                return(false);
            }
            try
            {
                var f = fleteroMapa as Fletero;
                f.VerClientes = true;

                if (f.Clientes.Count == 0)
                {
                    ControladorFleteros.CargarClientesDelFletero(f, DateTime.Today);
                }
                ControladorFleteros.CargarPosiciones(f, FechaDesde, FechaHasta);
                foreach (var cli in f.Clientes)
                {
                    var marcador = new GMapMarker(cli.Coordenada.Value);

                    var pin = ControladorMapa.CrearPinClienteFletero(f.Posiciones, cli);

                    marcador.Shape = pin;
                    marcador.Shape.IsHitTestVisible = true;
                    marcador.Offset = new Point(-pin.Width / 2, -pin.Height);
                    marcador.ZIndex = 3;

                    this.mapa.Markers.Add(marcador);
                }
                ControladorMapa.RefrescarVista(this.mapa);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(true);
        }
Пример #28
0
        public HistorialPosiciones()
        {
            InitializeComponent();
            this.DataContext = this;

            this.Vendedores = new ObservableCollection <Vendedor>();

            this.servicioMobile = new ServiceSoapClient();

            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.listaDeElementos.SelectionChanged += ListaDeElementos_SelectionChanged;

            this.posicionesUC.dgPosiciones.SelectionChanged += dgPosiciones_SelectionChanged;
        }
        private void btnIniciar_Click(object sender, RoutedEventArgs e)
        {
            var listaClientesAGeocodificar = ControladorClientes.ObtenerDatosClientes(ListaCodigosClientes.Select(c => c.Codigo).ToList());

            var zonaPermitida = new List <PointLatLng>()
            {
                new PointLatLng(-34.96310051817297, -62.93113791346571),
                new PointLatLng(-39.21053969290316, -62.86854934781773),
                new PointLatLng(-39.20053350467479, -60.82838446585139),
                new PointLatLng(-38.56329249427377, -57.80857023916692),
                new PointLatLng(-37.03687315700143, -56.44361058840956),
                new PointLatLng(-35.77347775463433, -56.59223411350986),
                new PointLatLng(-34.97521287216069, -57.12762013249957),
                new PointLatLng(-34.96310051817297, -62.93113791346571)
            };

            var msje = "Total de clientes obtenidos: " + listaClientesAGeocodificar.Count + "\n";

            MessageBox.Show(msje);
            var sb = new StringBuilder(msje);

            try
            {
                foreach (var cli in listaClientesAGeocodificar)
                {
                    var dirpluslocalidad = cli.Calle + " " + cli.Numero + ", " + cli.Localidad;
                    sb.AppendLine("CLIENTE: " + cli.Codigo);
                    sb.AppendLine("Intentando traducir: " + dirpluslocalidad);
                    //cli.Coordenada = GoogleMapsGeocoder.ObtenerCordenadasPorDireccion(dirpluslocalidad, out status);
                    cli.Coordenada = ControladorMapa.ObtenerCordenadasPorDireccion(dirpluslocalidad);
                    if (cli.Coordenada.HasValue)
                    {
                        sb.AppendLine("COORDENADA OBTENIDA - " + cli.Coordenada.ToString());
                        if (ControladorMapa.DentroDeZona(zonaPermitida, cli.Coordenada.Value.Lat, cli.Coordenada.Value.Lng))
                        {
                            var ok = ControladorClientes.ActualizarLatLngCliente(cli.Codigo, cli.Coordenada.Value, cli.Calle, int.Parse(cli.Numero));
                            sb.AppendLine("Actualizando la dirección traducida: " + ok.ToString());
                            if (ok)
                            {
                                clientesActualizados.Add(cli.Codigo + " OK!\n");
                            }
                            else
                            {
                                clientesActualizados.Add(cli.Codigo + " NOPE!! Error\n");
                            }
                        }
                        else
                        {
                            sb.AppendLine("Coordenada fuera de límite");
                            //throw new GeocoderException(new Exception("\nSe detuvo el proceso de geolocación a la altura del cliente " + cli.Codigo), cli.Codigo);
                        }
                        sb.AppendLine();
                    }
                    else
                    {
                        //throw new GeocoderException(new Exception("\nSe detuvo el proceso de geolocación a la altura del cliente " + cli.Codigo), cli.Codigo);
                    }
                }
                System.IO.File.WriteAllText(@"d:\FIN " + DateTime.Now.ToString("yyyy'-'MM'-'dd'- 'HH mm") + ".txt", sb.ToString());
            }
            //catch (GeocoderException geoEx)
            //{
            //    //var msje3 = "Se detuvo el proceso de geolocación a la altura del cliente " + geoEx.codigoCliente;
            //    sb.AppendLine(geoEx.Message);
            //    this.txtCodigo.Text = geoEx.codigoCliente;
            //    MessageBox.Show(geoEx.Message);
            //    System.IO.File.WriteAllText(@"d:\Excepcion " + DateTime.Now.ToString("yyyy'-'MM'-'dd'- 'HH mm") + ".txt", sb.ToString());
            //}
            catch (Exception ex)
            {
                System.IO.File.WriteAllText(@"d:\Excepcion " + DateTime.Now.ToString("yyyy'-'MM'-'dd'- 'HH mm") + ".txt", sb.ToString());
                MessageBox.Show(ex.Message);
            }
        }
        private void btnIniciar_Click(object sender, RoutedEventArgs e)
        {
            var codigoInicial = this.txtCodigo.Text;
            var listaClientesAGeocodificar = ControladorClientes.ObtenerClientes(codigoInicial);
            var msje = "Total de clientes obtenidos: " + listaClientesAGeocodificar.Count + "\n";

            MessageBox.Show(msje);
            var sb = new StringBuilder(msje);

            try
            {
                foreach (var cli in listaClientesAGeocodificar)
                {
                    GeoCoderStatusCode status;

                    var dirpluslocalidad = cli.Calle + " " + cli.Numero + ", " + cli.Localidad;
                    sb.AppendLine("CLIENTE: " + cli.Codigo + "\n");
                    sb.AppendLine("Intentando traducir: " + dirpluslocalidad + "\n");
                    //cli.Coordenada = GoogleMapsGeocoder.ObtenerCordenadasPorDireccion(dirpluslocalidad, out status);
                    cli.Coordenada = ControladorMapa.ObtenerCordenadasPorDireccion(dirpluslocalidad);
                    if (cli.Coordenada.HasValue)
                    {
                        sb.AppendLine("COORDENADA OBTENIDA - " + cli.Coordenada.ToString() + "\n");
                        if (cli.Coordenada.Value.Lat < 0 && cli.Coordenada.Value.Lng < 0)
                        {
                            var ok = ControladorClientes.ActualizarLatLngCliente(cli.Codigo, cli.Coordenada.Value, cli.Calle, int.Parse(cli.Numero));
                            sb.AppendLine("Actualizando la dirección traducida: " + ok.ToString() + "\n");
                            if (ok)
                            {
                                clientesactualizados.Add(cli.Codigo + " OK!\n\n");
                            }
                            else
                            {
                                clientesactualizados.Add(cli.Codigo + " NOPE!! Error\n\n");
                            }
                        }
                        else
                        {
                            //throw new GeocoderException(new Exception("\nSe detuvo el proceso de geolocación a la altura del cliente " + cli.Codigo), cli.Codigo);
                        }
                    }
                    else
                    {
                        //throw new GeocoderException(new Exception("\nSe detuvo el proceso de geolocación a la altura del cliente " + cli.Codigo), cli.Codigo);
                    }
                }
                System.IO.File.WriteAllText(@"d:\FIN " + DateTime.Now.ToString("yyyy'-'MM'-'dd'- 'HH mm") + ".txt", sb.ToString());
            }
            catch (GeocoderException geoEx)
            {
                //var msje3 = "Se detuvo el proceso de geolocación a la altura del cliente " + geoEx.codigoCliente;
                sb.AppendLine(geoEx.Message);
                this.txtCodigo.Text = geoEx.codigoCliente;
                MessageBox.Show(geoEx.Message);
                System.IO.File.WriteAllText(@"d:\Excepcion " + DateTime.Now.ToString("yyyy'-'MM'-'dd'- 'HH mm") + ".txt", sb.ToString());
            }
            catch (Exception ex)
            {
                System.IO.File.WriteAllText(@"d:\Excepcion " + DateTime.Now.ToString("yyyy'-'MM'-'dd'- 'HH mm") + ".txt", sb.ToString());
                MessageBox.Show(ex.Message);
            }
        }