From 70373eafef54fe4f88d38db1ad221af06835f391 Mon Sep 17 00:00:00 2001 From: Jose Alberto Hernandez Date: Fri, 18 Jul 2025 13:29:37 -0500 Subject: [PATCH] FINERACT-2311: Buy Down Fees template API changes --- ...ccrualBasedAccountingProcessorForLoan.java | 6 ------ .../service/LoanReadPlatformServiceImpl.java | 21 +------------------ .../integrationtests/LoanTransactionTest.java | 2 +- 3 files changed, 2 insertions(+), 27 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java index 481aefdb0..c86305d31 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java @@ -34,14 +34,11 @@ import org.apache.fineract.accounting.journalentry.data.ChargePaymentDTO; import org.apache.fineract.accounting.journalentry.data.GLAccountBalanceHolder; import org.apache.fineract.accounting.journalentry.data.LoanDTO; import org.apache.fineract.accounting.journalentry.data.LoanTransactionDTO; -import org.apache.fineract.accounting.journalentry.domain.JournalEntryRepository; import org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping; import org.apache.fineract.infrastructure.core.service.MathUtil; import org.apache.fineract.organisation.office.domain.Office; import org.apache.fineract.portfolio.PortfolioProductType; import org.apache.fineract.portfolio.loanaccount.data.LoanTransactionEnumData; -import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository; -import org.apache.fineract.portfolio.loanaccount.repository.LoanCapitalizedIncomeBalanceRepository; import org.springframework.stereotype.Component; @Component @@ -50,9 +47,6 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess private final AccountingProcessorHelper helper; private final JournalEntryWritePlatformService journalEntryWritePlatformService; - private final LoanCapitalizedIncomeBalanceRepository loanCapitalizedIncomeBalanceRepository; - private final JournalEntryRepository journalEntryRepository; - private final LoanTransactionRepository loanTransactionRepository; @Override public void createJournalEntriesForLoan(final LoanDTO loanDTO) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java index b956534c2..7d848a64b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java @@ -488,36 +488,17 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService, Loa case CAPITALIZED_INCOME: final Loan loan = loanRepositoryWrapper.findOneWithNotFoundDetection(loanId); BigDecimal capitalizedIncomeBalance = BigDecimal.ZERO; - BigDecimal buyDownFeeBalance = BigDecimal.ZERO; if (loan.getLoanProduct().getLoanProductRelatedDetail().isEnableIncomeCapitalization()) { capitalizedIncomeBalance = loanCapitalizedIncomeBalanceRepository.findAllByLoanId(loanId).stream() .map(LoanCapitalizedIncomeBalance::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); } - // Calculate Buy Down Fee balance to subtract from Capitalized Income formula - buyDownFeeBalance = loanBuyDownFeeBalanceRepository.findAllByLoanId(loanId).stream().map(LoanBuyDownFeeBalance::getAmount) - .reduce(BigDecimal.ZERO, BigDecimal::add); - transactionAmount = loan.getApprovedPrincipal().subtract(loan.getDisbursedAmount()).subtract(capitalizedIncomeBalance) - .subtract(buyDownFeeBalance); + transactionAmount = loan.getApprovedPrincipal().subtract(loan.getDisbursedAmount()).subtract(capitalizedIncomeBalance); paymentOptions = this.paymentTypeReadPlatformService.retrieveAllPaymentTypes(); loanTransactionData = LoanTransactionData.loanTransactionDataForCreditTemplate( LoanEnumerations.transactionType(transactionType), DateUtils.getBusinessLocalDate(), transactionAmount, paymentOptions, retriveLoanCurrencyData(loanId)); break; case BUY_DOWN_FEE: - final Loan buyDownLoan = loanRepositoryWrapper.findOneWithNotFoundDetection(loanId); - BigDecimal buyDownFeeBalanceForCalc = BigDecimal.ZERO; - BigDecimal capitalizedIncomeBalanceForCalc = BigDecimal.ZERO; - - // Calculate existing Buy Down Fee balance - buyDownFeeBalanceForCalc = loanBuyDownFeeBalanceRepository.findAllByLoanId(loanId).stream() - .map(LoanBuyDownFeeBalance::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); - // Calculate Capitalized Income balance to subtract from Buy Down Fee formula - if (buyDownLoan.getLoanProduct().getLoanProductRelatedDetail().isEnableIncomeCapitalization()) { - capitalizedIncomeBalanceForCalc = loanCapitalizedIncomeBalanceRepository.findAllByLoanId(loanId).stream() - .map(LoanCapitalizedIncomeBalance::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); - } - transactionAmount = buyDownLoan.getApprovedPrincipal().subtract(buyDownLoan.getDisbursedAmount()) - .subtract(buyDownFeeBalanceForCalc).subtract(capitalizedIncomeBalanceForCalc); paymentOptions = this.paymentTypeReadPlatformService.retrieveAllPaymentTypes(); loanTransactionData = LoanTransactionData.loanTransactionDataForCreditTemplate( LoanEnumerations.transactionType(transactionType), DateUtils.getBusinessLocalDate(), transactionAmount, diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanTransactionTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanTransactionTest.java index 62e515239..8bc8b9c22 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanTransactionTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanTransactionTest.java @@ -233,7 +233,7 @@ public class LoanTransactionTest extends BaseLoanIntegrationTest { assertNotNull(transactionTemplate); assertEquals("loanTransactionType." + buyDownFeeCommand, transactionTemplate.getType().getCode()); - assertEquals(transactionTemplate.getAmount(), 200); + assertEquals(transactionTemplate.getAmount(), 0); assertThat(transactionTemplate.getPaymentTypeOptions().size() > 0); }); }