Hi Bhaskar, I see multiple issues from what I understand from your email
1. *Recalculate Interest For Loans Job * The job "Recalculate Interest For Loans" should run for all active loans that have "interest recalculation-enabled," Even if the loan is a tranche loan/multi-disbursement-enabled (with enable or disable DisallowExpectedDisbursements ) or if it is a on-tranche loan/multi-disbursement-disabled. 2. *DisallowExpectedDisbursements check box* When Disabled, the user has to plan all the tranches before the disbursal itself But when enabled, the user can disburse any no of times (within the configuration limit) without tranche planning ahead Apart from that, functionally, there is no other difference - so you can use anything that works for you 3. *LoanDisbursementDetails Table* This table should contain the tranche details of the loan that are tranche-enabled (even when the DisallowExpectedDisbursements check box is enabled or disabled) This table will not contain the disbursement details of the loans with the disabled multi-disbursement product config. TL;DR The product configuration (single or multi-disbursal - DisallowExpectedDisbursements check box disabled or enabled) should be based on your business requirement. The job "Recalculate Interest For Loans" issue needs to be checked and fixed if it is excluding the single disbursement loans for recalculation. This is from my understanding so far. Anyone from the community can correct me if my understanding is wrong. Regards, Bharath Lead Implementation Analyst | Mifos Initiative PMC Member | Apache Fineract Mobile: +91.7019635592 http://mifos.org <http://facebook.com/mifos> <http://www.twitter.com/mifos> On Tue, Oct 7, 2025 at 12:13 PM Bhaskar Tiwari <[email protected]> wrote: > Hi Fineract Dev Team, > > I need some help understanding the *Floating interest rate* functionality > in Fineract. > > I’ve enabled the floating interest rate at the loan product level, and > it’s working as expected during loan creation. However, while testing the > floating interest behavior post-disbursement, I noticed an issue. > > The scheduler job "*Recalculate Interest For Loans*" is responsible for > updating the repayment schedule based on floating rates. However, this job > was not triggering for my disbursed loan. > > On further investigation, I found that the method > *fetchLoansForInterestRecalculation()* used in the job requires an entry > in the *LoanDisbursementDetails* table. In my case, there’s no such entry > for the loan, which seems to be why the recalculation logic is not kicking > in. > > Looking at the code, I came across the following block, which creates an > artificial disbursement detail if certain conditions are met: > > if (loan.loanProduct().isDisallowExpectedDisbursements()) { > List<LoanDisbursementDetails> filteredList = > loan.getDisbursementDetails().stream() > .filter(disbursementDetails -> > disbursementDetails.actualDisbursementDate() == null).toList(); > if (filteredList.isEmpty()) { > final LocalDate artificialExpectedDate = > loan.getExpectedDisbursedOnLocalDate(); > LoanDisbursementDetails disbursementDetail = new > LoanDisbursementDetails(artificialExpectedDate, null, > loan.getDisbursedAmount(), null, false); > disbursementDetail.updateLoan(loan); > loan.getAllDisbursementDetails().add(disbursementDetail); > } > } > > > This seems to suggest that a *LoanDisbursementDetails *entry is created > only when *isDisallowExpectedDisbursements()* is enabled at the loan > product level. > > My question is: > > If I enable *isDisallowExpectedDisbursements* on the loan product to > support floating interest rate recalculations, will it impact my existing > single-tranche loan disbursement logic? > > Is this the recommended approach to ensure *LoanDisbursementDetails* is > populated for single-disbursal loans using floating interest? > > Appreciate any guidance or suggestions from the community on handling this > scenario correctly. > > > *Bhaskar Tiwari* > > Senior Manager > > *+91 8800188152* > > > > > *"Print this mail only if absolutely necessary. Save Paper. Save Trees."* * > Disclaimer: *“This electronic mail message sent from StrideOne (Stride > Fintree Private Limited) may contain Confidential/Restricted/Internal > information and should only be viewed by the intended recipients. Under no > circumstances may any such information be disclosed, copied, used or > distributed to any unauthorized persons or entities without the written > consent of Strideone. If you are not the intended recipient, any review, > retransmission, dissemination or reliance on the content of these materials > is strictly prohibited and may be the subject of legal action. If you > received this email in error, please notify the sender and delete the > message immediately.” >
