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