This is an automated email from the ASF dual-hosted git repository.
surajk pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git The following commit(s) were added to refs/heads/trunk by this push: new e797845 Improved: Changed decimals, rounding, zero static variables names as per best practices in accounting component. (#202) e797845 is described below commit e797845dda3141206aaebe0d48c662fd4908c16c Author: Suraj Khurana <[hidden email]> AuthorDate: Sat Jun 13 15:01:11 2020 +0530 Improved: Changed decimals, rounding, zero static variables names as per best practices in accounting component. (#202) (OFBIZ-11804) Also make them private data members of the class. --- .../accounting/agreement/AgreementServices.java | 10 ++--- .../ofbiz/accounting/invoice/InvoiceServices.java | 24 ++++++------ .../ofbiz/accounting/invoice/InvoiceWorker.java | 32 ++++++++-------- .../accounting/payment/PaymentGatewayServices.java | 44 +++++++++++----------- .../ofbiz/accounting/payment/PaymentWorker.java | 18 ++++----- .../ofbiz/accounting/tax/TaxAuthorityServices.java | 31 +++++++-------- 6 files changed, 82 insertions(+), 77 deletions(-) diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java index 4375f30..26ca8c9 100644 --- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java +++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/agreement/AgreementServices.java @@ -46,9 +46,9 @@ public class AgreementServices { private static final String MODULE = AgreementServices.class.getName(); // set some BigDecimal properties - 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); + private static final int DECIMALS = UtilNumber.getBigDecimalScale("finaccount.decimals"); + private static final RoundingMode ROUNDING = UtilNumber.getRoundingMode("finaccount.rounding"); + private static final BigDecimal ZERO = BigDecimal.ZERO.setScale(DECIMALS, ROUNDING); /** * Determines commission receiving parties and amounts for the provided product, price, and quantity @@ -124,7 +124,7 @@ public class AgreementServices { commission = commission.add(termValue); } else if ("FIN_COMM_VARIABLE".equals(termTypeId)) { // if variable percentage commission, need to divide by 100, because 5% is stored as termValue of 5.0 - commission = commission.add(termValue.multiply(amount).divide(new BigDecimal("100"), 12, rounding)); + commission = commission.add(termValue.multiply(amount).divide(new BigDecimal("100"), 12, ROUNDING)); } else if ("FIN_COMM_MIN".equals(termTypeId)) { min = termValue; } else if ("FIN_COMM_MAX".equals(termTypeId)) { @@ -150,7 +150,7 @@ public class AgreementServices { if (commission.compareTo(max) > 0) commission = max; commission = negative ? commission.negate() : commission; - commission = commission.setScale(decimals, rounding); + commission = commission.setScale(DECIMALS, ROUNDING); Map<String, Object> partyCommissionResult = UtilMisc.toMap( "partyIdFrom", agreementItem.getString("partyIdFrom"), diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java index dbeb4ea..f7eaa39 100644 --- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java +++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceServices.java @@ -2712,7 +2712,7 @@ public class InvoiceServices { "AccountingPaymentRecordNotFound", UtilMisc.toMap("paymentId", paymentId), locale)); return ServiceUtil.returnError(errorMessageList); } - paymentApplyAvailable = payment.getBigDecimal("amount").subtract(PaymentWorker.getPaymentApplied(payment)).setScale(DECIMALS,ROUNDING); + paymentApplyAvailable = payment.getBigDecimal("amount").subtract(PaymentWorker.getPaymentApplied(payment)).setScale(DECIMALS, ROUNDING); if ("PMNT_CANCELLED".equals(payment.getString("statusId"))) { errorMessageList.add(UtilProperties.getMessage(RESOURCE, @@ -2741,7 +2741,7 @@ public class InvoiceServices { "AccountingPaymentRecordNotFound", UtilMisc.toMap("paymentId", toPaymentId), locale)); return ServiceUtil.returnError(errorMessageList); } - toPaymentApplyAvailable = toPayment.getBigDecimal("amount").subtract(PaymentWorker.getPaymentApplied(toPayment)).setScale(DECIMALS,ROUNDING); + toPaymentApplyAvailable = toPayment.getBigDecimal("amount").subtract(PaymentWorker.getPaymentApplied(toPayment)).setScale(DECIMALS, ROUNDING); if ("PMNT_CANCELLED".equals(toPayment.getString("statusId"))) { errorMessageList.add(UtilProperties.getMessage(RESOURCE, @@ -2867,7 +2867,7 @@ public class InvoiceServices { errorMessageList.add("actual currency on payment (" + currencyUomId + ") not the same as original invoice currency (" + invoice.getString("currencyUomId") + ")"); } } - paymentApplyAvailable = payment.getBigDecimal("actualCurrencyAmount").subtract(PaymentWorker.getPaymentApplied(payment)).setScale(DECIMALS,ROUNDING); + paymentApplyAvailable = payment.getBigDecimal("actualCurrencyAmount").subtract(PaymentWorker.getPaymentApplied(payment)).setScale(DECIMALS, ROUNDING); } // check if the invoice already covered by payments @@ -2932,9 +2932,9 @@ public class InvoiceServices { if (invoiceItem.get("quantity") == null) { quantity = BigDecimal.ONE; } else { - quantity = invoiceItem.getBigDecimal("quantity").setScale(DECIMALS,ROUNDING); + quantity = invoiceItem.getBigDecimal("quantity").setScale(DECIMALS, ROUNDING); } - invoiceItemApplyAvailable = invoiceItem.getBigDecimal("amount").multiply(quantity).setScale(DECIMALS,ROUNDING).subtract(InvoiceWorker.getInvoiceItemApplied(invoiceItem)); + invoiceItemApplyAvailable = invoiceItem.getBigDecimal("amount").multiply(quantity).setScale(DECIMALS, ROUNDING).subtract(InvoiceWorker.getInvoiceItemApplied(invoiceItem)); // check here for too much application if a new record is added if (paymentApplicationId == null && amountApplied.compareTo(invoiceItemApplyAvailable) > 0) { // new record @@ -3278,10 +3278,10 @@ public class InvoiceServices { } BigDecimal itemQuantity = BigDecimal.ONE; if (currentInvoiceItem.get("quantity") != null && currentInvoiceItem.getBigDecimal("quantity").signum() != 0) { - itemQuantity = new BigDecimal(currentInvoiceItem.getString("quantity")).setScale(DECIMALS,ROUNDING); + itemQuantity = new BigDecimal(currentInvoiceItem.getString("quantity")).setScale(DECIMALS, ROUNDING); } - BigDecimal itemAmount = currentInvoiceItem.getBigDecimal("amount").setScale(DECIMALS,ROUNDING); - BigDecimal itemTotal = itemAmount.multiply(itemQuantity).setScale(DECIMALS,ROUNDING); + BigDecimal itemAmount = currentInvoiceItem.getBigDecimal("amount").setScale(DECIMALS, ROUNDING); + BigDecimal itemTotal = itemAmount.multiply(itemQuantity).setScale(DECIMALS, ROUNDING); // get the application(s) already allocated to this // item, if available @@ -3299,9 +3299,9 @@ public class InvoiceServices { Iterator<GenericValue> p = paymentApplications.iterator(); while (p.hasNext()) { paymentApplication = p.next(); - alreadyApplied = alreadyApplied.add(paymentApplication.getBigDecimal("amountApplied").setScale(DECIMALS,ROUNDING)); + alreadyApplied = alreadyApplied.add(paymentApplication.getBigDecimal("amountApplied").setScale(DECIMALS, ROUNDING)); } - tobeApplied = itemTotal.subtract(alreadyApplied).setScale(DECIMALS,ROUNDING); + tobeApplied = itemTotal.subtract(alreadyApplied).setScale(DECIMALS, ROUNDING); } else { // no application connected yet tobeApplied = itemTotal; @@ -3431,7 +3431,7 @@ public class InvoiceServices { if (paymentApplication.get("paymentApplicationId") == null) { // add 2 amounts together checkAppl.set("amountApplied", paymentApplication.getBigDecimal("amountApplied"). - add(checkAppl.getBigDecimal("amountApplied")).setScale(DECIMALS,ROUNDING)); + add(checkAppl.getBigDecimal("amountApplied")).setScale(DECIMALS, ROUNDING)); if (debug) { Debug.logInfo("Update paymentApplication record: " + checkAppl.getString("paymentApplicationId") + " with appliedAmount:" + checkAppl.getBigDecimal("amountApplied"), MODULE); } @@ -3454,7 +3454,7 @@ public class InvoiceServices { } else { // two existing records, an updated one added to the existing one // add 2 amounts together checkAppl.set("amountApplied", paymentApplication.getBigDecimal("amountApplied"). - add(checkAppl.getBigDecimal("amountApplied")).setScale(DECIMALS,ROUNDING)); + add(checkAppl.getBigDecimal("amountApplied")).setScale(DECIMALS, ROUNDING)); // delete paymentApplication record and update the checkAppls one. if (debug) { Debug.logInfo("Delete paymentApplication record: " + paymentApplication.getString("paymentApplicationId") + " with appliedAmount:" + paymentApplication.getBigDecimal("amountApplied"), MODULE); diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java index c276f61..8c78fb3 100644 --- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java +++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/invoice/InvoiceWorker.java @@ -55,8 +55,9 @@ import org.apache.ofbiz.service.LocalDispatcher; public final class InvoiceWorker { private static final String MODULE = InvoiceWorker.class.getName(); - private static final int decimals = UtilNumber.getBigDecimalScale("invoice.decimals"); - private static final RoundingMode rounding = UtilNumber.getRoundingMode("invoice.rounding"); + + 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"); private static final RoundingMode taxRounding = UtilNumber.getRoundingMode("salestax.rounding"); @@ -114,7 +115,7 @@ public final class InvoiceWorker { if (amount == null) { amount = BigDecimal.ZERO; } - return quantity.multiply(amount).setScale(decimals, rounding); + return quantity.multiply(amount).setScale(DECIMALS, ROUNDING); } /** @@ -223,12 +224,12 @@ public final class InvoiceWorker { } if (invoiceItems != null) { for (GenericValue invoiceItem : invoiceItems) { - invoiceTotal = invoiceTotal.add(getInvoiceItemTotal(invoiceItem)).setScale(decimals,rounding); + invoiceTotal = invoiceTotal.add(getInvoiceItemTotal(invoiceItem)).setScale(DECIMALS, ROUNDING); } } - invoiceTotal = invoiceTotal.add(invoiceTaxTotal).setScale(decimals, rounding); + invoiceTotal = invoiceTotal.add(invoiceTaxTotal).setScale(DECIMALS, ROUNDING); if (UtilValidate.isNotEmpty(invoiceTotal) && !actualCurrency) { - invoiceTotal = invoiceTotal.multiply(getInvoiceCurrencyConversionRate(invoice)).setScale(decimals,rounding); + invoiceTotal = invoiceTotal.multiply(getInvoiceCurrencyConversionRate(invoice)).setScale(DECIMALS, ROUNDING); } return invoiceTotal; } @@ -499,11 +500,11 @@ public final class InvoiceWorker { } if (paymentApplications != null) { for (GenericValue paymentApplication : paymentApplications) { - invoiceApplied = invoiceApplied.add(paymentApplication.getBigDecimal("amountApplied")).setScale(decimals,rounding); + invoiceApplied = invoiceApplied.add(paymentApplication.getBigDecimal("amountApplied")).setScale(DECIMALS, ROUNDING); } } if (UtilValidate.isNotEmpty(invoiceApplied) && !actualCurrency) { - invoiceApplied = invoiceApplied.multiply(getInvoiceCurrencyConversionRate(delegator, invoiceId)).setScale(decimals,rounding); + invoiceApplied = invoiceApplied.multiply(getInvoiceCurrencyConversionRate(delegator, invoiceId)).setScale(DECIMALS, ROUNDING); } return invoiceApplied; } @@ -569,7 +570,7 @@ public final class InvoiceWorker { } if (paymentApplications != null) { for (GenericValue paymentApplication : paymentApplications) { - invoiceItemApplied = invoiceItemApplied.add(paymentApplication.getBigDecimal("amountApplied")).setScale(decimals,rounding); + invoiceItemApplied = invoiceItemApplied.add(paymentApplication.getBigDecimal("amountApplied")).setScale(DECIMALS, ROUNDING); } } return invoiceItemApplied; @@ -603,7 +604,7 @@ public final class InvoiceWorker { GenericValue acctgTransEntry = (acctgTransEntries.get(0)).getRelated("AcctgTransEntry", null, null, false).get(0); BigDecimal origAmount = acctgTransEntry.getBigDecimal("origAmount"); if (origAmount.compareTo(BigDecimal.ZERO) == 1) { - conversionRate = acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"), new MathContext(100)).setScale(decimals,rounding); + conversionRate = acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"), new MathContext(100)).setScale(DECIMALS, ROUNDING); } } // check if a payment is applied and use the currency conversion from there @@ -613,9 +614,10 @@ public final class InvoiceWorker { GenericValue payment = paymentAppl.getRelatedOne("Payment", false); if (UtilValidate.isNotEmpty(payment.getBigDecimal("actualCurrencyAmount"))) { if (UtilValidate.isEmpty(conversionRate)) { - conversionRate = payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new MathContext(100)).setScale(decimals,rounding); + conversionRate = payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new MathContext(100)).setScale(DECIMALS, ROUNDING); } else { - conversionRate = conversionRate.add(payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new MathContext(100))).divide(new BigDecimal("2"),new MathContext(100)).setScale(decimals,rounding); + conversionRate = conversionRate.add(payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"), + new MathContext(100))).divide(new BigDecimal("2"),new MathContext(100)).setScale(DECIMALS, ROUNDING); } } } @@ -624,7 +626,7 @@ public final class InvoiceWorker { if (UtilValidate.isEmpty(conversionRate)) { GenericValue rate = EntityQuery.use(delegator).from("UomConversionDated").where("uomIdTo", invoice.get("currencyUomId"), "uomId", otherCurrencyUomId).filterByDate(invoice.getTimestamp("invoiceDate")).queryFirst(); if (rate != null) { - conversionRate = BigDecimal.ONE.divide(rate.getBigDecimal("conversionFactor"), new MathContext(100)).setScale(decimals,rounding); + conversionRate = BigDecimal.ONE.divide(rate.getBigDecimal("conversionFactor"), new MathContext(100)).setScale(DECIMALS, ROUNDING); } else { Debug.logError("Could not find conversionrate for invoice: " + invoice.getString("invoiceId"), MODULE); return new BigDecimal("1"); @@ -704,7 +706,7 @@ public final class InvoiceWorker { } totalAmount = totalAmount.add(amount).setScale(taxDecimals, taxRounding); } - totalAmount = totalAmount.setScale(UtilNumber.getBigDecimalScale("salestax.calc.decimals"), UtilNumber.getRoundingMode("salestax.rounding")); + totalAmount = totalAmount.setScale(taxDecimals, taxRounding); taxByTaxAuthGeoAndPartyList.add(UtilMisc.<String, Object>toMap("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, "totalAmount", totalAmount)); taxGrandTotal = taxGrandTotal.add(totalAmount); } @@ -825,6 +827,6 @@ public final class InvoiceWorker { amount = amount.setScale(taxDecimals, taxRounding); taxTotal = taxTotal.add(amount); } - return taxTotal.setScale(decimals, rounding); + return taxTotal.setScale(DECIMALS, ROUNDING); } } diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java index b88b7e8..71b72c6 100644 --- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java +++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentGatewayServices.java @@ -76,19 +76,21 @@ import com.ibm.icu.util.Calendar; public class PaymentGatewayServices { private static final String MODULE = PaymentGatewayServices.class.getName(); - public static final String AUTH_SERVICE_TYPE = "PRDS_PAY_AUTH"; + private static final String RESOURCE = "AccountingUiLabels"; + private static final String RES_ERROR = "AccountingErrorUiLabels"; + private static final String RES_ORDER = "OrderUiLabels"; + + private static final String AUTH_SERVICE_TYPE = "PRDS_PAY_AUTH"; private static final String REAUTH_SERVICE_TYPE = "PRDS_PAY_REAUTH"; private static final String RELEASE_SERVICE_TYPE = "PRDS_PAY_RELEASE"; private static final String CAPTURE_SERVICE_TYPE = "PRDS_PAY_CAPTURE"; private static final String REFUND_SERVICE_TYPE = "PRDS_PAY_REFUND"; private static final String CREDIT_SERVICE_TYPE = "PRDS_PAY_CREDIT"; private static final int TX_TIME = 300; - 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); - private static final String RESOURCE = "AccountingUiLabels"; - private static final String RES_ERROR = "AccountingErrorUiLabels"; - private static final String RES_ORDER = "OrderUiLabels"; + + private static final int DECIMALS = UtilNumber.getBigDecimalScale("order.decimals"); + private static final RoundingMode ROUNDING = UtilNumber.getRoundingMode("order.rounding"); + private static final BigDecimal ZERO = BigDecimal.ZERO.setScale(DECIMALS, ROUNDING); /** * Authorizes a single order preference with an option to specify an amount. The result map has the Booleans @@ -168,7 +170,7 @@ public class PaymentGatewayServices { } // round this before moving on just in case a funny number made it this far - transAmount = transAmount.setScale(decimals, rounding); + transAmount = transAmount.setScale(DECIMALS, ROUNDING); // if our transaction amount exists and is zero, there's nothing to process, so return if ((transAmount != null) && (transAmount.compareTo(BigDecimal.ZERO) <= 0)) { @@ -525,7 +527,7 @@ public class PaymentGatewayServices { } // format the decimal - processAmount = processAmount.setScale(decimals, rounding); + processAmount = processAmount.setScale(DECIMALS, ROUNDING); if (Debug.verboseOn()) { Debug.logVerbose("Charging amount: " + processAmount, MODULE); @@ -1185,7 +1187,7 @@ public class PaymentGatewayServices { String billingAccountId = (String) context.get("billingAccountId"); BigDecimal amountToCapture = (BigDecimal) context.get("captureAmount"); Locale locale = (Locale) context.get("locale"); - amountToCapture = amountToCapture.setScale(decimals, rounding); + amountToCapture = amountToCapture.setScale(DECIMALS, ROUNDING); // get the order header and payment preferences GenericValue orderHeader = null; @@ -1220,9 +1222,9 @@ public class PaymentGatewayServices { // amount that we are going to capture. OrderReadHelper orh = new OrderReadHelper(orderHeader); BigDecimal orderGrandTotal = orh.getOrderGrandTotal(); - orderGrandTotal = orderGrandTotal.setScale(decimals, rounding); + orderGrandTotal = orderGrandTotal.setScale(DECIMALS, ROUNDING); BigDecimal totalPayments = PaymentWorker.getPaymentsTotal(orh.getOrderPayments()); - totalPayments = totalPayments.setScale(decimals, rounding); + totalPayments = totalPayments.setScale(DECIMALS, ROUNDING); BigDecimal remainingTotal = orderGrandTotal.subtract(totalPayments); if (Debug.infoOn()) { Debug.logInfo("The Remaining Total for order: " + orderId + " is: " + remainingTotal, MODULE); @@ -1242,7 +1244,7 @@ public class PaymentGatewayServices { if (authAmount == null) { authAmount = ZERO; } - authAmount = authAmount.setScale(decimals, rounding); + authAmount = authAmount.setScale(DECIMALS, ROUNDING); if (authAmount.compareTo(ZERO) == 0) { // nothing to capture @@ -1285,7 +1287,7 @@ public class PaymentGatewayServices { Debug.logInfo("Amount captured for order [" + orderId + "] from unapplied payments associated to billing account [" + billingAccountId + "] is: " + amountCaptured, MODULE); } - amountCaptured = amountCaptured.setScale(decimals, rounding); + amountCaptured = amountCaptured.setScale(DECIMALS, ROUNDING); if (amountCaptured.compareTo(BigDecimal.ZERO) == 0) { continue; @@ -1353,7 +1355,7 @@ public class PaymentGatewayServices { if (authAmount == null) { authAmount = ZERO; } - authAmount = authAmount.setScale(decimals, rounding); + authAmount = authAmount.setScale(DECIMALS, ROUNDING); if (authAmount.compareTo(ZERO) == 0) { // nothing to capture @@ -1394,7 +1396,7 @@ public class PaymentGatewayServices { amountCaptured = (BigDecimal) captureResult.get("processAmount"); } - amountCaptured = amountCaptured.setScale(decimals, rounding); + amountCaptured = amountCaptured.setScale(DECIMALS, ROUNDING); // decrease amount of next payment preference to capture amountToCapture = amountToCapture.subtract(amountCaptured); @@ -1530,7 +1532,7 @@ public class PaymentGatewayServices { String invoiceId = (String) context.get("invoiceId"); String billingAccountId = (String) context.get("billingAccountId"); BigDecimal captureAmount = (BigDecimal) context.get("captureAmount"); - captureAmount = captureAmount.setScale(decimals, rounding); + captureAmount = captureAmount.setScale(DECIMALS, ROUNDING); BigDecimal capturedAmount = BigDecimal.ZERO; try { @@ -1555,7 +1557,7 @@ public class PaymentGatewayServices { // TODO: check the statusId of the payment BigDecimal paymentApplicationAmount = paymentApplication.getBigDecimal("amountApplied"); BigDecimal amountToCapture = paymentApplicationAmount.min(captureAmount.subtract(capturedAmount)); - amountToCapture = amountToCapture.setScale(decimals, rounding); + amountToCapture = amountToCapture.setScale(DECIMALS, ROUNDING); if (amountToCapture.compareTo(paymentApplicationAmount) == 0) { // apply the whole payment application to the invoice paymentApplication.set("invoiceId", invoiceId); @@ -1578,7 +1580,7 @@ public class PaymentGatewayServices { } catch (GenericEntityException ex) { return ServiceUtil.returnError(ex.getMessage()); } - capturedAmount = capturedAmount.setScale(decimals, rounding); + capturedAmount = capturedAmount.setScale(DECIMALS, ROUNDING); Map<String, Object> results = ServiceUtil.returnSuccess(); results.put("captureAmount", capturedAmount); return results; @@ -2054,7 +2056,7 @@ public class PaymentGatewayServices { } // setup the amount big decimal - amount = amount.setScale(decimals, rounding); + amount = amount.setScale(DECIMALS, ROUNDING); result.put("orderPaymentPreference", paymentPreference); result.put("userLogin", userLogin); @@ -2417,7 +2419,7 @@ public class PaymentGatewayServices { // get the creditCard/address/email String payToPartyId = orh.getBillToParty().getString("partyId"); - BigDecimal processAmount = refundAmount.setScale(decimals, rounding); + BigDecimal processAmount = refundAmount.setScale(DECIMALS, ROUNDING); serviceContext.put("refundAmount", processAmount); serviceContext.put("userLogin", userLogin); diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentWorker.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentWorker.java index f5657ad..513fedb 100644 --- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentWorker.java +++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/PaymentWorker.java @@ -49,10 +49,10 @@ import org.apache.ofbiz.entity.util.EntityUtil; public final class PaymentWorker { private static final String MODULE = PaymentWorker.class.getName(); - private static final int decimals = UtilNumber.getBigDecimalScale("invoice.decimals"); - private static final RoundingMode rounding = UtilNumber.getRoundingMode("invoice.rounding"); + private static final int DECIMALS = UtilNumber.getBigDecimalScale("invoice.decimals"); + private static final RoundingMode ROUNDING_MODE = UtilNumber.getRoundingMode("invoice.rounding"); - private PaymentWorker() {} + private PaymentWorker() { } // to be able to use in minilanguage where Boolean cannot be used public static List<Map<String, GenericValue>> getPartyPaymentMethodValueMaps(Delegator delegator, String partyId) { @@ -229,7 +229,7 @@ public final class PaymentWorker { BigDecimal paymentsTotal = BigDecimal.ZERO; for (GenericValue payment : payments) { - paymentsTotal = paymentsTotal.add(payment.getBigDecimal("amount")).setScale(decimals, rounding); + paymentsTotal = paymentsTotal.add(payment.getBigDecimal("amount")).setScale(DECIMALS, ROUNDING_MODE); } return paymentsTotal; } @@ -323,7 +323,7 @@ public final class PaymentWorker { amountApplied = amountApplied.multiply(payment.getBigDecimal("amount")).divide(payment.getBigDecimal("actualCurrencyAmount"),new MathContext(100)); } } - paymentApplied = paymentApplied.add(amountApplied).setScale(decimals,rounding); + paymentApplied = paymentApplied.add(amountApplied).setScale(DECIMALS, ROUNDING_MODE); } } } catch (GenericEntityException e) { @@ -334,16 +334,16 @@ public final class PaymentWorker { public static BigDecimal getPaymentNotApplied(GenericValue payment) { if (payment != null) { - return payment.getBigDecimal("amount").subtract(getPaymentApplied(payment)).setScale(decimals,rounding); + return payment.getBigDecimal("amount").subtract(getPaymentApplied(payment)).setScale(DECIMALS, ROUNDING_MODE); } return BigDecimal.ZERO; } public static BigDecimal getPaymentNotApplied(GenericValue payment, Boolean actual) { if (actual.equals(Boolean.TRUE) && UtilValidate.isNotEmpty(payment.getBigDecimal("actualCurrencyAmount"))) { - return payment.getBigDecimal("actualCurrencyAmount").subtract(getPaymentApplied(payment, actual)).setScale(decimals,rounding); + return payment.getBigDecimal("actualCurrencyAmount").subtract(getPaymentApplied(payment, actual)).setScale(DECIMALS, ROUNDING_MODE); } - return payment.getBigDecimal("amount").subtract(getPaymentApplied(payment)).setScale(decimals,rounding); + return payment.getBigDecimal("amount").subtract(getPaymentApplied(payment)).setScale(DECIMALS, ROUNDING_MODE); } public static BigDecimal getPaymentNotApplied(Delegator delegator, String paymentId) { @@ -365,6 +365,6 @@ public final class PaymentWorker { if (payment == null) { throw new IllegalArgumentException("The paymentId passed does not match an existing payment"); } - return payment.getBigDecimal("amount").subtract(getPaymentApplied(delegator,paymentId, actual)).setScale(decimals,rounding); + return payment.getBigDecimal("amount").subtract(getPaymentApplied(delegator,paymentId, actual)).setScale(DECIMALS, ROUNDING_MODE); } } diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java index d0ee210..f5d88ba 100644 --- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java +++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java @@ -55,14 +55,15 @@ import org.apache.ofbiz.service.ServiceUtil; public class TaxAuthorityServices { private static final String MODULE = TaxAuthorityServices.class.getName(); - public static final BigDecimal ZERO_BASE = BigDecimal.ZERO; - public static final BigDecimal ONE_BASE = BigDecimal.ONE; - public static final BigDecimal PERCENT_SCALE = new BigDecimal("100.000"); - public static final int salestaxFinalDecimals = UtilNumber.getBigDecimalScale("salestax.final.decimals"); - public static final int salestaxCalcDecimals = UtilNumber.getBigDecimalScale("salestax.calc.decimals"); - public static final RoundingMode salestaxRounding = UtilNumber.getRoundingMode("salestax.rounding"); private static final String RESOURCE = "AccountingUiLabels"; + private static final BigDecimal ZERO_BASE = BigDecimal.ZERO; + private static final BigDecimal ONE_BASE = BigDecimal.ONE; + private static final BigDecimal PERCENT_SCALE = new BigDecimal("100.000"); + private static final int TAX_FINAL_SCALE = UtilNumber.getBigDecimalScale("salestax.final.decimals"); + private static final int TAX_SCALE = UtilNumber.getBigDecimalScale("salestax.calc.decimals"); + private static final RoundingMode TAX_ROUNDING = UtilNumber.getRoundingMode("salestax.rounding"); + public static Map<String, Object> rateProductTaxCalcForDisplay(DispatchContext dctx, Map<String, ? extends Object> context) { Delegator delegator = dctx.getDelegator(); String productStoreId = (String) context.get("productStoreId"); @@ -137,10 +138,10 @@ public class TaxAuthorityServices { taxPercentage = taxPercentage.add(taxAdjustment.getBigDecimal("sourcePercentage")); BigDecimal adjAmount = taxAdjustment.getBigDecimal("amount"); taxTotal = taxTotal.add(adjAmount); - priceWithTax = priceWithTax.add(adjAmount.divide(quantity, salestaxCalcDecimals, - salestaxRounding)); + priceWithTax = priceWithTax.add(adjAmount.divide(quantity, TAX_SCALE, + TAX_ROUNDING)); Debug.logInfo("For productId [" + productId + "] added [" + adjAmount.divide(quantity, - salestaxCalcDecimals, salestaxRounding) + "] of tax to price for geoId [" + TAX_SCALE, TAX_ROUNDING) + "] of tax to price for geoId [" + taxAdjustment.getString("taxAuthGeoId") + "], new price is [" + priceWithTax + "]", MODULE); } @@ -153,8 +154,8 @@ public class TaxAuthorityServices { } // round to 2 decimal places for display/etc - taxTotal = taxTotal.setScale(salestaxFinalDecimals, salestaxRounding); - priceWithTax = priceWithTax.setScale(salestaxFinalDecimals, salestaxRounding); + taxTotal = taxTotal.setScale(TAX_FINAL_SCALE, TAX_ROUNDING); + priceWithTax = priceWithTax.setScale(TAX_FINAL_SCALE, TAX_ROUNDING); Map<String, Object> result = ServiceUtil.returnSuccess(); result.put("taxTotal", taxTotal); @@ -273,7 +274,7 @@ public class TaxAuthorityServices { for (GenericValue prod : productWeight.keySet()) { BigDecimal value = productWeight.get(prod); if (totalPrice.compareTo(BigDecimal.ZERO) > 0) { - BigDecimal weight = value.divide(totalPrice, 100, salestaxRounding); + BigDecimal weight = value.divide(totalPrice, 100, TAX_ROUNDING); productWeight.put(prod, weight); } } @@ -462,8 +463,8 @@ public class TaxAuthorityServices { } // taxRate is in percentage, so needs to be divided by 100 - BigDecimal taxAmount = (taxable.multiply(taxRate)).divide(PERCENT_SCALE, salestaxCalcDecimals, - salestaxRounding); + BigDecimal taxAmount = (taxable.multiply(taxRate)).divide(PERCENT_SCALE, TAX_SCALE, + TAX_ROUNDING); String taxAuthGeoId = taxAuthorityRateProduct.getString("taxAuthGeoId"); String taxAuthPartyId = taxAuthorityRateProduct.getString("taxAuthPartyId"); @@ -594,7 +595,7 @@ public class TaxAuthorityServices { BigDecimal price = productPrice.getBigDecimal("price"); BigDecimal baseSubtotal = price.multiply(itemQuantity); BigDecimal baseTaxAmount = (baseSubtotal.multiply(taxRate)).divide(PERCENT_SCALE, - salestaxCalcDecimals, salestaxRounding); + TAX_SCALE, TAX_ROUNDING); // tax is not already in price so we want to add it in, but this is a VAT // situation so adjust to make it as accurate as possible |
Free forum by Nabble | Edit this page |