Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Forsøker å plassere en ordre i den vanlige ordrekøen. Dersom nettbutikken
- * har nok på lager av produktet i alle ordrelinjene, plasseres ordren i
- * denne køen og lagerstatusen for alle de bestilte produkter oppdateres.
- * Dersom en eller flere ordrelinjer har produkter som må bestilles fra
- * leverandør legges ordren i vente-køen og det opprettes en bakordre med
- * alle ordrelinjene som må bestilles fra leverandør
- *
- * @param order ordren som en kunde kjøper
- */
- public void placeOrder(Order order) {
- System.out.println("Placing order with order no.: " + order.getOrderNo() + "...");
- BackOrder backOrder = null;
- OrderLine line = null;
- for (int i = 0; i < order.getNoOrderLines(); i++) {
- line = order.getOrderLine(i);
- if (!line.productAvailable()) {
- if (backOrder == null) {
- backOrder = new BackOrder(this);
- }
- backOrder.addBackOrderLine(line);
- System.out.println("Back order placed");
- }
- }
- if (backOrder != null) {
- backOrdersQueue.add(backOrder);
- waitingOrdersQueue.add(order);
- } else {
- //hvis ordren kan plasseres i vanlig kø, må produkt(er) trekkes fra
- //lagerbeholdningen
- for (int i = 0; i < order.getNoOrderLines(); i++) {
- line = order.getOrderLine(i);
- Product p = line.getProduct();
- p.setInventory(p.getInventory() - line.getCount());
- }
- ordersQueue.add(order);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement