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.
[https://ci3.googleusercontent.com/mail-sig/AIorK4xwPZE1QZDrygu965IrMxwqcvqBdkIzXxMp0niuCiOYlce_BZGNtYc5YwQWaRUvd1mvJMAMyto]
Bhaskar Tiwari
Senior Manager
+91 8800188152
[https://ci3.googleusercontent.com/mail-sig/AIorK4xD8Fe69CCcmywbVUc86jabfOcbiI_QTiLOE9Mmm2AqhDRpbvYt_H4M-N6Jxm8X55lpHuouAQQ]
"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.”