//Ordena los clientes de una caja private void OrdernarCaja(int NumeroCaja) { _db = new LineaSupermercadoContext(); List <CajaCliente> clientes = _db.Cajas.Include("Clientes").First(x => x.ID == NumeroCaja).Clientes.Where(x => x.Estado == 0).OrderBy(x => x.Orden).ToList(); foreach (CajaCliente cajaCli in clientes) { cajaCli.Orden = cajaCli.Orden - 1; _db.Entry(cajaCli).State = EntityState.Modified; _db.SaveChanges(); } }
//Desplaza clientes desde una caja hacia otra private void DesplazarClientes(int NumeroCajaAnt, int NumeroCajaNueva) { _db = new LineaSupermercadoContext(); List <CajaCliente> clientes = _db.Cajas.Include("Clientes").First(x => x.ID == NumeroCajaAnt).Clientes.Where(x => x.Estado == 0).OrderBy(x => x.Orden).ToList(); if (clientes.Count() > 0) { foreach (CajaCliente cajaCli in clientes) { cajaCli.IDCaja = NumeroCajaNueva; cajaCli.Orden = _db.CajaCliente.Where(x => x.IDCaja == cajaCli.IDCaja).Select(x => x.Orden).DefaultIfEmpty(0).Max() + 1; _db.Entry <CajaCliente>(cajaCli).State = EntityState.Modified; _db.SaveChanges(); } } }
//Atiendo a un cliente private void btnAtenderCliente_Click(object sender, RoutedEventArgs e) { _db = new LineaSupermercadoContext(); Caja c = (Caja)((Button)e.Source).DataContext; Caja caja = _db.Cajas.Where(x => x.ID == c.ID).Include("Clientes").First(); CajaCliente clienteAtendido = caja.Clientes.Where(x => x.Estado == 0).OrderBy(x => x.Orden).First(); clienteAtendido.Estado = 1; _db.Entry(clienteAtendido).State = EntityState.Modified; _db.SaveChanges(); Cliente cliente = _db.Clientes.Find(clienteAtendido.IDCliente); MessageBox.Show("Atendiendo al cliente: " + cliente.Nombre); //Ordeno nuevamente el conjunto de clientes OrdernarCaja(caja.ID); //Actualizo cajas RefreshDatagrid(); }