You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2006/08/27 22:24:22 UTC
svn commit: r437453 - in /incubator/ofbiz/trunk/applications:
accounting/src/org/ofbiz/accounting/tax/TaxAuthorityServices.java
ecommerce/webapp/ecommerce/cart/showcart.ftl
order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
Author: jonesde
Date: Sun Aug 27 13:24:21 2006
New Revision: 437453
URL: http://svn.apache.org/viewvc?rev=437453&view=rev
Log:
Applied patches from Eriks Dobelis for tax calc and VAT display improvements (OFBIZ-113 and OFBIZ-164); fixed a few tabs in the patch; also fixed a bug caused by the changes to getGrandTotal method in ShoppingCart.java where tax could be included twice, there is now a getDisplayGrandTotal method for the display side, and that is now used in ecommerce showcart.ftl
Modified:
incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/tax/TaxAuthorityServices.java
incubator/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/cart/showcart.ftl
incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
Modified: incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/tax/TaxAuthorityServices.java
URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/tax/TaxAuthorityServices.java?rev=437453&r1=437452&r2=437453&view=diff
==============================================================================
--- incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/tax/TaxAuthorityServices.java (original)
+++ incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/tax/TaxAuthorityServices.java Sun Aug 27 13:24:21 2006
@@ -30,6 +30,7 @@
import org.ofbiz.base.util.UtilDateTime;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.UtilNumber;
import org.ofbiz.common.geo.GeoWorker;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
@@ -68,6 +69,9 @@
if (quantity == null) quantity = ONE_BASE;
BigDecimal amount = basePrice.multiply(quantity);
+ int salestaxFinalDecimals=UtilNumber.getBigDecimalScale("salestax.final.decimals");
+ int salestaxCalcDecimals=UtilNumber.getBigDecimalScale("salestax.calc.decimals");
+ int salestaxRounding=UtilNumber.getBigDecimalRoundingMode("salestax.rounding");
BigDecimal taxTotal = ZERO_BASE;
BigDecimal taxPercentage = ZERO_BASE;
@@ -108,7 +112,7 @@
taxPercentage = taxPercentage.add(taxAdjustment.getBigDecimal("sourcePercentage"));
BigDecimal adjAmount = taxAdjustment.getBigDecimal("amount");
taxTotal = taxTotal.add(adjAmount);
- priceWithTax = priceWithTax.add(adjAmount);
+ priceWithTax = priceWithTax.add(adjAmount.divide(quantity,salestaxCalcDecimals,salestaxRounding));
Debug.logInfo("For productId [" + productId + "] added [" + adjAmount + "] of tax to price for geoId [" + taxAdjustment.getString("taxAuthGeoId") + "], new price is [" + priceWithTax + "]", module);
}
}
@@ -119,8 +123,8 @@
}
// round to 2 decimal places for display/etc
- taxTotal.setScale(2, BigDecimal.ROUND_CEILING);
- priceWithTax.setScale(2, BigDecimal.ROUND_CEILING);
+ taxTotal.setScale(salestaxFinalDecimals, salestaxRounding);
+ priceWithTax.setScale(salestaxFinalDecimals, salestaxRounding);
Map result = ServiceUtil.returnSuccess();
result.put("taxTotal", taxTotal);
Modified: incubator/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/cart/showcart.ftl
URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/cart/showcart.ftl?rev=437453&r1=437452&r2=437453&view=diff
==============================================================================
--- incubator/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/cart/showcart.ftl (original)
+++ incubator/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/cart/showcart.ftl Sun Aug 27 13:24:21 2006
@@ -351,7 +351,7 @@
</td>
<td colspan="2" align="right" valign="bottom">
<hr size="1" class="sepbar">
- <div class="tabletext"><b><@ofbizCurrency amount=shoppingCart.getGrandTotal() isoCode=shoppingCart.getCurrency()/></b></div>
+ <div class="tabletext"><b><@ofbizCurrency amount=shoppingCart.getDisplayGrandTotal() isoCode=shoppingCart.getCurrency()/></b></div>
</td>
</tr>
<#if itemsFromList>
Modified: incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=437453&r1=437452&r2=437453&view=diff
==============================================================================
--- incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java (original)
+++ incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java Sun Aug 27 13:24:21 2006
@@ -17,6 +17,7 @@
package org.ofbiz.order.shoppingcart;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
@@ -430,7 +431,7 @@
}
//} catch (GenericServiceException e) {
} catch (Exception e) {
- Debug.logWarning(UtilProperties.getMessage(resource_error,"OrderRunServiceGetSuppliersForProductError", locale) + e.getMessage(), module);
+ Debug.logWarning(UtilProperties.getMessage(resource_error,"OrderRunServiceGetSuppliersForProductError", locale) + e.getMessage(), module);
}
return supplierProduct;
}
@@ -2240,12 +2241,27 @@
/** Returns the total from the cart, including tax/shipping. */
public double getGrandTotal() {
// sales tax and shipping are not stored as adjustments but rather as part of the ship group
-// Debug.logInfo("Subtotal:" + this.getSubTotal() + " Shipping:" + this.getTotalShipping() + "SalesTax: "+ this.getTotalSalesTax() + " others: " + this.getOrderOtherAdjustmentTotal(),module);
+ // Debug.logInfo("Subtotal:" + this.getSubTotal() + " Shipping:" + this.getTotalShipping() + "SalesTax: "+ this.getTotalSalesTax() + " others: " + this.getOrderOtherAdjustmentTotal(),module);
return this.getSubTotal() + this.getTotalShipping() + this.getTotalSalesTax() + this.getOrderOtherAdjustmentTotal();
}
+ public double getDisplaySubTotal() {
+ double itemsTotal = 0.00;
+ Iterator i = iterator();
+
+ while (i.hasNext()) {
+ itemsTotal += ((ShoppingCartItem) i.next()).getDisplayItemSubTotal();
+ }
+ return itemsTotal;
+ }
+
+ /** Returns the total from the cart, including tax/shipping. */
+ public double getDisplayGrandTotal() {
+ return this.getDisplaySubTotal() + this.getTotalShipping() + this.getTotalSalesTax() + this.getOrderOtherAdjustmentTotal();
+ }
+
public double getOrderOtherAdjustmentTotal() {
- return OrderReadHelper.calcOrderAdjustments(this.getAdjustments(), getSubTotal(), true, false, false);
+ return OrderReadHelper.calcOrderAdjustmentsBd(this.getAdjustments(), new BigDecimal(this.getSubTotal()), true, false, false).doubleValue();
}
/** Returns the sub-total in the cart (item-total - discount). */