public void GestorImportesMinimos_LosProductosSobrePedidoLleganAlImporteMinimo_siEsDeTiendaOnlineMiraOtroImporteMinimo() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 7, BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO_TIENDA_ONLINE + 1, CantidadReservada = 7, FechaEntrega = new DateTime(), EsSobrePedido = true }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, EsTiendaOnline = true, EsNotaEntrega = false, ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_MINIMO_TIENDA_ONLINE + 1, ImporteOriginalSobrePedido = 0, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); GestorImportesMinimos gestor = new GestorImportesMinimos(pedido); Assert.IsTrue(gestor.LosProductosSobrePedidoLleganAlImporteMinimo()); }
public void GestorReservasStock_BorrarLineasEntregaFutura_despuesDeEjecutarloLasLineasFuturasNoEstan() { LineaPedidoPicking lineaParaEntregaInmediata = new LineaPedidoPicking { Id = 2, Producto = "A", Cantidad = 16, BaseImponible = 100, CantidadReservada = 0, FechaEntrega = new DateTime() }; LineaPedidoPicking lineaParaEntregaFutura = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 7, BaseImponible = 100, CantidadReservada = 0, FechaEntrega = new DateTime().AddDays(7) }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = false, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(lineaParaEntregaInmediata); PedidoPicking pedido2 = new PedidoPicking { Id = 2, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = false, Lineas = new List<LineaPedidoPicking>() }; pedido2.Lineas.Add(lineaParaEntregaFutura); // Esto lo rellenaría en ejecución el servicio RellenadorPickingService List<PedidoPicking> candidatos = new List<PedidoPicking>(); candidatos.Add(pedido); candidatos.Add(pedido2); GestorReservasStock.BorrarLineasEntregaFutura(candidatos, new DateTime().AddDays(1)); Assert.AreEqual(1, pedido.Lineas.Count); Assert.AreEqual(0, pedido2.Lineas.Count); }
public void PedidoPicking_hayQueSumarPortes_siHayProductosQueNoSonSobrePedidoYElOriginalLlegabaAlMinimoNoSeSumanPortes() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 6, CantidadReservada = 6, EsSobrePedido = false }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_MINIMO + 1, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); Assert.IsFalse(pedido.hayQueSumarPortes()); }
public void GestorStocks_HayDeTodo_siTieneDosProductosYUnoNoTieneStockDevuelveFalse() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.PRODUCTO, Producto = "A", Cantidad = 7, BaseImponible = 100, CantidadReservada = 7, FechaEntrega = new DateTime() }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = false, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); LineaPedidoPicking linea2 = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.PRODUCTO, Producto = "B", Cantidad = 7, BaseImponible = 100, CantidadReservada = 6, FechaEntrega = new DateTime() }; pedido.Lineas.Add(linea2); GestorStocks gestor = new GestorStocks(pedido); Assert.IsFalse(gestor.HayStockDeTodo()); }
public void GestorStocks_HayDeTodo_siSoloTieneUnProductoYTieneStockDevuelveTrue() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 7, BaseImponible = 100, CantidadReservada = 7, 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.HayStockDeTodo()); }
public void PedidoPicking_saleEnPicking_siNoHayNingunaLineaNoSale() { PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = true, Lineas = new List<LineaPedidoPicking>() }; Assert.IsFalse(pedido.saleEnPicking()); }
public void PedidoPicking_saleEnPicking_siNoHayDeTodoYEsServirJuntoNoSale() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.PRODUCTO, Producto = "A", Cantidad = 6, CantidadReservada = 5 }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = true, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); Assert.IsFalse(pedido.saleEnPicking()); }
public void PedidoPicking_hayQueSumarPortes_siYaTienePortesNoHayQueSumarlosDeNuevo() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE, Producto = "62400003", Cantidad = 6, CantidadReservada = 0, BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO - 1, EsSobrePedido = true }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_MINIMO - 1, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); Assert.IsFalse(pedido.hayQueSumarPortes()); }
public void PedidoPicking_Constructor_CrearUnObjeto() { PedidoPicking pedidoPicking = new PedidoPicking(); Assert.IsNotNull(pedidoPicking); }
public void GestorStock_HayDeTodo_siHayUnaLineaDeCuentaContableTieneQuePonerQueTieneStock() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE, Producto = "A", Cantidad = 7, 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); GestorStocks gestor = new GestorStocks(pedido); Assert.IsTrue(gestor.HayStockDeTodo()); }
public GeneradorPortes(NVEntities db, PedidoPicking pedido) { this.db = db; this.pedido = pedido; }
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); }
public void GestorImportesMinimos_LosProductosSobrePedidoLleganAlImporteMinimo_siHayLineasSobrePedidoQueSuperanElMinimoDevuelveTrue() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 7, BaseImponible = 2500, CantidadReservada = 7, FechaEntrega = new DateTime(), EsSobrePedido = true }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, EsTiendaOnline = false, EsNotaEntrega = false, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); GestorImportesMinimos gestor = new GestorImportesMinimos(pedido); Assert.IsTrue(gestor.LosProductosSobrePedidoLleganAlImporteMinimo()); }
public void PedidoPicking_hayQueSumarPortes_siNoHayStockDeNadaNoHayQueSumarPortes() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 6, CantidadReservada = 0, BaseImponible = 0 }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_SIN_PORTES + 1, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); Assert.IsFalse(pedido.hayQueSumarPortes()); }
public GestorStocks(PedidoPicking pedido) { this.pedido = pedido; }
public void PedidoPicking_hayQueSumarPortes_siTodosLosProductosSonSobrePedidoYLleganAlImporteMinimoNoSeSumanPortes() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 6, CantidadReservada = 6, BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO + 1, EsSobrePedido = true }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); Assert.IsFalse(pedido.hayQueSumarPortes()); }
public void PedidoPicking_hayQueSumarPortes_siTodosLosProductosSonSobrePedidoYNoLleganAlImporteMinimoPeroElOriginalSiLlegabaAlImporteExentoDePortesNoSeSumanPortes() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", TipoLinea = Constantes.TiposLineaVenta.PRODUCTO, Cantidad = 6, CantidadReservada = 6, BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO - 1, EsSobrePedido = true }; PedidoPicking pedido = new PedidoPicking { Id = 1, ServirJunto = false, ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_SIN_PORTES + 1, Lineas = new List<LineaPedidoPicking>() }; pedido.Lineas.Add(linea); Assert.IsTrue(pedido.hayQueSumarPortes()); }
public GestorImportesMinimos(PedidoPicking pedido) { this.pedido = pedido; this.importeMinimo = pedido.EsTiendaOnline ? IMPORTE_MINIMO_TIENDA_ONLINE : IMPORTE_MINIMO; }
public void GestorStocks_TodoLoQueTieneStockEsSobrePedido_siHayUnProductoQueNoEsSobrePedidoConStockDevuelveFalse() { LineaPedidoPicking linea = new LineaPedidoPicking { Id = 1, Producto = "A", Cantidad = 7, BaseImponible = 100, CantidadReservada = 7, FechaEntrega = new DateTime(), EsSobrePedido = false }; 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.IsFalse(gestor.TodoLoQueTieneStockEsSobrePedido()); }