FINERACT-1981: Fix principal due during disbursement on overpaid loan

This commit is contained in:
Adam Saghy
2024-02-13 12:50:42 +01:00
parent 10c314e5d9
commit adea7be214
@@ -547,6 +547,7 @@ public class AdvancedPaymentScheduleTransactionProcessor extends AbstractLoanRep
private void allocateOverpayment(LoanTransaction loanTransaction, MonetaryCurrency currency, private void allocateOverpayment(LoanTransaction loanTransaction, MonetaryCurrency currency,
List<LoanRepaymentScheduleInstallment> installments, MoneyHolder overpaymentHolder) { List<LoanRepaymentScheduleInstallment> installments, MoneyHolder overpaymentHolder) {
if (overpaymentHolder.getMoneyObject().isGreaterThanZero()) {
List<LoanTransactionToRepaymentScheduleMapping> transactionMappings = new ArrayList<>(); List<LoanTransactionToRepaymentScheduleMapping> transactionMappings = new ArrayList<>();
List<LoanPaymentAllocationRule> paymentAllocationRules = loanTransaction.getLoan().getPaymentAllocationRules(); List<LoanPaymentAllocationRule> paymentAllocationRules = loanTransaction.getLoan().getPaymentAllocationRules();
LoanPaymentAllocationRule defaultPaymentAllocationRule = paymentAllocationRules.stream() LoanPaymentAllocationRule defaultPaymentAllocationRule = paymentAllocationRules.stream()
@@ -569,6 +570,7 @@ public class AdvancedPaymentScheduleTransactionProcessor extends AbstractLoanRep
} }
loanTransaction.updateLoanTransactionToRepaymentScheduleMappings(transactionMappings); loanTransaction.updateLoanTransactionToRepaymentScheduleMappings(transactionMappings);
} }
}
private void handleRepayment(LoanTransaction loanTransaction, MonetaryCurrency currency, private void handleRepayment(LoanTransaction loanTransaction, MonetaryCurrency currency,
List<LoanRepaymentScheduleInstallment> installments, Set<LoanCharge> charges, MoneyHolder overpaymentHolder) { List<LoanRepaymentScheduleInstallment> installments, Set<LoanCharge> charges, MoneyHolder overpaymentHolder) {