You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2018/02/13 12:47:11 UTC

svn commit: r1824127 - in /ofbiz/ofbiz-framework/trunk/applications: accounting/src/main/java/org/apache/ofbiz/accounting/agreement/ accounting/src/main/java/org/apache/ofbiz/accounting/invoice/ accounting/src/main/java/org/apache/ofbiz/accounting/paym...

Author: jleroux
Date: Tue Feb 13 12:47:11 2018
New Revision: 1824127

URL: http://svn.apache.org/viewvc?rev=1824127&view=rev
Log:
Improved: Replace all "BigDecimal ZERO" by BigDecimal.ZERO
(OFBIZ-9572)

Replace (and removes) "BigDecimal ZERO" by BigDecimal.ZERO where a ZERO var
makes no sense, ie when no scale/rounding is used.

Replaces the pattern for ZERO var creation in several files using
new UtilNumber.getRoundingMode()

No ZERO var creation and scale/rounding when confusion with several scale and
rounding is possible hence just BigDecimal.ZERO used. 
Like in InvoiceServices.java and InvoiceWorker.java	


Modified:
    ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java
    ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java
    ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java
    ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/BillingAccountWorker.java
    ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java
    ofbiz/ofbiz-framework/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java
    ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderReturnServices.java
    ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
    ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickServices.java
    ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickSession.java
    ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageServices.java
    ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageSession.java

Modified: ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java Tue Feb 13 12:47:11 2018
@@ -20,6 +20,7 @@
 package org.apache.ofbiz.accounting.agreement;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
