[pal-cvs 2954] [698] supported zone map.

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2007年 11月 9日 (金) 18:00:17 JST


Revision: 698
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=698
Author:   shinsuke
Date:     2007-11-09 18:00:16 +0900 (Fri, 09 Nov 2007)

Log Message:
-----------
supported zone map.

Modified Paths:
--------------
    pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/fee/impl/DefaultDeliveryMethodCalculator.java


-------------- next part --------------
Modified: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/fee/impl/DefaultDeliveryMethodCalculator.java
===================================================================
--- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/fee/impl/DefaultDeliveryMethodCalculator.java	2007-11-09 08:58:41 UTC (rev 697)
+++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/fee/impl/DefaultDeliveryMethodCalculator.java	2007-11-09 09:00:16 UTC (rev 698)
@@ -1,9 +1,11 @@
 package jp.sf.pal.pompei.fee.impl;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import jp.sf.pal.pompei.PompeiConstants;
 import jp.sf.pal.pompei.exentity.AddressBook;
 import jp.sf.pal.pompei.exentity.CustomerBasket;
 import jp.sf.pal.pompei.fee.FeeCalculator;
@@ -15,10 +17,57 @@
      */
     private static final long serialVersionUID = 4448477278188463956L;
 
+    private Map<String, BigDecimal> zoneMap;
+
+    private BigDecimal defaultFee;
+
+    private BigDecimal focPrice;
+
+    public DefaultDeliveryMethodCalculator() {
+        this("0");
+    }
+
+    public DefaultDeliveryMethodCalculator(String defaultFee) {
+        // create zone map
+        this.zoneMap = new HashMap<String, BigDecimal>();
+
+        // default fee
+        this.defaultFee = BigDecimal.valueOf(Double.parseDouble(defaultFee));
+
+        // foc price
+        this.focPrice = BigDecimal.valueOf(0);
+    }
+
+    public DefaultDeliveryMethodCalculator(Map<String, String> zoneMap,
+            String defaultFee, String focPrice) {
+        // create zone map
+        this.zoneMap = new HashMap<String, BigDecimal>();
+        for (Map.Entry<String, String> entry : zoneMap.entrySet()) {
+            this.zoneMap.put(entry.getKey(), BigDecimal.valueOf(Double
+                    .parseDouble(entry.getValue())));
+        }
+
+        // default fee
+        this.defaultFee = BigDecimal.valueOf(Double.parseDouble(defaultFee));
+
+        // foc price
+        this.focPrice = BigDecimal.valueOf(Double.parseDouble(focPrice));
+    }
+
     public BigDecimal calculate(List<CustomerBasket> list,
             AddressBook deliveryAddressBook, Map<String, Object> informationMap) {
-        // TODO
-        return new BigDecimal(1000);
+        BigDecimal fee = defaultFee;
+        if (zoneMap.get(deliveryAddressBook.getState()) != null) {
+            fee = zoneMap.get(deliveryAddressBook.getState());
+        }
+
+        BigDecimal subTotalPrice = (BigDecimal) informationMap
+                .get(PompeiConstants.SUB_TOTAL_PRICE);
+        if (subTotalPrice != null && subTotalPrice.compareTo(focPrice) >= 0) {
+            return BigDecimal.valueOf(0);
+        }
+
+        return fee;
     }
 
 }


pal-cvs メーリングリストの案内
Back to archive index