|
21 | 21 | import jakarta.persistence.FlushModeType; |
22 | 22 | import java.math.BigDecimal; |
23 | 23 | import java.time.LocalDate; |
| 24 | +import java.util.ArrayList; |
24 | 25 | import java.util.List; |
25 | 26 | import lombok.RequiredArgsConstructor; |
26 | 27 | import org.apache.fineract.infrastructure.core.persistence.FlushModeHandler; |
|
35 | 36 | import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment; |
36 | 37 | import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleProcessingWrapper; |
37 | 38 | import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction; |
| 39 | +import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionComparator; |
38 | 40 | import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository; |
39 | 41 | import org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType; |
40 | 42 | import org.springframework.stereotype.Service; |
@@ -129,7 +131,14 @@ private Money calculateTotalRecoveredPayments(Loan loan) { |
129 | 131 |
|
130 | 132 | public void updateLoanOutstandingBalances(Loan loan) { |
131 | 133 | 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 | + |
133 | 142 | for (LoanTransaction loanTransaction : loanTransactions) { |
134 | 143 | if (loanTransaction.isDisbursement() || loanTransaction.isIncomePosting() || loanTransaction.isCapitalizedIncome()) { |
135 | 144 | outstanding = outstanding.plus(loanTransaction.getAmount(loan.getCurrency())) |
|
0 commit comments