1 | |
package org.paneris.jammyjoes.shopping; |
2 | |
|
3 | |
import org.melati.Melati; |
4 | |
import org.paneris.jammyjoes.model.JammyjoesDatabase; |
5 | |
import org.paneris.jammyjoes.model.Product; |
6 | |
import org.paneris.jammyjoes.model.ShopOrder; |
7 | |
import org.paneris.jammyjoes.model.ShopOrderItem; |
8 | |
|
9 | 0 | public class JammyJoesShoppingTrolleyItem extends ShoppingTrolleyItem { |
10 | |
|
11 | |
private Product product; |
12 | |
private JammyJoesShoppingTrolley jammyjoesShoppingTrolley; |
13 | |
|
14 | |
public void initialise( |
15 | |
ShoppingTrolley trolley, |
16 | |
Melati melati, |
17 | |
Integer id, |
18 | |
String description, |
19 | |
Double price) { |
20 | 0 | super.initialise(trolley, melati, id, description, price); |
21 | 0 | jammyjoesShoppingTrolley = (JammyJoesShoppingTrolley) trolley; |
22 | 0 | } |
23 | |
|
24 | |
|
25 | |
|
26 | |
|
27 | |
protected void load(Integer id) { |
28 | 0 | JammyjoesDatabase db = (JammyjoesDatabase) melati.getDatabase(); |
29 | 0 | product = db.getProductTable().getProductObject(id); |
30 | 0 | description = product.getName(); |
31 | 0 | price = product.getRetailpriceincvat().doubleValue(); |
32 | 0 | } |
33 | |
|
34 | |
protected void save(JammyjoesDatabase db, ShopOrder order) { |
35 | 0 | ShopOrderItem item = (ShopOrderItem) db.getShopOrderItemTable().newPersistent(); |
36 | 0 | item.setUser(order.getUser()); |
37 | 0 | item.setOrder(order); |
38 | 0 | item.setProduct(product); |
39 | 0 | item.setQuantity(getQuantity()); |
40 | 0 | item.setAmount(jammyjoesShoppingTrolley.convertFromUK(price * quantity.intValue())); |
41 | 0 | item.setAmountUK(price * quantity.intValue()); |
42 | 0 | db.getShopOrderItemTable().create(item); |
43 | 0 | } |
44 | |
|
45 | |
|
46 | |
|
47 | |
public double getDeliveryValue() { |
48 | 0 | return 0; |
49 | |
} |
50 | |
|
51 | |
public String getWeightDisplay() { |
52 | 0 | double weight = getMass(); |
53 | 0 | if (weight < 1000) |
54 | 0 | return weight + "g"; |
55 | 0 | return weight / 1000 + "Kg"; |
56 | |
} |
57 | |
|
58 | |
public double getWeight() { |
59 | 0 | return getMass() * getQuantity().intValue(); |
60 | |
} |
61 | |
|
62 | |
public double getMass() { |
63 | 0 | double weight = 0; |
64 | 0 | if (product.getWeight() != null) |
65 | 0 | weight = product.getWeight().doubleValue(); |
66 | 0 | return weight; |
67 | |
} |
68 | |
|
69 | |
public Product getProduct() { |
70 | 0 | return product; |
71 | |
} |
72 | |
|
73 | |
public Integer getStocklevel() { |
74 | 0 | Integer level = getProduct().getStocklevel(); |
75 | 0 | if (level == null) { |
76 | 0 | return new Integer(0); |
77 | |
} else { |
78 | 0 | return getProduct().getStocklevel(); |
79 | |
} |
80 | |
} |
81 | |
|
82 | |
public boolean enoughStock() { |
83 | 0 | if (quantity.intValue() > getStocklevel().intValue()) |
84 | 0 | return false; |
85 | 0 | return true; |
86 | |
} |
87 | |
|
88 | |
} |