summaryrefslogtreecommitdiff
path: root/src/com/delwink/icebox/Inventory.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/delwink/icebox/Inventory.java')
-rw-r--r--src/com/delwink/icebox/Inventory.java41
1 files changed, 33 insertions, 8 deletions
diff --git a/src/com/delwink/icebox/Inventory.java b/src/com/delwink/icebox/Inventory.java
index 698c934..b2a0b5e 100644
--- a/src/com/delwink/icebox/Inventory.java
+++ b/src/com/delwink/icebox/Inventory.java
@@ -74,12 +74,14 @@ public class Inventory {
for (int i = 0; i < items.getLength(); ++i) {
Element item = (Element) items.item(i);
- int id = Integer.parseInt(item.getAttribute("id"));
- int reorderAt = Integer.parseInt(item.getAttribute("reorder"));
- String name = item.getAttribute("name");
- String unit = item.getAttribute("unit");
-
- addNewItem(new InventoryItem(id, name, unit, reorderAt));
+ if (item.getParentNode().isSameNode(root)) { // make sure it's top-level
+ int id = Integer.parseInt(item.getAttribute("id"));
+ int reorderAt = Integer.parseInt(item.getAttribute("reorder"));
+ String name = item.getAttribute("name");
+ String unit = item.getAttribute("unit");
+
+ addNewItem(new InventoryItem(id, name, unit, reorderAt));
+ }
}
}
@@ -90,7 +92,7 @@ public class Inventory {
String orderNumber = order.getAttribute("num");
Date orderDate = new Date(Long.parseLong(order.getAttribute("date")));
- Order newOrder = new Order(orderNumber, orderDate);
+ Order newOrder = new Order(this, orderNumber, orderDate);
NodeList items = order.getElementsByTagName("item");
for (int j = 0; j < items.getLength(); ++j) {
@@ -99,7 +101,7 @@ public class Inventory {
int id = Integer.parseInt(item.getAttribute("id"));
int qty = Integer.parseInt(item.getAttribute("qty"));
- newOrder.addItem(id, qty);
+ newOrder.setItem(id, qty);
}
addOrder(newOrder);
@@ -173,6 +175,21 @@ public class Inventory {
writer.flush();
}
+ public void refreshQuantities() {
+ for (InventoryItem item : ITEMS.values())
+ item.addStock(-item.getStock()); // clear stock before refreshing
+
+ List<Order> orders = new ArrayList<>(ORDERS);
+ ORDERS.clear();
+ for (Order order : orders)
+ addOrder(order);
+
+ List<QuantityUpdate> updates = new ArrayList<>(UPDATES);
+ UPDATES.clear();
+ for (QuantityUpdate update : updates)
+ addUpdate(update);
+ }
+
public final void addOrder(Order order) {
ORDERS.add(order);
@@ -185,6 +202,10 @@ public class Inventory {
}
}
+ public List<Order> getOrders() {
+ return ORDERS;
+ }
+
public final void addUpdate(QuantityUpdate update) {
UPDATES.add(update);
@@ -197,6 +218,10 @@ public class Inventory {
}
}
+ public List<QuantityUpdate> getUpdates() {
+ return UPDATES;
+ }
+
public final void addNewItem(InventoryItem item) {
ITEMS.put(item.getID(), item);
}