Ejemplo n.º 1
0
        private void ActualizaAsistenciaVendedores()
        {
            try
            {
                var    todosLosVendedores  = ControladorVendedores.ObtenerCodigosVendedores(null);
                var    vendedoresPresentes = ControladorVendedores.ObtenerVendedoresPorFecha(DateTime.Today);
                int    cantidadVendedores  = vendedoresPresentes.Count;
                int    i        = 0;
                double progreso = 0;

                foreach (var item in todosLosVendedores)
                {
                    i++;
                    Vendedor vend = null;
                    if (vendedoresPresentes.Any(v => v.Codigo == item))
                    {
                        vend          = vendedoresPresentes.Find(v => v.Codigo == item);
                        vend.Presente = true;
                    }
                    else
                    {
                        vend          = ControladorVendedores.ObtenerVendedor(item);
                        vend.Presente = false;
                    }
                    Thread.Sleep(rnd.Next(125, 1000));
                    progreso = Math.Ceiling((double)(i * 100) / cantidadVendedores);
                    bgWorker.ReportProgress(Convert.ToInt32(progreso), vend);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 2
0
        private void mnuAsistenciasAlta_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var presentesAlta           = new List <Tuple <string, string, string> >(); //codigo, nombre, zona
                var empresa                 = "10";
                var todosLosVendedoresAlta  = ControladorVendedores.ObtenerCodigosVendedores(empresa);
                var vendedoresPresentesAlta = ControladorVendedores.ObtenerVendedoresPorFecha(empresa, DateTime.Today);

                var ausentesAlta = new List <Tuple <string, string> >();
                foreach (var item in todosLosVendedoresAlta)
                {
                    if (vendedoresPresentesAlta.Any(v => v.Codigo == item))
                    {
                        var vend = vendedoresPresentesAlta.Find(v => v.Codigo == item);
                        presentesAlta.Add(new Tuple <string, string, string>(vend.Codigo, vend.Nombre, vend.ZonasClienteParaGrilla));
                    }
                    else
                    {
                        var vend = ControladorVendedores.ObtenerVendedor(item);
                        if (vend != null)
                        {
                            ausentesAlta.Add(new Tuple <string, string>(vend.Codigo, vend.Nombre));
                        }
                    }
                }

                this.CrearInformeAsistencias(presentesAlta, ausentesAlta, "ALTA DISTRIBUCION SA");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 3
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);
                }
            }
        }
        void ObtenerPosiciones()
        {
            this.actualizadorDePosiciones.Stop();
            App.Current.Dispatcher.Invoke((Action) delegate
            {
                try
                {
                    //var dt = servicioMobile.ObtenerPosicionActualPreventistas();
                    var vendedores = ControladorVendedores.ObtenerUltimaPosicionVendedores();
                    //foreach (DataRow item in dt.AsEnumerable().Where(p => p.Field<string>("usuario") != ""))
                    //{
                    //    Func<object, dynamic, object> nonull = (p, def) => p == null ? def : p;
                    //    var elemento = new Vendedor()
                    //    {
                    //        Codigo = item.Field<string>("usuario"),
                    //        Estado = (Estado)nonull(item.Field<object>("estado"), Estado.OK),
                    //        CodigoEmpresa = item.Field<string>("empresa"),
                    //        Fecha = item.Field<object>("fecha").ToString(),
                    //        CoordenadaActual = new PointLatLng(
                    //                               double.Parse(item.Field<object>("latitud").ToString()),
                    //                               double.Parse(item.Field<object>("longitud").ToString())),
                    //        //Visitados = (int)nonull(item.Field<object>("visitados"), 0),
                    //        //Compradores = (int)nonull(item.Field<object>("compradores"), 0),
                    //        FondoDeCelda = item.Field<string>("empresa") == "10" ? @"S:\GEOVENTAS\alta.jpg" : @"S:\GEOVENTAS\hiller.jpg"
                    //    };

                    //    if (elemento.Codigo != null)
                    foreach (var elemento in vendedores)
                    {
                        this.AgregarActualizarVendedor(elemento);
                    }


                    switch (this.modo)
                    {
                    case ModoVerMarcadores.Nada:
                        break;

                    case ModoVerMarcadores.Todo:
                        this.MostrarTodo();
                        break;

                    case ModoVerMarcadores.Seleccionado:
                        this.MostrarMarcador(this.listaDeElementos.SelectedItem as Vendedor, true);
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message);
                }
            });
            this.actualizadorDePosiciones.Start();
        }
        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);
            }
        }
        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);
        }
Ejemplo n.º 7
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);
 }
        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);
        }
Ejemplo n.º 9
0
        private void AgregarVendedor(Vendedor vendedorMapa)
        {
            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.CoordenadaDomicilio = new PointLatLng(prev.CoordenadaDomicilio.Lat, prev.CoordenadaDomicilio.Lng);
                }

                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);
            }
        }