Author: arunpatidar
Date: Fri May 20 06:52:19 2016
New Revision: 1744662

URL: http://svn.apache.org/viewvc?rev=1744662&view=rev
Log:
[OFBIZ-5935] Added manually calculated sales tax while recalculating tax of 
order. Thanks Rohit Koushal for patch and Divesh Dutta for suggestion.

Modified:
    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1744662&r1=1744661&r2=1744662&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java 
(original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java 
Fri May 20 06:52:19 2016
@@ -1633,6 +1633,15 @@ public class OrderServices {
             }
         }
 
+        // Accumulate the total manually added tax adjustment
+        BigDecimal totalManuallyAddedOrderTax = ZERO;
+        for (GenericValue orderTaxAdjustment : orderTaxAdjustments) {
+            String comment = orderTaxAdjustment.getString("comments");
+            if (orderTaxAdjustment.get("amount") != null && comment !=null && 
comment.startsWith("Added manually by")) {
+                totalManuallyAddedOrderTax = 
totalManuallyAddedOrderTax.add(orderTaxAdjustment.getBigDecimal("amount").setScale(taxDecimals,
 taxRounding));
+            }
+        }
+
         // Recalculate the taxes for the order
         BigDecimal totalNewOrderTax = ZERO;
         OrderReadHelper orh = new OrderReadHelper(orderHeader);
@@ -1758,6 +1767,11 @@ public class OrderServices {
                     }
                 }
             }
+            
+            // If there is any manually added tax then add it into new system 
generated tax.
+            if (totalManuallyAddedOrderTax.compareTo(BigDecimal.ZERO) > 0) {
+                totalNewOrderTax = 
totalNewOrderTax.add(totalManuallyAddedOrderTax).setScale(taxDecimals, 
taxRounding);
+            }
 
             // Determine the difference between existing and new tax 
adjustment totals, if any
             BigDecimal orderTaxDifference = 
totalNewOrderTax.subtract(totalExistingOrderTax).setScale(taxDecimals, 
taxRounding);


Reply via email to