View Javadoc

1   package org.paneris.jammyjoes.mvp;
2   
3   import java.util.Date;
4   import java.util.Enumeration;
5   import java.util.List;
6   
7   import org.melati.poem.Selectable;
8   import org.melati.poem.Table;
9   import org.paneris.jammyjoes.model.Affiliate;
10  import org.paneris.jammyjoes.model.ShopOrder;
11  import org.paneris.jammyjoes.util.JammyJoesUtil;
12  
13  public class OrderSelection implements Selection {
14  
15    private Table _orders;
16    private List _orderStatus;
17    private final Affiliate affiliate;
18    private final Date startDate;
19    private final Date endDate;
20  
21    public OrderSelection(Selectable orders, List orderStatus, Affiliate affiliate, Date startDate, Date endDate) {
22      this.endDate = endDate;
23      _orders = (Table)orders;
24      _orderStatus = orderStatus;
25      this.affiliate = affiliate;
26      this.startDate = startDate;
27    }
28  
29    public void visitEach(Command command) {
30      String selection = "";
31      if (affiliate != null) {
32        selection += "affiliate="+ affiliate.getTroid();
33      }
34      if (startDate != null) {
35        selection += " and date >= " + JammyJoesUtil.formatDateForPostgresSQL(startDate);
36      }
37      if (endDate != null) {
38        selection += " and date < " + JammyJoesUtil.formatDateForPostgresSQL(endDate);
39      }
40      Enumeration enumeration = _orders.selection();
41      while (enumeration.hasMoreElements()) {
42        ShopOrder order = (ShopOrder) enumeration.nextElement();
43        if (order.hasStatus(_orderStatus)) {
44          command.visit(order);
45        }
46      }
47  
48    }
49  }