private void Ejecutar() { // ¡¡¡ OJO !!! ESTO HAY QUE BORRARLO, ES SOLO PARA HACER PRUEBAS candidatos = candidatos.Where(c => c.Id != 636999).ToList(); candidatos = candidatos.Where(c => c.Id != 637014).ToList(); List<StockProducto> stocks; List<LineaPedidoPicking> todasLasLineas; DateTime fechaPicking = DateTime.Today; stocks = modulos.rellenadorStocks.Rellenar(candidatos); todasLasLineas = modulos.rellenadorPicking.RellenarTodasLasLineas(candidatos); GestorReservasStock.Reservar(stocks, candidatos, todasLasLineas); GestorReservasStock.BorrarLineasEntregaFutura(candidatos, fechaPicking); // Recorrer Candidatos (quitamos los que no tienen que salir) for (int i = 0; i < candidatos.Count(); i++) { PedidoPicking pedido = candidatos[i]; GestorStocks gestorStocks = new GestorStocks(pedido); if (!pedido.saleEnPicking() || pedido.Lineas.Count == 0 || !gestorStocks.HayStockDeAlgo()) { pedido.Borrar = true; } else { if (pedido.hayQueSumarPortes()) { GeneradorPortes generadorPortes = new GeneradorPortes(db, pedido); generadorPortes.Ejecutar(); }; } } candidatos.RemoveAll(c => c.Borrar); // Actualizar Pendientes GeneradorPendientes generadorPendientes = new GeneradorPendientes(db, candidatos); generadorPendientes.Ejecutar(); // Asignar Picking AsignadorPicking asignadorPicking = new AsignadorPicking(db, candidatos); asignadorPicking.Ejecutar(); // Finalizar Picking modulos.finalizador.Ejecutar(db); }
public void GestorStock_HayStockDeAlgo_siUnProductoTieneStockDevuelveTrue() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.PRODUCTO, Producto = "A", Cantidad = 7, BaseImponible = 100, CantidadReservada = 1, FechaEntrega = new DateTime() }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = false, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); GestorStocks gestor = new GestorStocks(pedido); Assert.IsTrue(gestor.HayStockDeAlgo()); }