FINERACT-1981: Fix down-payment handling on overpaid loan (Advanced payment allocation loan)
This commit is contained in:
+3
-1
@@ -82,7 +82,9 @@ public class DefaultLoanLifecycleStateMachine implements LoanLifecycleStateMachi
|
||||
}
|
||||
break;
|
||||
case LOAN_DISBURSED:
|
||||
if (anyOfAllowedWhenComingFrom(from, LoanStatus.APPROVED, LoanStatus.CLOSED_OBLIGATIONS_MET, LoanStatus.OVERPAID)) {
|
||||
if (anyOfAllowedWhenComingFrom(from, LoanStatus.APPROVED, LoanStatus.CLOSED_OBLIGATIONS_MET)) {
|
||||
newState = activeTransition();
|
||||
} else if (from.isOverpaid() && loan.getTotalOverpaidAsMoney().isZero()) {
|
||||
newState = activeTransition();
|
||||
}
|
||||
break;
|
||||
|
||||
+1
-1
@@ -535,7 +535,7 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService {
|
||||
final List<Long> existingReversedTransactionIds = new ArrayList<>();
|
||||
final Money amount = Money.of(loan.getCurrency(), transactionAmount);
|
||||
LoanTransaction disbursementTransaction = LoanTransaction.disbursement(loan.getOffice(), amount, paymentDetail, transactionDate,
|
||||
txnExternalId);
|
||||
txnExternalId, loan.getTotalOverpaidAsMoney());
|
||||
|
||||
// Subtract Previous loan outstanding balance from netDisbursalAmount
|
||||
loan.deductFromNetDisbursalAmount(transactionAmount);
|
||||
|
||||
+2
-2
@@ -436,7 +436,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
||||
existingTransactionIds.addAll(loan.findExistingTransactionIds());
|
||||
existingReversedTransactionIds.addAll(loan.findExistingReversedTransactionIds());
|
||||
disbursementTransaction = LoanTransaction.disbursement(loan.getOffice(), amountToDisburse, paymentDetail,
|
||||
actualDisbursementDate, txnExternalId);
|
||||
actualDisbursementDate, txnExternalId, loan.getTotalOverpaidAsMoney());
|
||||
disbursementTransaction.updateLoan(loan);
|
||||
loan.addLoanTransaction(disbursementTransaction);
|
||||
}
|
||||
@@ -752,7 +752,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
||||
existingTransactionIds.addAll(loan.findExistingTransactionIds());
|
||||
existingReversedTransactionIds.addAll(loan.findExistingReversedTransactionIds());
|
||||
LoanTransaction disbursementTransaction = LoanTransaction.disbursement(loan.getOffice(), disburseAmount, paymentDetail,
|
||||
actualDisbursementDate, txnExternalId);
|
||||
actualDisbursementDate, txnExternalId, loan.getTotalOverpaidAsMoney());
|
||||
disbursementTransaction.updateLoan(loan);
|
||||
loan.addLoanTransaction(disbursementTransaction);
|
||||
businessEventNotifierService
|
||||
|
||||
Reference in New Issue
Block a user