airajena opened a new pull request, #5523:
URL: https://github.com/apache/fineract/pull/5523
## Summary
This PR implements `FINERACT-1153` by adding configurable handling for loan
reschedule cases where the final installment becomes much larger than prior
installments.
## Problem
For some loan reschedule flows (for example reduced EMI / interest
appropriation scenarios), the generated schedule can produce an oversized last
installment, which is not desirable operationally.
## Solution
Introduced a new global configuration and reschedule logic to automatically
split an oversized last installment by extending repayment periods until the
last installment is in line.
### New global configuration
- Key: `split-large-last-installment-on-loan-reschedule`
- Default: `false` (disabled)
- Scope: tenant global configuration
### Behavior
- When config is `false`: existing behavior is unchanged.
- When config is `true`:
- During loan reschedule approval, schedule generation checks whether the
final installment is larger than prior installments.
- If yes, it auto-adds repayment-period extension variation(s),
regenerates the schedule, and repeats until:
- last installment is no longer oversized, or
- safety cap is reached.
### Safety guard
- Added max extension loop guard to prevent infinite adjustments.
## Checklist
Please make sure these boxes are checked before submitting your pull request
- thanks!
- [x] Write the commit message as per [our
guidelines](https://github.com/apache/fineract/blob/develop/CONTRIBUTING.md#pull-requests)
- [x] Acknowledge that we will not review PRs that are not passing the build
_("green")_ - it is your responsibility to get a proposed PR to pass the build,
not primarily the project's maintainers.
- [x] Create/update [unit or integration
tests](https://fineract.apache.org/docs/current/#_testing) for verifying the
changes made.
- [x] Follow our [coding
conventions](https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions).
- [x] Add required Swagger annotation and update API documentation at
fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with
details of any API changes
- [x] [This PR must not be a "code
dump"](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit).
Large changes can be made in a branch, with assistance. Ask for help on the
[developer mailing list](https://fineract.apache.org/#contribute).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]