Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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)
            {
            }
        }