public void GestorReservasStock_Reservar_siEsCuentaContableLaAsignaEntera() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE, Producto = "624HOLA", Cantidad = 6, BaseImponible = 100, CantidadReservada = 0, FechaEntrega = new DateTime() }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = false, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); // Esto lo rellenaría en ejecución el servicio RellenadorPickingService List<PedidoPicking> candidatos = new List<PedidoPicking>(); candidatos.Add(pedido); // Esto lo rellenaría en ejecución el servicio RellenadorStocksService StockProducto stock = new StockProducto { Producto = "A", StockDisponible = 1 }; List<StockProducto> stocks = new List<StockProducto>(); stocks.Add(stock); List<LineaPedidoPicking> lineas = candidatos.Where(c => !c.EsNotaEntrega).SelectMany(l => l.Lineas).OrderBy(l => l.Id).ToList(); GestorReservasStock.Reservar(stocks, candidatos, lineas); Assert.AreEqual(6, linea.CantidadReservada); }
public void GestorReservasStock_Reservar_siHayUnPedidoQueEsNotaEntregaNoReservaNada() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.PRODUCTO, Producto = "A", Cantidad = 16, BaseImponible = 100, CantidadReservada = 0, FechaEntrega = new DateTime() }; LineaPedidoPicking linea2 = new LineaPedidoPicking { Id = 2, TipoLinea = Constantes.TiposLineaVenta.PRODUCTO, Producto = "A", Cantidad = 7, BaseImponible = 100, CantidadReservada = 0, FechaEntrega = new DateTime() }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = true, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); PedidoPicking pedido2 = new PedidoPicking { Id = 2, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = false, Lineas = new List<LineaPedidoPicking>() }; pedido2.Lineas.Add(linea2); // Esto lo rellenaría en ejecución el servicio RellenadorPickingService List<PedidoPicking> candidatos = new List<PedidoPicking>(); candidatos.Add(pedido); candidatos.Add(pedido2); // Esto lo rellenaría en ejecución el servicio RellenadorStocksService StockProducto stock = new StockProducto { Producto = "A", StockDisponible = 20 }; List<StockProducto> stocks = new List<StockProducto>(); stocks.Add(stock); List<LineaPedidoPicking> lineas = candidatos.Where(c => !c.EsNotaEntrega).SelectMany(l => l.Lineas).OrderBy(l => l.Id).ToList(); GestorReservasStock.Reservar(stocks, candidatos, lineas); Assert.AreEqual(0, linea.CantidadReservada); Assert.AreEqual(7, linea2.CantidadReservada); }