Skip to content

Commit fed5a69

Browse files
FINERACT-2080 Revert repository query for updateLoanOutstandingBalances
1 parent 9f9b662 commit fed5a69

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanBalanceService.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import jakarta.persistence.FlushModeType;
2222
import java.math.BigDecimal;
2323
import java.time.LocalDate;
24+
import java.util.ArrayList;
2425
import java.util.List;
2526
import lombok.RequiredArgsConstructor;
2627
import org.apache.fineract.infrastructure.core.persistence.FlushModeHandler;
@@ -35,6 +36,7 @@
3536
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
3637
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleProcessingWrapper;
3738
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
39+
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionComparator;
3840
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository;
3941
import org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType;
4042
import org.springframework.stereotype.Service;
@@ -129,7 +131,14 @@ private Money calculateTotalRecoveredPayments(Loan loan) {
129131

130132
public void updateLoanOutstandingBalances(Loan loan) {
131133
Money outstanding = Money.zero(loan.getCurrency());
132-
final List<LoanTransaction> loanTransactions = loanTransactionRepository.findNonReversedMonetaryTransactionsByLoan(loan);
134+
final List<LoanTransaction> loanTransactions = new ArrayList<>();
135+
for (final LoanTransaction transaction : loan.getLoanTransactions()) {
136+
if (transaction.isNotReversed() && !transaction.isNonMonetaryTransaction()) {
137+
loanTransactions.add(transaction);
138+
}
139+
}
140+
loanTransactions.sort(LoanTransactionComparator.INSTANCE);
141+
133142
for (LoanTransaction loanTransaction : loanTransactions) {
134143
if (loanTransaction.isDisbursement() || loanTransaction.isIncomePosting() || loanTransaction.isCapitalizedIncome()) {
135144
outstanding = outstanding.plus(loanTransaction.getAmount(loan.getCurrency()))

0 commit comments

Comments
 (0)