FINERACT-2081: Payments after loan charge - COB accrual
This commit is contained in:
committed by
Adam Saghy
parent
889fc8d2cb
commit
e94ce7f1df
+1
-1
@@ -838,7 +838,7 @@ public class LoanAccrualsProcessingServiceImpl implements LoanAccrualsProcessing
|
||||
if (!loan.isChargedOff()) {
|
||||
List<LoanRepaymentScheduleInstallment> installments = loan.getRepaymentScheduleInstallments();
|
||||
boolean isBasedOnSubmittedOnDate = configurationDomainService.getAccrualDateConfigForCharge()
|
||||
.equalsIgnoreCase("submitted-date");
|
||||
.equalsIgnoreCase(ACCRUAL_ON_CHARGE_SUBMITTED_ON_DATE);
|
||||
for (LoanRepaymentScheduleInstallment installment : installments) {
|
||||
checkAndUpdateAccrualsForInstallment(loan, accruals, installments, isBasedOnSubmittedOnDate, installment);
|
||||
}
|
||||
|
||||
-18
@@ -1006,7 +1006,6 @@ public class LoanChargeWritePlatformServiceImpl implements LoanChargeWritePlatfo
|
||||
}
|
||||
|
||||
private boolean addCharge(final Loan loan, final Charge chargeDefinition, LoanCharge loanCharge) {
|
||||
|
||||
if (!loan.hasCurrencyCodeOf(chargeDefinition.getCurrencyCode())) {
|
||||
final String errorMessage = "Charge and Loan must have the same currency.";
|
||||
throw new InvalidCurrencyException("loanCharge", "attach.to.loan", errorMessage);
|
||||
@@ -1021,24 +1020,7 @@ public class LoanChargeWritePlatformServiceImpl implements LoanChargeWritePlatfo
|
||||
}
|
||||
}
|
||||
|
||||
if (!loan.isInterestBearing() && loanCharge.isSpecifiedDueDate()) {
|
||||
LoanRepaymentScheduleInstallment latestRepaymentScheduleInstalment = loan.getRepaymentScheduleInstallments()
|
||||
.get(loan.getLoanRepaymentScheduleInstallmentsSize() - 1);
|
||||
if (DateUtils.isAfter(loanCharge.getDueDate(), latestRepaymentScheduleInstalment.getDueDate())) {
|
||||
if (latestRepaymentScheduleInstalment.isAdditional()) {
|
||||
latestRepaymentScheduleInstalment.updateDueDate(loanCharge.getDueDate());
|
||||
} else {
|
||||
final LoanRepaymentScheduleInstallment installment = new LoanRepaymentScheduleInstallment(loan,
|
||||
(loan.getLoanRepaymentScheduleInstallmentsSize() + 1), latestRepaymentScheduleInstalment.getDueDate(),
|
||||
loanCharge.getDueDate(), BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, false, null);
|
||||
installment.markAsAdditional();
|
||||
loan.addLoanRepaymentScheduleInstallment(installment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
loan.addLoanCharge(loanCharge);
|
||||
|
||||
loanCharge = this.loanChargeRepository.saveAndFlush(loanCharge);
|
||||
|
||||
// we want to apply charge transactions only for those loans charges that are applied when a loan is active and
|
||||
|
||||
Reference in New Issue
Block a user