FINERACT-2024: Fix Overpayment portion miscalculated in CBR reverse-replay
This commit is contained in:
+3
-1
@@ -3867,7 +3867,9 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
|
||||
if (loanTransaction.isRefund() || loanTransaction.isRefundForActiveLoan()) {
|
||||
totalPaidInRepayments = totalPaidInRepayments.minus(loanTransaction.getAmount(currency));
|
||||
} else if (loanTransaction.isCreditBalanceRefund() || loanTransaction.isChargeback()) {
|
||||
totalPaidInRepayments = totalPaidInRepayments.minus(loanTransaction.getOverPaymentPortion(currency));
|
||||
if (loanTransaction.getPrincipalPortion(currency).isZero()) {
|
||||
totalPaidInRepayments = totalPaidInRepayments.minus(loanTransaction.getOverPaymentPortion(currency));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -227,7 +227,8 @@ public abstract class AbstractLoanRepaymentScheduleTransactionProcessor implemen
|
||||
onLoanOverpayment(loanTransaction, transactionAmountUnprocessed);
|
||||
loanTransaction.setOverPayments(transactionAmountUnprocessed);
|
||||
}
|
||||
ctx.getOverpaymentHolder().setMoneyObject(transactionAmountUnprocessed);
|
||||
ctx.getOverpaymentHolder()
|
||||
.setMoneyObject(ctx.getOverpaymentHolder().getMoneyObject().add(transactionAmountUnprocessed));
|
||||
} else {
|
||||
ctx.getOverpaymentHolder().setMoneyObject(Money.zero(ctx.getCurrency()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user