Skip to content

Commit 2d54a58

Browse files
committed
FINERACT-2354: Re-aging: -Interest Handling Option: Equal amortization
Refactor and code cleanup Loan's isReage() & getReAgeInterestHandlingType()
1 parent 8a0decd commit 2d54a58

File tree

2 files changed

+6
-11
lines changed
  • fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain
  • fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/reaging

2 files changed

+6
-11
lines changed

fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1825,17 +1825,12 @@ public boolean hasContractTerminationTransaction() {
18251825
return getLoanTransactions().stream().anyMatch(t -> t.isContractTermination() && t.isNotReversed());
18261826
}
18271827

1828-
public boolean isReAged() {
1829-
return getRepaymentScheduleInstallments().stream().anyMatch(LoanRepaymentScheduleInstallment::isReAged);
1830-
}
1831-
18321828
public LoanReAgeInterestHandlingType getReAgeInterestHandlingType() {
1833-
if (isReAged()) {
1834-
// todo use transaction service
1835-
return loanTransactions.stream().filter(LoanTransaction::isNotReversed).filter(LoanTransaction::isReAge).findFirst()
1836-
.orElseThrow().getLoanReAgeParameter().getInterestHandlingType();
1837-
}
1838-
return null;
1829+
Optional<LoanTransaction> lastReAgeTransaction = loanTransactions.stream()//
1830+
.filter(LoanTransaction::isNotReversed)//
1831+
.filter(LoanTransaction::isReAge)//
1832+
.findFirst();//
1833+
return lastReAgeTransaction.map(loanTransaction -> loanTransaction.getLoanReAgeParameter().getInterestHandlingType()).orElse(null);
18391834
}
18401835

18411836
public boolean hasReAgingTransaction() {

fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/reaging/LoanReAgingServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public CommandProcessingResult reAge(Long loanId, JsonCommand command) {
9595
if (reAgeTransaction.getTransactionDate().isBefore(reAgeTransaction.getSubmittedOnDate())
9696
|| loan.isInterestBearingAndInterestRecalculationEnabled()) {
9797
if (loan.isProgressiveSchedule() && ((loan.hasChargeOffTransaction() && loan.hasAccelerateChargeOffStrategy())
98-
|| loan.hasContractTerminationTransaction() || loan.isReAged())) {
98+
|| loan.hasContractTerminationTransaction() || loan.hasReAgingTransaction())) {
9999
final ScheduleGeneratorDTO scheduleGeneratorDTO = loanUtilService.buildScheduleGeneratorDTO(loan, null);
100100
loanScheduleService.regenerateRepaymentSchedule(loan, scheduleGeneratorDTO);
101101
}

0 commit comments

Comments
 (0)