private void SeleccionarMarcador(Elemento item) { if (!item.CargadoPorCompleto) { ControladorVendedores.CargarZonas(item, diaSeleccionado.Value); ControladorVendedores.CargarClientes(item, diaSeleccionado.Value); } this.CargarPosiciones(item); MostrarMarcador(item, true); map.Position = item.CoordenadaActual; var reporte = this.CreadorDeReportes.CrearReporte(item); this.reportes.FechaDelReporte = this.dtpFecha.SelectedDate.Value.ToString("dddd, dd MMMM yyyy"); this.reportes.Posiciones = new ObservableCollection <ItemReporte>(reporte); this.reportes.NombreVendedor = item.Nombre; this.reportes.CodigoVendedor = item.Codigo; //if (this.VentanaReporte.IsInitialized) //{ // this.VentanaReporte.Close(); // this.VentanaReporte = new Reporte(); //} //this.VentanaReporte.Posiciones = new ObservableCollection<ItemReporte>(reporte); //this.VentanaReporte.CodigoVendedor = item.Codigo; //this.VentanaReporte.NombreVendedor = item.Nombre; //this.VentanaReporte.FechaDelReporte = this.dtpFecha.SelectedDate.Value.ToString("dddd, dd MMMM yyyy"); //this.VentanaReporte.Owner = this; //this.VentanaReporte.Show(); }
public static void CalcularBultosYPesos(Elemento vendedor, DateTime fechaDesde, DateTime fechaHasta) { if (vendedor.Posiciones.Count == 0) { ControladorVendedores.CargarPosiciones(vendedor, fechaDesde, fechaHasta); } var listaDeClientesVisitados = vendedor.Posiciones.Where(p => p.Cliente != "" && p.Estado == Estado.CHECKOUT_CLIENTE).ToList(); //tomo todos los checkouts donde tengo almacenados los pesos y los bultos var listaCodigosRevisados = new List <string>(); //almaceno aqui los codigos de los clientes que voy revisando. ocurre que hay veces que se registran mas de una vez el mismo cliente, con cantidades distintas de pesos y bultos. debo tomar siempre el último registro de estos. var listaFinalCheckouts = new List <Posicion>(); foreach (var item in listaDeClientesVisitados) { var cliente = item.Cliente; if (!listaCodigosRevisados.Contains(cliente)) //verifico que no haya analizado a este cliente aun { listaCodigosRevisados.Add(cliente); //procedo a agregarlo para saltear la proxima ocurrencia en la lista var todosLosRegistrosDeEsteCliente = listaDeClientesVisitados.Where(p => p.Cliente == cliente && p.BultosCompra != null && p.PesosCompra != null).ToList(); listaFinalCheckouts.Add(todosLosRegistrosDeEsteCliente.OrderByDescending(t => t.Fecha).FirstOrDefault()); } //listaDeClientesVisitados.RemoveAll(p => p.Cliente == cliente); } vendedor.Pesos = listaFinalCheckouts.Sum(p => p.PesosCompra); vendedor.Bultos = listaFinalCheckouts.Sum(p => p.BultosCompra); }
private void CargarPosiciones(Elemento vendedor) { vendedor.Posiciones.Clear(); var fechaDesde = diaSeleccionado.Value.AddHours(8); var fechaHasta = diaSeleccionado.Value.AddDays(1); try { ControladorVendedores.CargarPosiciones(vendedor, fechaDesde, fechaHasta); } catch (Exception exc) { } }