diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/CalculateChargesHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/CalculateChargesHandler.java index 76ff75a..41f2520 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/CalculateChargesHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/CalculateChargesHandler.java @@ -98,14 +98,14 @@ public class CalculateChargesHandler implements HandlerInterface { chargeAmount = charge.getFlat(); }else { BigDecimal fraction = charge.getPercentageRate().divide( - new BigDecimal(100), 4, RoundingMode.CEILING); + new BigDecimal(100), 4, RoundingMode.HALF_EVEN); chargeAmount = amountToCharge.multiply(fraction) - .setScale(2, RoundingMode.CEILING); + .setScale(2, RoundingMode.HALF_EVEN); // if it's a composite charge then add the flat component as well if(charge.isComposite()) { chargeAmount = chargeAmount.add(charge.getFlat()) - .setScale(2, RoundingMode.CEILING); + .setScale(2, RoundingMode.HALF_EVEN); } } diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchaseInvoiceHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchaseInvoiceHandler.java index 04d605b..814b6eb 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchaseInvoiceHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchaseInvoiceHandler.java @@ -119,9 +119,9 @@ public class PurchaseInvoiceHandler implements HandlerInterface { Provider provider = providerService.getProviderRepository() .findByClientId(transaction.getBillClientId()); BigDecimal commissionPercentage = BigDecimal.valueOf(provider.getPercentageCommission()) - .divide(BigDecimal.valueOf(100), 2, RoundingMode.CEILING); + .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_EVEN); BigDecimal commission = transaction.getAmount().multiply(commissionPercentage) - .setScale(2, RoundingMode.CEILING); + .setScale(2, RoundingMode.HALF_EVEN); BigDecimal amount = transaction.getAmount().subtract(commission); PurchaseTaxDto purchaseTaxDto = PurchaseTaxDto.builder() diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchasePaymentEntryHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchasePaymentEntryHandler.java index bf066e9..e9266e8 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchasePaymentEntryHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/erp/PurchasePaymentEntryHandler.java @@ -110,9 +110,9 @@ public class PurchasePaymentEntryHandler implements HandlerInterface { Provider provider = providerService.getProviderRepository() .findByClientId(transaction.getBillClientId()); BigDecimal commissionPercentage = BigDecimal.valueOf(provider.getPercentageCommission()) - .divide(BigDecimal.valueOf(100), 2, RoundingMode.CEILING); + .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_EVEN); BigDecimal commission = transaction.getAmount().multiply(commissionPercentage) - .setScale(2, RoundingMode.CEILING); + .setScale(2, RoundingMode.HALF_EVEN); BigDecimal amount = transaction.getAmount().subtract(commission); PaymentReferenceDto paymentReferenceDto = PaymentReferenceDto.builder()