@@ -45,16 +46,9 @@ public class AgreementServices {
 
     public static final String module = AgreementServices.class.getName();
     // set some BigDecimal properties
-    private static BigDecimal ZERO = BigDecimal.ZERO;
-    private static int decimals = -1;
-    private static int rounding = -1;
-    static {
-        decimals = UtilNumber.getBigDecimalScale("invoice.decimals");
-        rounding = UtilNumber.getBigDecimalRoundingMode("invoice.rounding");
-
-        // set zero to the proper scale
-        if (decimals != -1) ZERO = ZERO.setScale(decimals, rounding);
-    }
+    public static final int decimals = UtilNumber.getBigDecimalScale("finaccount.decimals");
+    public static final RoundingMode rounding = UtilNumber.getRoundingMode("finaccount.rounding");
+    public static final BigDecimal ZERO = BigDecimal.ZERO.setScale(decimals, rounding);
     public static final String resource = "AccountingUiLabels";
 
     /**

Modified: ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java Tue Feb 13 12:47:11 2018
@@ -108,7 +108,6 @@ public class InvoiceServices {
     public static final String module = InvoiceServices.class.getName();
 
     // set some BigDecimal properties
-    private static final BigDecimal ZERO = BigDecimal.ZERO;
     private static final int DECIMALS = UtilNumber.getBigDecimalScale("invoice.decimals");
     private static final RoundingMode ROUNDING = UtilNumber.getRoundingMode("invoice.rounding");
     private static final int TAX_DECIMALS = UtilNumber.getBigDecimalScale("salestax.calc.decimals");
@@ -217,10 +216,10 @@ public class InvoiceServices {
             BigDecimal orderQuantity = orh.getTotalOrderItemsQuantity();
 
             // these variables are for pro-rating order amounts across invoices, so they should not be rounded off for maximum accuracy
-            BigDecimal invoiceShipProRateAmount = ZERO;
-            BigDecimal invoiceShippableQuantity = ZERO;
-            BigDecimal invoiceSubTotal = ZERO;
-            BigDecimal invoiceQuantity = ZERO;
+            BigDecimal invoiceShipProRateAmount = BigDecimal.ZERO;
+            BigDecimal invoiceShippableQuantity = BigDecimal.ZERO;
+            BigDecimal invoiceSubTotal = BigDecimal.ZERO;
+            BigDecimal invoiceQuantity = BigDecimal.ZERO;
 
             GenericValue billingAccount = orderHeader.getRelatedOne("BillingAccount", false);
             String billingAccountId = billingAccount != null ? billingAccount.getString("billingAccountId") : null;
@@ -406,7 +405,7 @@ public class InvoiceServices {
                     billingQuantity = itemIssuance.getBigDecimal("quantity");
                     BigDecimal cancelQty = itemIssuance.getBigDecimal("cancelQuantity");
                     if (cancelQty == null) {
-                        cancelQty = ZERO;
+                        cancelQty = BigDecimal.ZERO;
                     }
                     billingQuantity = billingQuantity.subtract(cancelQty).setScale(DECIMALS, ROUNDING);
                 } else if (shipmentReceipt != null) {
@@ -415,12 +414,12 @@ public class InvoiceServices {
                     BigDecimal orderedQuantity = OrderReadHelper.getOrderItemQuantity(orderItem);
                     BigDecimal invoicedQuantity = OrderReadHelper.getOrderItemInvoicedQuantity(orderItem);
                     billingQuantity = orderedQuantity.subtract(invoicedQuantity);
-                    if (billingQuantity.compareTo(ZERO) < 0) {
-                        billingQuantity = ZERO;
+                    if (billingQuantity.compareTo(BigDecimal.ZERO) < 0) {
+                        billingQuantity = BigDecimal.ZERO;
                     }
                 }
                 if (billingQuantity == null) {
-                    billingQuantity = ZERO;
+                    billingQuantity = BigDecimal.ZERO;
                 }
 
                 // check if shipping applies to this item.  Shipping is calculated for sales invoices, not purchase invoices.
@@ -568,7 +567,7 @@ public class InvoiceServices {
                     }
 
                     BigDecimal originalOrderItemQuantity = OrderReadHelper.getOrderItemQuantity(originalOrderItem);
-                    BigDecimal amount = ZERO;
+                    BigDecimal amount = BigDecimal.ZERO;
                     if (originalOrderItemQuantity.signum() != 0) {
                         if (adj.get("amount") != null) {
                                 if("PROMOTION_ADJUSTMENT".equals(adj.getString("orderAdjustmentTypeId")) && adj.get("productPromoId") != null) {
@@ -972,7 +971,7 @@ public class InvoiceServices {
             // Map of commission Lists (of Maps) for each party.
             // Determine commissions for various parties.
             for (GenericValue invoiceItem : invoiceItems) {
-                BigDecimal amount = ZERO;
+                BigDecimal amount = BigDecimal.ZERO;
                 BigDecimal quantity = invoiceItem.getBigDecimal("quantity");
                 amount = invoiceItem.getBigDecimal("amount");
                 amount = isReturn ? amount.negate() : amount;
@@ -1498,7 +1497,7 @@ public class InvoiceServices {
 
             // now we will check each issuance and make sure it hasn't already been billed
             for (GenericValue issue : billItems) {
-                BigDecimal issueQty = ZERO;
+                BigDecimal issueQty = BigDecimal.ZERO;
 
                 if ("ShipmentReceipt".equals(issue.getEntityName())) {
                     issueQty = issue.getBigDecimal("quantityAccepted");
@@ -1540,7 +1539,7 @@ public class InvoiceServices {
 
                     // add up the already billed total
                     if (billed.size() > 0) {
-                        BigDecimal billedQuantity = ZERO;
+                        BigDecimal billedQuantity = BigDecimal.ZERO;
                         for (GenericValue oib : billed) {
                             BigDecimal qty = oib.getBigDecimal("quantity");
                             if (qty != null) {
@@ -1563,11 +1562,11 @@ public class InvoiceServices {
                         } else {
                             issue.set("quantity", billAvail);
                         }
-                        billAvail = ZERO;
+                        billAvail = BigDecimal.ZERO;
                     } else {
                         // now have been billed
                         if(issueQty == null){
-                            issueQty = ZERO;
+                            issueQty = BigDecimal.ZERO;
                         }
                         billAvail = billAvail.subtract(issueQty).setScale(DECIMALS, ROUNDING);
                     }
@@ -1635,7 +1634,7 @@ public class InvoiceServices {
 
                 // Total the additional shipping charges for the shipments
                 Map<GenericValue, BigDecimal> additionalShippingCharges = new HashMap<>();
-                BigDecimal totalAdditionalShippingCharges = ZERO;
+                BigDecimal totalAdditionalShippingCharges = BigDecimal.ZERO;
                 if (UtilValidate.isNotEmpty(invoiceableShipments)) {
                     for (GenericValue shipment : invoiceableShipments) {
                         if (shipment.get("additionalShippingCharge") == null) {
@@ -2077,8 +2076,8 @@ public class InvoiceServices {
             String invoiceId = (String) serviceResults.get("invoiceId");
 
             // keep track of the invoice total vs the promised return total (how much the customer promised to return)
-            BigDecimal invoiceTotal = ZERO;
-            BigDecimal promisedTotal = ZERO;
+            BigDecimal invoiceTotal = BigDecimal.ZERO;;
+            BigDecimal promisedTotal = BigDecimal.ZERO;
 
             // loop through shipment receipts to create invoice items and return item billings for each item and adjustment
             int invoiceItemSeqNum = 1;
@@ -2169,14 +2168,14 @@ public class InvoiceServices {
                 invoiceItemSeqId = UtilFormatOut.formatPaddedNumber(invoiceItemSeqNum, INVOICE_ITEM_SEQUENCE_ID_DIGITS);
 
                 // keep a running total (note: a returnItem may have many receipts. hence, the promised total quantity is the receipt quantityAccepted + quantityRejected)
-                BigDecimal cancelQuantity = ZERO;
+                BigDecimal cancelQuantity = BigDecimal.ZERO;
                 if (shipmentReceiptFound) {
                     cancelQuantity = item.getBigDecimal("quantityRejected");
                 } else if (itemIssuanceFound) {
                     cancelQuantity = item.getBigDecimal("cancelQuantity");
                 }
                 if (cancelQuantity == null) {
-                    cancelQuantity = ZERO;
+                    cancelQuantity = BigDecimal.ZERO;
                 }
                 BigDecimal actualAmount = returnPrice.multiply(quantity).setScale(DECIMALS, ROUNDING);
                 BigDecimal promisedAmount = returnPrice.multiply(quantity.add(cancelQuantity)).setScale(DECIMALS, ROUNDING);
@@ -2245,7 +2244,7 @@ public class InvoiceServices {
             }
 
             // ratio of the invoice total to the promised total so far or zero if the amounts were zero
-            BigDecimal actualToPromisedRatio = ZERO;
+            BigDecimal actualToPromisedRatio = BigDecimal.ZERO;
             if (invoiceTotal.signum() != 0) {
                 actualToPromisedRatio = invoiceTotal.divide(promisedTotal, 100, ROUNDING);  // do not round ratio
             }
@@ -2372,10 +2371,10 @@ public class InvoiceServices {
             }
         }
 
-        BigDecimal totalPayments = ZERO;
+        BigDecimal totalPayments = BigDecimal.ZERO;
         for (BigDecimal amount : payments.values()) {
             if (amount == null) {
-                amount = ZERO;
+                amount = BigDecimal.ZERO;
             }
             totalPayments = totalPayments.add(amount).setScale(DECIMALS, ROUNDING);
         }
@@ -2413,11 +2412,11 @@ public class InvoiceServices {
 
     private static BigDecimal calcHeaderAdj(Delegator delegator, GenericValue adj, String invoiceTypeId, String invoiceId, String invoiceItemSeqId,
             BigDecimal divisor, BigDecimal multiplier, BigDecimal baseAmount, int decimals, RoundingMode rounding, GenericValue userLogin, LocalDispatcher dispatcher, Locale locale) {
-        BigDecimal adjAmount = ZERO;
+        BigDecimal adjAmount = BigDecimal.ZERO;
         if (adj.get("amount") != null) {
 
             // pro-rate the amount
-            BigDecimal amount = ZERO;
+            BigDecimal amount = BigDecimal.ZERO;
             if("DONATION_ADJUSTMENT".equals(adj.getString("orderAdjustmentTypeId"))) {
                 amount=baseAmount;
             } else if (divisor.signum() != 0) { // make sure the divisor is not 0 to avoid NaN problems; just leave the amount as 0 and skip it in essense
@@ -2473,7 +2472,7 @@ public class InvoiceServices {
             // pro-rate the amount
             BigDecimal percent = adj.getBigDecimal("sourcePercentage");
             percent = percent.divide(new BigDecimal(100), 100, rounding);
-            BigDecimal amount = ZERO;
+            BigDecimal amount = BigDecimal.ZERO;
             // make sure the divisor is not 0 to avoid NaN problems; just leave the amount as 0 and skip it in essense
             if (divisor.signum() != 0) {
                 // multiply first then divide to avoid rounding errors
@@ -2577,7 +2576,7 @@ public class InvoiceServices {
         if (amountApplied != null) {
             context.put("amountApplied", amountApplied);
         } else {
-            context.put("amountApplied", ZERO);
+            context.put("amountApplied", BigDecimal.ZERO);
         }
 
         return updatePaymentApplicationDefBd(dctx, context);
@@ -2686,7 +2685,7 @@ public class InvoiceServices {
 
         // avoid null pointer exceptions.
         if (amountApplied == null) {
-            amountApplied = ZERO;
+            amountApplied = BigDecimal.ZERO;
         }
         // makes no sense to have an item numer without an invoice number
         if (invoiceId == null) {
@@ -2696,7 +2695,7 @@ public class InvoiceServices {
         // retrieve all information and perform checking on the retrieved info.....
 
         // Payment.....
-        BigDecimal paymentApplyAvailable = ZERO;
+        BigDecimal paymentApplyAvailable = BigDecimal.ZERO;
         // amount available on the payment reduced by the already applied amounts
         GenericValue payment = null;
         String currencyUomId = null;
@@ -2729,7 +2728,7 @@ public class InvoiceServices {
         }
 
         // the "TO" Payment.....
-        BigDecimal toPaymentApplyAvailable = ZERO;
+        BigDecimal toPaymentApplyAvailable = BigDecimal.ZERO;
         GenericValue toPayment = null;
         if (toPaymentId != null && !toPaymentId.equals("")) {
             try {
@@ -2830,9 +2829,9 @@ public class InvoiceServices {
         }
 
         // get the invoice (item) information
-        BigDecimal invoiceApplyAvailable = ZERO;
+        BigDecimal invoiceApplyAvailable = BigDecimal.ZERO;
         // amount available on the invoice reduced by the already applied amounts
-        BigDecimal invoiceItemApplyAvailable = ZERO;
+        BigDecimal invoiceItemApplyAvailable = BigDecimal.ZERO;
         // amount available on the invoiceItem reduced by the already applied amounts
         GenericValue invoice = null;
         GenericValue invoiceItem = null;
@@ -3024,12 +3023,12 @@ public class InvoiceServices {
 
                 // check if the payment for too much application if an existing
                 // application record is changed
-                if (paymentApplyAvailable.compareTo(ZERO) == 0) {
+                if (paymentApplyAvailable.compareTo(BigDecimal.ZERO) == 0) {
                     newPaymentApplyAvailable = paymentApplyAvailable.add(paymentApplication.getBigDecimal("amountApplied")).subtract(amountApplied).setScale(DECIMALS, ROUNDING);
                 } else {
                     newPaymentApplyAvailable = paymentApplyAvailable.add(paymentApplyAvailable).subtract(amountApplied).setScale(DECIMALS, ROUNDING);
                 }
-                if (newPaymentApplyAvailable.compareTo(ZERO) < 0) {
+                if (newPaymentApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                     errorMessageList.add(UtilProperties.getMessage(resource,
                             "AccountingPaymentNotEnough",
                             UtilMisc.<String, Object>toMap("paymentId", paymentId,
@@ -3045,7 +3044,7 @@ public class InvoiceServices {
                         // record for the whole invoice
                         if (invoiceItemSeqId == null && paymentApplication.get("invoiceItemSeqId") == null) {
                             newInvoiceApplyAvailable = invoiceApplyAvailable.add(paymentApplication.getBigDecimal("amountApplied")).subtract(amountApplied).setScale(DECIMALS, ROUNDING);
-                            if (invoiceApplyAvailable.compareTo(ZERO) < 0) {
+                            if (invoiceApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                                 errorMessageList.add(UtilProperties.getMessage(resource,
                                         "AccountingInvoiceNotEnough",
                                         UtilMisc.<String, Object>toMap("tooMuch", newInvoiceApplyAvailable.negate(),
@@ -3054,7 +3053,7 @@ public class InvoiceServices {
                         } else if (invoiceItemSeqId == null && paymentApplication.get("invoiceItemSeqId") != null) {
                             // check if the item number changed from a real Item number to a null value
                             newInvoiceApplyAvailable = invoiceApplyAvailable.add(paymentApplication.getBigDecimal("amountApplied")).subtract(amountApplied).setScale(DECIMALS, ROUNDING);
-                            if (invoiceApplyAvailable.compareTo(ZERO) < 0) {
+                            if (invoiceApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                                 errorMessageList.add(UtilProperties.getMessage(resource,
                                         "AccountingInvoiceNotEnough",
                                         UtilMisc.<String, Object>toMap("tooMuch", newInvoiceApplyAvailable.negate(),
@@ -3064,7 +3063,7 @@ public class InvoiceServices {
                             // check if the item number changed from a null value to
                             // a real Item number
                             newInvoiceItemApplyAvailable = invoiceItemApplyAvailable.subtract(amountApplied).setScale(DECIMALS, ROUNDING);
-                            if (newInvoiceItemApplyAvailable.compareTo(ZERO) < 0) {
+                            if (newInvoiceItemApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                                 errorMessageList.add(UtilProperties.getMessage(resource,
                                         "AccountingItemInvoiceNotEnough",
                                         UtilMisc.<String, Object>toMap("tooMuch", newInvoiceItemApplyAvailable.negate(),
@@ -3075,7 +3074,7 @@ public class InvoiceServices {
                             // check if the real item numbers the same
                             // item number the same numeric value
                             newInvoiceItemApplyAvailable = invoiceItemApplyAvailable.add(paymentApplication.getBigDecimal("amountApplied")).subtract(amountApplied).setScale(DECIMALS, ROUNDING);
-                            if (newInvoiceItemApplyAvailable.compareTo(ZERO) < 0) {
+                            if (newInvoiceItemApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                                 errorMessageList.add(UtilProperties.getMessage(resource,
                                         "AccountingItemInvoiceNotEnough",
                                         UtilMisc.<String, Object>toMap("tooMuch", newInvoiceItemApplyAvailable.negate(),
@@ -3085,7 +3084,7 @@ public class InvoiceServices {
                         } else {
                             // item number changed only check new item
                             newInvoiceItemApplyAvailable = invoiceItemApplyAvailable.add(amountApplied).setScale(DECIMALS, ROUNDING);
-                            if (newInvoiceItemApplyAvailable.compareTo(ZERO) < 0) {
+                            if (newInvoiceItemApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                                 errorMessageList.add(UtilProperties.getMessage(resource,
                                         "AccountingItemInvoiceNotEnough",
                                         UtilMisc.<String, Object>toMap("tooMuch", newInvoiceItemApplyAvailable.negate(),
@@ -3108,7 +3107,7 @@ public class InvoiceServices {
 
                         // check the invoice
                         newInvoiceApplyAvailable = invoiceApplyAvailable.add(paymentApplication.getBigDecimal("amountApplied").subtract(amountApplied)).setScale(DECIMALS, ROUNDING);
-                        if (newInvoiceApplyAvailable.compareTo(ZERO) < 0) {
+                        if (newInvoiceApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                             errorMessageList.add(UtilProperties.getMessage(resource,
                                     "AccountingInvoiceNotEnough",
                                     UtilMisc.<String, Object>toMap("tooMuch", invoiceApplyAvailable.add(paymentApplication.getBigDecimal("amountApplied")).subtract(amountApplied),
@@ -3121,7 +3120,7 @@ public class InvoiceServices {
                 // changed,
                 if (toPaymentId != null && toPaymentId.equals(paymentApplication.getString("toPaymentId"))) {
                     newToPaymentApplyAvailable = toPaymentApplyAvailable.subtract(paymentApplication.getBigDecimal("amountApplied")).add(amountApplied).setScale(DECIMALS, ROUNDING);
-                    if (newToPaymentApplyAvailable.compareTo(ZERO) < 0) {
+                    if (newToPaymentApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                         errorMessageList.add(UtilProperties.getMessage(resource,
                                 "AccountingPaymentNotEnough",
                                 UtilMisc.<String, Object>toMap("paymentId", toPaymentId,
@@ -3132,7 +3131,7 @@ public class InvoiceServices {
                     // billing account entered number has changed so we have to
                     // check the new billing account number.
                     newToPaymentApplyAvailable = toPaymentApplyAvailable.add(amountApplied).setScale(DECIMALS, ROUNDING);
-                    if (newToPaymentApplyAvailable.compareTo(ZERO) < 0) {
+                    if (newToPaymentApplyAvailable.compareTo(BigDecimal.ZERO) < 0) {
                         errorMessageList.add(UtilProperties.getMessage(resource,
                                 "AccountingPaymentNotEnough",
                                 UtilMisc.<String, Object>toMap("paymentId", toPaymentId,
@@ -3271,7 +3270,7 @@ public class InvoiceServices {
                 paymentApplyAvailable = amountApplied;
             }
             for (GenericValue currentInvoiceItem : invoiceItems) {
-                if (paymentApplyAvailable.compareTo(ZERO) > 0) {
+                if (paymentApplyAvailable.compareTo(BigDecimal.ZERO) > 0) {
                     break;
                 }
                 if (debug) {
@@ -3292,9 +3291,9 @@ public class InvoiceServices {
                 } catch (GenericEntityException e) {
                     return ServiceUtil.returnError(e.getMessage());
                 }
-                BigDecimal tobeApplied = ZERO;
+                BigDecimal tobeApplied = BigDecimal.ZERO;
                 // item total amount - already applied (if any)
-                BigDecimal alreadyApplied = ZERO;
+                BigDecimal alreadyApplied = BigDecimal.ZERO;
                 if (UtilValidate.isNotEmpty(paymentApplications)) {
                     // application(s) found, add them all together
                     Iterator<GenericValue> p = paymentApplications.iterator();
@@ -3320,7 +3319,7 @@ public class InvoiceServices {
                     paymentApplyAvailable = paymentApplyAvailable.subtract(tobeApplied);
                 } else {
                     tobeApplied = paymentApplyAvailable;
-                    paymentApplyAvailable = ZERO;
+                    paymentApplyAvailable = BigDecimal.ZERO;
                 }
 
                 // create application payment record but check currency
@@ -3371,7 +3370,7 @@ public class InvoiceServices {
         GenericValue orderAdjustment = (GenericValue) context.get("orderAdjustment");
         Map<String, Object> result = ServiceUtil.returnSuccess();
 
-        BigDecimal invoicedTotal = ZERO;
+        BigDecimal invoicedTotal = BigDecimal.ZERO;
         List<GenericValue> invoicedAdjustments = null;
         try {
             invoicedAdjustments = EntityQuery.use(delegator).from("OrderAdjustmentBilling").where("orderAdjustmentId", orderAdjustment.get("orderAdjustmentId")).queryList();

Modified: ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java Tue Feb 13 12:47:11 2018
@@ -51,7 +51,6 @@ import org.apache.ofbiz.entity.util.Enti
 public final class InvoiceWorker {
 
     public static final String module = InvoiceWorker.class.getName();
-    private static final BigDecimal ZERO = BigDecimal.ZERO;
     private static final int decimals = UtilNumber.getBigDecimalScale("invoice.decimals");
     private static final RoundingMode rounding = UtilNumber.getRoundingMode("invoice.rounding");
     private static final int taxDecimals = UtilNumber.getBigDecimalScale("salestax.calc.decimals");
@@ -109,7 +108,7 @@ public final class InvoiceWorker {
         }
         BigDecimal amount = invoiceItem.getBigDecimal("amount");
         if (amount == null) {
-            amount = ZERO;
+            amount = BigDecimal.ZERO;
         }
         return quantity.multiply(amount).setScale(decimals, rounding);
     }
@@ -126,7 +125,7 @@ public final class InvoiceWorker {
     }
 
     public static BigDecimal getInvoiceTaxTotal(GenericValue invoice) {
-        BigDecimal taxTotal = ZERO;
+        BigDecimal taxTotal = BigDecimal.ZERO;
         Map<String, Set<String>> taxAuthPartyAndGeos = InvoiceWorker.getInvoiceTaxAuthPartyAndGeos(invoice);
         for (Map.Entry<String, Set<String>> taxAuthPartyGeos : taxAuthPartyAndGeos.entrySet()) {
             String taxAuthPartyId = taxAuthPartyGeos.getKey();
@@ -161,7 +160,7 @@ public final class InvoiceWorker {
       * @return Return the total amount of the invoice
       */
      public static BigDecimal getInvoiceTotal(GenericValue invoice, Boolean actualCurrency) {
-        BigDecimal invoiceTotal = ZERO;
+        BigDecimal invoiceTotal = BigDecimal.ZERO;
         BigDecimal invoiceTaxTotal = InvoiceWorker.getInvoiceTaxTotal(invoice);
 
         List<GenericValue> invoiceItems = null;
@@ -407,7 +406,7 @@ public final class InvoiceWorker {
             throw new IllegalArgumentException("Null delegator is not allowed in this method");
         }
 
-        BigDecimal invoiceApplied = ZERO;
+        BigDecimal invoiceApplied = BigDecimal.ZERO;
         List<GenericValue> paymentApplications = null;
 
         // lookup payment applications which took place before the asOfDateTime for this invoice
@@ -488,7 +487,7 @@ public final class InvoiceWorker {
      * @return the applied total as BigDecimal
      */
     public static BigDecimal getInvoiceItemApplied(GenericValue invoiceItem) {
-        BigDecimal invoiceItemApplied = ZERO;
+        BigDecimal invoiceItemApplied = BigDecimal.ZERO;
         List<GenericValue> paymentApplications = null;
         try {
             paymentApplications = invoiceItem.getRelated("PaymentApplication", null, null, false);
@@ -530,7 +529,7 @@ public final class InvoiceWorker {
             if (UtilValidate.isNotEmpty(acctgTransEntries)) {
                 GenericValue acctgTransEntry = (acctgTransEntries.get(0)).getRelated("AcctgTransEntry", null, null, false).get(0);
                 BigDecimal origAmount = acctgTransEntry.getBigDecimal("origAmount");
-                if (origAmount.compareTo(ZERO) == 1) {
+                if (origAmount.compareTo(BigDecimal.ZERO) == 1) {
                     conversionRate = acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"), new MathContext(100)).setScale(decimals,rounding);
                 }
             }
@@ -591,7 +590,7 @@ public final class InvoiceWorker {
      */
     @Deprecated
     public static Map<String, Object> getInvoiceTaxByTaxAuthGeoAndParty(GenericValue invoice) {
-        BigDecimal taxGrandTotal = ZERO;
+        BigDecimal taxGrandTotal = BigDecimal.ZERO;
         List<Map<String, Object>> taxByTaxAuthGeoAndPartyList = new LinkedList<>();
         List<GenericValue> invoiceItems = null;
         if (invoice != null) {
@@ -623,16 +622,16 @@ public final class InvoiceWorker {
                         //get all records for invoices filtered by taxAuthGeoId and taxAurhPartyId
                         List<GenericValue> invoiceItemsByTaxAuthGeoAndPartyIds = EntityUtil.filterByAnd(invoiceItems, UtilMisc.toMap("taxAuthGeoId", taxAuthGeoId, "taxAuthPartyId", taxAuthPartyId));
                         if (UtilValidate.isNotEmpty(invoiceItemsByTaxAuthGeoAndPartyIds)) {
-                            BigDecimal totalAmount = ZERO;
+                            BigDecimal totalAmount = BigDecimal.ZERO;
                             //Now for each invoiceItem record get and add amount.
                             for (GenericValue invoiceItem : invoiceItemsByTaxAuthGeoAndPartyIds) {
                                 BigDecimal amount = invoiceItem.getBigDecimal("amount");
                                 if (amount == null) {
-                                    amount = ZERO;
+                                    amount = BigDecimal.ZERO;
                                 }
                                 totalAmount = totalAmount.add(amount).setScale(taxDecimals, taxRounding);
                             }
-                            totalAmount = totalAmount.setScale(UtilNumber.getBigDecimalScale("salestax.calc.decimals"), UtilNumber.getBigDecimalRoundingMode("salestax.rounding"));
+                            totalAmount = totalAmount.setScale(UtilNumber.getBigDecimalScale("salestax.calc.decimals"), UtilNumber.getRoundingMode("salestax.rounding"));
                             taxByTaxAuthGeoAndPartyList.add(UtilMisc.<String, Object>toMap("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, "totalAmount", totalAmount));
                             taxGrandTotal = taxGrandTotal.add(totalAmount);
                         }
@@ -737,13 +736,13 @@ public final class InvoiceWorker {
      */
     private static BigDecimal getTaxTotalForInvoiceItems(List<GenericValue> taxInvoiceItems) {
         if (taxInvoiceItems == null) {
-            return ZERO;
+            return BigDecimal.ZERO;
         }
-        BigDecimal taxTotal = ZERO;
+        BigDecimal taxTotal = BigDecimal.ZERO;
         for (GenericValue taxInvoiceItem : taxInvoiceItems) {
             BigDecimal amount = taxInvoiceItem.getBigDecimal("amount");
             if (amount == null) {
-                amount = ZERO;
+                amount = BigDecimal.ZERO;
             }
             BigDecimal quantity = taxInvoiceItem.getBigDecimal("quantity");
             if (quantity == null) {

Modified: ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/BillingAccountWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/BillingAccountWorker.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/BillingAccountWorker.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/BillingAccountWorker.java Tue Feb 13 12:47:11 2018
@@ -20,10 +20,10 @@ package org.apache.ofbiz.accounting.paym
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
@@ -54,18 +54,9 @@ public class BillingAccountWorker {
 
     public static final String module = BillingAccountWorker.class.getName();
     public static final String resourceError = "AccountingUiLabels";
-    private static BigDecimal ZERO = BigDecimal.ZERO;
-    private static int decimals = -1;
-    private static int rounding = -1;
-    static {
-        decimals = UtilNumber.getBigDecimalScale("order.decimals");
-        rounding = UtilNumber.getBigDecimalRoundingMode("order.rounding");
-
-        // set zero to the proper scale
-        if (decimals != -1) {
-            ZERO = ZERO.setScale(decimals);
-        }
-    }
+    public static final int decimals = UtilNumber.getBigDecimalScale("order.decimals");
+    public static final RoundingMode rounding = UtilNumber.getRoundingMode("order.rounding");
+    public static final BigDecimal ZERO = BigDecimal.ZERO.setScale(decimals, rounding);
 
     public static List<Map<String, Object>> makePartyBillingAccountList(GenericValue userLogin, String currencyUomId, String partyId, Delegator delegator, LocalDispatcher dispatcher) throws GeneralException {
         List<Map<String, Object>> billingAccountList = new LinkedList<>();

Modified: ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java Tue Feb 13 12:47:11 2018
@@ -19,6 +19,7 @@
 package org.apache.ofbiz.accounting.payment;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.sql.Timestamp;
 import java.util.Collection;
 import java.util.Date;
@@ -81,23 +82,13 @@ public class PaymentGatewayServices {
     public static final String REFUND_SERVICE_TYPE = "PRDS_PAY_REFUND";
     public static final String CREDIT_SERVICE_TYPE = "PRDS_PAY_CREDIT";
     private static final int TX_TIME = 300;
-    private static BigDecimal ZERO = BigDecimal.ZERO;
-    private static int decimals;
-    private static int rounding;
+    public static final int decimals = UtilNumber.getBigDecimalScale("order.decimals");
+    public static final RoundingMode rounding = UtilNumber.getRoundingMode("order.rounding");
+    public static final BigDecimal ZERO = BigDecimal.ZERO.setScale(decimals, rounding);
     public static final String resource = "AccountingUiLabels";
     public static final String resourceError = "AccountingErrorUiLabels";
     public static final String resourceOrder = "OrderUiLabels";
 
-    static {
-        decimals = UtilNumber.getBigDecimalScale("order.decimals");
-        rounding = UtilNumber.getBigDecimalRoundingMode("order.rounding");
-
-        // set zero to the proper scale
-        if (decimals != -1) {
-            ZERO = ZERO.setScale(decimals);
-        }
-    }
-
     /**
      * Authorizes a single order preference with an option to specify an amount. The result map has the Booleans
      * "errors" and "finished" which notify the user if there were any errors and if the authorization was finished.

Modified: ofbiz/ofbiz-framework/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java Tue Feb 13 12:47:11 2018
@@ -19,6 +19,7 @@
 package org.apache.ofbiz.manufacturing.jobshopmgt;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.sql.Timestamp;
 import java.util.Date;
 import java.util.HashMap;
@@ -69,17 +70,9 @@ public class ProductionRunServices {
     public static final String resourceOrder = "OrderErrorUiLabels";
     public static final String resourceProduct = "ProductUiLabels";    
 
-    private static BigDecimal ZERO = BigDecimal.ZERO;
-    private static BigDecimal ONE = BigDecimal.ONE;
-    private static int decimals = -1;
-    private static int rounding = -1;
-    static {
-        decimals = UtilNumber.getBigDecimalScale("order.decimals");
-        rounding = UtilNumber.getBigDecimalRoundingMode("order.rounding");
-        // set zero to the proper scale
-        ZERO = ZERO.setScale(decimals);
-        ONE = ONE.setScale(decimals);
-    }
+    public static final int decimals = UtilNumber.getBigDecimalScale("order.decimals");
+    public static final RoundingMode rounding = UtilNumber.getRoundingMode("finaccount.rounding");
+    public static final BigDecimal ZERO = BigDecimal.ZERO.setScale(decimals, rounding);
 
     /**
      * Cancels a ProductionRun.

Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderReturnServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderReturnServices.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderReturnServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderReturnServices.java Tue Feb 13 12:47:11 2018
@@ -20,6 +20,7 @@
 package org.apache.ofbiz.order.order;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.sql.Timestamp;
 import java.util.Date;
 import java.util.HashMap;
@@ -74,18 +75,9 @@ public class OrderReturnServices {
     public static final String resourceProduct = "ProductUiLabels";
 
     //  set some BigDecimal properties
-    private static BigDecimal ZERO = BigDecimal.ZERO;
-    private static int decimals = -1;
-    private static int rounding = -1;
-    static {
-        decimals = UtilNumber.getBigDecimalScale("invoice.decimals");
-        rounding = UtilNumber.getBigDecimalRoundingMode("invoice.rounding");
-
-        // set zero to the proper scale
-        if (decimals != -1) {
-            ZERO = ZERO.setScale(decimals);
-        }
-    }
+    public static final int decimals = UtilNumber.getBigDecimalScale("invoice.decimals");
+    public static final RoundingMode rounding = UtilNumber.getRoundingMode("invoice.rounding");
+    public static final BigDecimal ZERO = BigDecimal.ZERO.setScale(decimals, rounding);
 
     // locate the return item's initial inventory item cost
     public static Map<String, Object> getReturnItemInitialCost(DispatchContext dctx, Map<String, ? extends Object> context) {

Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java Tue Feb 13 12:47:11 2018
@@ -94,7 +94,6 @@ public class ShoppingCart implements Ite
     public static final int taxCalcScale = UtilNumber.getBigDecimalScale("salestax.calc.decimals");
     public static final int taxFinalScale = UtilNumber.getBigDecimalScale("salestax.final.decimals");
     public static final RoundingMode taxRounding = UtilNumber.getRoundingMode("salestax.rounding");
-    public static final BigDecimal ZERO = BigDecimal.ZERO;
     public static final MathContext generalRounding = new MathContext(10);
 
 
@@ -2676,7 +2675,7 @@ public class ShoppingCart implements Ite
 
     /** Returns the tax amount from the cart object. */
     public BigDecimal getTotalSalesTax() {
-        BigDecimal totalTax = ZERO;
+        BigDecimal totalTax = BigDecimal.ZERO;
         for (int i = 0; i < shipInfo.size(); i++) {
             CartShipInfo csi = this.getShipInfo(i);
             totalTax = totalTax.add(csi.getTotalTax(this)).setScale(taxCalcScale, taxRounding);
@@ -4858,7 +4857,7 @@ public class ShoppingCart implements Ite
         }
 
         public BigDecimal getTotal() {
-            BigDecimal shipItemTotal = ZERO;
+            BigDecimal shipItemTotal = BigDecimal.ZERO;
             for (CartShipItemInfo info : shipItemInfo.values()) {
                 shipItemTotal = shipItemTotal.add(info.getItemSubTotal());
             }
@@ -4872,7 +4871,7 @@ public class ShoppingCart implements Ite
             public BigDecimal quantity = BigDecimal.ZERO;
 
             public BigDecimal getItemTax(ShoppingCart cart) {
-                BigDecimal itemTax = ZERO;
+                BigDecimal itemTax = BigDecimal.ZERO;
 
                 for (int i = 0; i < itemTaxAdj.size(); i++) {
                     GenericValue v = itemTaxAdj.get(i);
@@ -4968,7 +4967,7 @@ public class ShoppingCart implements Ite
         }
 
         public List<GenericValue> makeOrderPaymentInfos(Delegator delegator, ShoppingCart cart) {
-            BigDecimal maxAmount = ZERO;
+            BigDecimal maxAmount = BigDecimal.ZERO;
             GenericValue valueObj = this.getValueObject(delegator);
             List<GenericValue> values = new LinkedList<>();
             if (valueObj != null) {

Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickServices.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickServices.java Tue Feb 13 12:47:11 2018
@@ -32,8 +32,6 @@ import org.apache.ofbiz.service.ServiceU
 
 public class VerifyPickServices {
 
-    private static BigDecimal ZERO = BigDecimal.ZERO;
-
     public static Map<String, Object> verifySingleItem(DispatchContext dctx, Map<String, ? extends Object> context) {
         Locale locale = (Locale) context.get("locale");
         VerifyPickSession pickSession = (VerifyPickSession) context.get("verifyPickSession");
@@ -70,7 +68,7 @@ public class VerifyPickServices {
                 String quantityStr = quantityMap.get(rowKey);
                 if (UtilValidate.isNotEmpty(quantityStr)) {
                     BigDecimal quantity = new BigDecimal(quantityStr);
-                    if (quantity.compareTo(ZERO) > 0) {
+                    if (quantity.compareTo(BigDecimal.ZERO) > 0) {
                         try {
                             pickSession.createRow(orderId, orderItemSeqId, shipGroupSeqId, productId, originGeoId, quantity, locale);
                         } catch (Exception ex) {

Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickSession.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickSession.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickSession.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/verify/VerifyPickSession.java Tue Feb 13 12:47:11 2018
@@ -56,7 +56,6 @@ public class VerifyPickSession implement
 
     private transient Delegator _delegator = null;
     private transient LocalDispatcher _dispatcher = null;
-    private static BigDecimal ZERO = BigDecimal.ZERO;
 
     public VerifyPickSession() {
     }
@@ -112,7 +111,7 @@ public class VerifyPickSession implement
             BigDecimal qtyRemain = quantity;
 
             for (GenericValue reservation : reservations) {
-                if (qtyRemain.compareTo(ZERO) > 0) {
+                if (qtyRemain.compareTo(BigDecimal.ZERO) > 0) {
                     if (!productId.equals(reservation.getRelatedOne("InventoryItem", false).getString("productId"))) {
                         continue;
                     }
@@ -141,7 +140,7 @@ public class VerifyPickSession implement
                     }
                 }
             }
-            if (qtyRemain.compareTo(ZERO) == 0) {
+            if (qtyRemain.compareTo(BigDecimal.ZERO) == 0) {
                 for (Map.Entry<GenericValue, BigDecimal> entry : reserveQtyMap.entrySet()) {
                     GenericValue reservation = entry.getKey();
                     BigDecimal qty = entry.getValue();
@@ -287,7 +286,7 @@ public class VerifyPickSession implement
     }
 
     public BigDecimal getVerifiedQuantity(String orderId, String orderItemSeqId, String shipGroupSeqId, String productId, String inventoryItemId) {
-        BigDecimal total = ZERO;
+        BigDecimal total = BigDecimal.ZERO;
         for (VerifyPickSessionRow pickRow : this.getPickRows(orderId)) {
             if (orderItemSeqId.equals(pickRow.getOrderItemSeqId()) && shipGroupSeqId.equals(pickRow.getShipGroupSeqId()) && productId.equals(pickRow.getProductId())) {
                 if (inventoryItemId == null || inventoryItemId.equals(pickRow.getInventoryItemId())) {
@@ -340,7 +339,7 @@ public class VerifyPickSession implement
     }
 
     public BigDecimal getReservedQty(String orderId, String orderItemSeqId, String shipGroupSeqId) {
-        BigDecimal reservedQty = ZERO;
+        BigDecimal reservedQty = BigDecimal.ZERO;
         try {
             GenericValue reservation = EntityUtil.getFirst(this.getDelegator().findByAnd("OrderItemAndShipGrpInvResAndItemSum", UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItemSeqId, "shipGroupSeqId", shipGroupSeqId), null, false));
             reservedQty = reservation.getBigDecimal("totQuantityAvailable");
@@ -352,8 +351,8 @@ public class VerifyPickSession implement
 
     protected void checkVerifiedQty(String orderId, Locale locale) throws GeneralException {
 
-        BigDecimal verifiedQty = ZERO;
-        BigDecimal orderedQty = ZERO;
+        BigDecimal verifiedQty = BigDecimal.ZERO;
+        BigDecimal orderedQty = BigDecimal.ZERO;
 
         List<GenericValue> orderItems = this.getDelegator().findByAnd("OrderItem", UtilMisc.toMap("orderId", orderId, "statusId", "ITEM_APPROVED"), null, false);
         for (GenericValue orderItem : orderItems) {

Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageServices.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageServices.java Tue Feb 13 12:47:11 2018
@@ -36,8 +36,6 @@ import org.apache.ofbiz.service.ServiceU
 
 public class WeightPackageServices {
 
-    private static BigDecimal ZERO = BigDecimal.ZERO;
-
     public static Map<String, Object> setPackageInfo(DispatchContext dctx, Map<String, ? extends Object> context) {
         Delegator delegator = dctx.getDelegator();
         WeightPackageSession weightPackageSession = (WeightPackageSession) context.get("weightPackageSession");
@@ -59,13 +57,13 @@ public class WeightPackageServices {
             }
         }
         // Check package weight, it must be greater than ZERO
-        if (UtilValidate.isEmpty(packageWeight) || packageWeight.compareTo(ZERO) <= 0) {
+        if (UtilValidate.isEmpty(packageWeight) || packageWeight.compareTo(BigDecimal.ZERO) <= 0) {
             return ServiceUtil.returnError(UtilProperties.getMessage("ProductErrorUiLabels", "ProductErrorPackageWeightCannotBeNullOrZero", locale));
         }
         try {
             // Checked no of packages, it should not be greater than ordered quantity
             List<GenericValue> orderItems = EntityQuery.use(delegator).from("OrderItem").where("orderId", orderId, "statusId", "ITEM_APPROVED").queryList();
-            BigDecimal orderedItemQty = ZERO;
+            BigDecimal orderedItemQty = BigDecimal.ZERO;
             for (GenericValue orderItem : orderItems) {
                 orderedItemQty = orderedItemQty.add(orderItem.getBigDecimal("quantity"));
             }
@@ -104,7 +102,7 @@ public class WeightPackageServices {
         }
 
         // Check package weight, it must be greater than ZERO
-        if (UtilValidate.isEmpty(packageWeight) || packageWeight.compareTo(ZERO) <= 0) {
+        if (UtilValidate.isEmpty(packageWeight) || packageWeight.compareTo(BigDecimal.ZERO) <= 0) {
             return ServiceUtil.returnError(UtilProperties.getMessage("ProductErrorUiLabels", "ProductErrorPackageWeightCannotBeNullOrZero", locale));
         }
 
@@ -139,7 +137,7 @@ public class WeightPackageServices {
         BigDecimal newEstimatedShippingCost = (BigDecimal) context.get("newEstimatedShippingCost");
 
         if (UtilValidate.isEmpty(newEstimatedShippingCost)) {
-            newEstimatedShippingCost = ZERO;
+            newEstimatedShippingCost = BigDecimal.ZERO;
         }
 
         weightPackageSession.setDimensionUomId(dimensionUomId);

Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageSession.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageSession.java?rev=1824127&r1=1824126&r2=1824127&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageSession.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/shipment/weightPackage/WeightPackageSession.java Tue Feb 13 12:47:11 2018
@@ -67,7 +67,6 @@ public class WeightPackageSession implem
 
     private transient Delegator _delegator = null;
     private transient LocalDispatcher _dispatcher = null;
-    private static BigDecimal ZERO = BigDecimal.ZERO;
     private static RoundingMode rounding = UtilNumber.getRoundingMode("invoice.rounding");
 
     public WeightPackageSession() {
@@ -204,7 +203,7 @@ public class WeightPackageSession implem
     }
 
     public BigDecimal getShippableWeight(String orderId) {
-        BigDecimal shippableWeight = ZERO;
+        BigDecimal shippableWeight = BigDecimal.ZERO;
         for (WeightPackageSessionLine packedLine : this.getPackedLines(orderId)) {
             shippableWeight = shippableWeight.add(packedLine.getPackageWeight());
         }
@@ -352,7 +351,7 @@ public class WeightPackageSession implem
 
     protected BigDecimal upsShipmentConfirm() throws GeneralException {
         Delegator delegator = this.getDelegator();
-        BigDecimal actualCost = ZERO;
+        BigDecimal actualCost = BigDecimal.ZERO;
         List<GenericValue> shipmentRouteSegments = EntityQuery.use(delegator).from("ShipmentRouteSegment").where("shipmentId", shipmentId).queryList();
         if (UtilValidate.isNotEmpty(shipmentRouteSegments)) {
             for (GenericValue shipmentRouteSegment : shipmentRouteSegments) {
@@ -391,7 +390,7 @@ public class WeightPackageSession implem
         BigDecimal estimatedShipCost = this.getEstimatedShipCost();
         BigDecimal doEstimates = new BigDecimal(UtilProperties.getPropertyValue("shipment", "shipment.default.cost_actual_over_estimated_percent_allowed", "10"));
         BigDecimal diffInShipCostInPerc;
-        if (estimatedShipCost.compareTo(ZERO) == 0) {
+        if (estimatedShipCost.compareTo(BigDecimal.ZERO) == 0) {
             diffInShipCostInPerc = actualShippingCost;
         } else {
             diffInShipCostInPerc = (((actualShippingCost.subtract(estimatedShipCost)).divide(estimatedShipCost, 2, rounding)).multiply(new BigDecimal(100))).abs();
@@ -498,7 +497,7 @@ public class WeightPackageSession implem
     }
 
     public BigDecimal getShipmentCostEstimate(String shippingContactMechId, String shipmentMethodTypeId, String carrierPartyId, String carrierRoleTypeId, String orderId, String productStoreId, List<GenericValue> shippableItemInfo, BigDecimal shippableTotal, BigDecimal shippableWeight, BigDecimal shippableQuantity) {
-        BigDecimal shipmentCostEstimate = ZERO;
+        BigDecimal shipmentCostEstimate = BigDecimal.ZERO;
         Map<String, Object> shipCostEstimateResult = null;
         try {
             Map<String, Object> shipCostEstimateMap = new HashMap<String, Object>();
@@ -541,7 +540,7 @@ public class WeightPackageSession implem
     }
 
     protected Integer getOrderedQuantity(String orderId) {
-        BigDecimal orderedQuantity = ZERO;
+        BigDecimal orderedQuantity = BigDecimal.ZERO;
         try {
             List<GenericValue> orderItems = getDelegator().findByAnd("OrderItem", UtilMisc.toMap("orderId", orderId, "statusId", "ITEM_APPROVED"), null, false);
             for (GenericValue orderItem : orderItems) {