You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2010/12/01 01:19:19 UTC
svn commit: r1040836 -
/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
Author: doogie
Date: Wed Dec 1 00:19:19 2010
New Revision: 1040836
URL: http://svn.apache.org/viewvc?rev=1040836&view=rev
Log:
Add some calcAndAddTax variants that allow ship groups without an
address to be skipped.
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java?rev=1040836&r1=1040835&r2=1040836&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java Wed Dec 1 00:19:19 2010
@@ -749,22 +749,34 @@ public class CheckOutHelper {
}
public void calcAndAddTax() throws GeneralException {
- calcAndAddTax(null);
+ calcAndAddTax(null, false);
+ }
+
+ public void calcAndAddTax(boolean skipEmptyAddresses) throws GeneralException {
+ calcAndAddTax(null, skipEmptyAddresses);
}
public void calcAndAddTax(GenericValue shipAddress) throws GeneralException {
+ calcAndAddTax(shipAddress, false);
+ }
+
+ public void calcAndAddTax(GenericValue shipAddress, boolean skipEmptyAddresses) throws GeneralException {
if (UtilValidate.isEmpty(cart.getShippingContactMechId()) && cart.getBillingAddress() == null && shipAddress == null) {
return;
}
int shipGroups = this.cart.getShipGroupSize();
for (int i = 0; i < shipGroups; i++) {
+ ShoppingCart.CartShipInfo csi = cart.getShipInfo(i);
Map<Integer, ShoppingCartItem> shoppingCartItemIndexMap = new HashMap<Integer, ShoppingCartItem>();
- Map<String, Object> serviceContext = this.makeTaxContext(i, shipAddress, shoppingCartItemIndexMap, cart.getFacilityId());
+ Map<String, Object> serviceContext = this.makeTaxContext(i, shipAddress, shoppingCartItemIndexMap, cart.getFacilityId(), skipEmptyAddresses);
+ if (skipEmptyAddresses && serviceContext == null) {
+ csi.clearAllTaxInfo();
+ continue;
+ }
List<List<? extends Object>> taxReturn = this.getTaxAdjustments(dispatcher, "calcTax", serviceContext);
if (Debug.verboseOn()) Debug.logVerbose("ReturnList: " + taxReturn, module);
- ShoppingCart.CartShipInfo csi = cart.getShipInfo(i);
List<GenericValue> orderAdj = UtilGenerics.checkList(taxReturn.get(0));
List<List<GenericValue>> itemAdj = UtilGenerics.checkList(taxReturn.get(1));
@@ -787,7 +799,7 @@ public class CheckOutHelper {
}
}
- private Map<String, Object> makeTaxContext(int shipGroup, GenericValue shipAddress, Map<Integer, ShoppingCartItem> shoppingCartItemIndexMap, String originFacilityId) {
+ private Map<String, Object> makeTaxContext(int shipGroup, GenericValue shipAddress, Map<Integer, ShoppingCartItem> shoppingCartItemIndexMap, String originFacilityId, boolean skipEmptyAddresses) {
ShoppingCart.CartShipInfo csi = cart.getShipInfo(shipGroup);
int totalItems = csi.shipItemInfo.size();
@@ -825,6 +837,10 @@ public class CheckOutHelper {
// Debug.logInfo("====== makeTaxContext set shipAddress to cart.getShippingAddress(shipGroup): " + shipAddress, module);
}
+ if (shipAddress == null && skipEmptyAddresses) {
+ return null;
+ }
+
// no shipping address; try the billing address
if (shipAddress == null) {
for (int i = 0; i < cart.selectedPayments(); i++) {