View Javadoc

1   package org.paneris.jammyjoes.model;
2   
3   import java.util.Enumeration;
4   
5   import org.melati.poem.CachedCount;
6   import org.melati.poem.CachedSelection;
7   import org.paneris.jammyjoes.model.generated.AffiliateBase;
8   
9   public class Affiliate extends AffiliateBase {
10    public Affiliate() {}
11    
12    public String ordersSQL(boolean paidonly) {
13      JammyjoesDatabase db = (JammyjoesDatabase)getDatabase();
14      String paid = (paidonly) ? " AND affiliatepaid IS TRUE" : "";
15      return "affiliate = " + getTroid() + " AND status = " + 
16             db.getOrderStatusTable().getFufilled().getTroid() + paid;
17    }
18  
19    public CachedSelection getOrders(boolean paidonly) {
20      return getJammyjoesDatabaseTables().getShopOrderTable().cachedSelection(
21             ordersSQL(paidonly), null);
22    }
23  
24    public CachedSelection getOrders() {
25      return getOrders(false);
26    }
27  
28    public CachedCount cachedOrdersCount() {
29      return getJammyjoesDatabaseTables().getShopOrderTable().cachedCount(ordersSQL(false));
30    }
31   
32    public double totalOrders() {
33      double total = 0;
34      Enumeration en =  getOrders(false).objects();
35      while (en.hasMoreElements()) {
36        ShopOrder order = (ShopOrder)en.nextElement();
37        total += order.getAmount().doubleValue();
38      }
39      return total;
40    }
41   
42    public double money(boolean paid) {
43      double total = 0;
44      Enumeration en = getOrders(paid).objects();
45      while (en.hasMoreElements()) {
46        ShopOrder order = (ShopOrder)en.nextElement();
47        total += order.getComission().doubleValue() * order.getAmount().doubleValue() / 100;
48      }
49      return total;
50    }
51   
52    public double moneyEarnt() {
53      return money(false);
54    }
55   
56    public double moneyPaid() {
57      return money(true);
58    }
59    
60    public double moneyOwed() {
61      return moneyEarnt() - moneyPaid();
62    }
63   
64  }