1 package org.paneris.bibliomania;
2
3 import java.sql.Timestamp;
4 import java.util.Enumeration;
5 import java.util.List;
6 import java.util.ArrayList;
7 import java.util.Iterator;
8
9 import org.melati.poem.AccessPoemException;
10 import org.paneris.bibliomania.generated.ShopOrderBase;
11
12 public class ShopOrder extends ShopOrderBase {
13 public ShopOrder() {}
14
15
16
17 public BibliomaniaDatabase getBibliomaniaDatabase () {
18 return (BibliomaniaDatabase)getDatabase();
19 }
20
21 public Enumeration getItems() {
22 return getBibliomaniaDatabase().getShopOrderItemTable().getOrderColumn().selectionWhereEq(troid());
23 }
24
25
26
27
28 public void removeItems() {
29 if (troid() != null) {
30 List toRemove = new ArrayList();
31 for (Enumeration en = getItems(); en.hasMoreElements();) {
32 toRemove.add(en.nextElement());
33 }
34 for (Iterator it = toRemove.iterator(); it.hasNext();) {
35 ShopOrderItem item = (ShopOrderItem) it.next();
36 item.deleteAndCommit();
37 }
38 }
39 }
40
41
42
43
44 public void setStatus(OrderStatus cooked) throws AccessPoemException {
45 BibliomaniaDatabase db = (BibliomaniaDatabase)getDatabase();
46 if (getFufilleddate_unsafe() == null &&
47 cooked == db.getOrderStatusTable().getFufilled()) {
48 setFufilleddate_unsafe(now());
49 }
50 super.setStatus(cooked);
51 }
52
53 public void setFufilleddate_unsafe(Timestamp cooked) {
54
55 BibliomaniaDatabase db = (BibliomaniaDatabase)getDatabase();
56 if (getStatus() != db.getOrderStatusTable().getFufilled() || cooked != null) {
57 super.setFufilleddate_unsafe(cooked);
58 }
59 }
60
61 protected void writeLock() {
62 super.writeLock();
63 if (getDate_unsafe() == null) {
64 setDate_unsafe(now());
65 }
66 }
67
68 private static java.sql.Timestamp now() {
69 return new java.sql.Timestamp(new java.util.Date().getTime());
70 }
71
72
73 }