Aman-Mittal opened a new issue, #188:
URL: https://github.com/apache/fineract-backoffice-ui/issues/188
## Summary
The loan product form does not expose down payment or multi-tranche
disbursement settings. Both
are modelled by the API and returned on every product, but there is no
control for either, so a
product created in this application can never use them.
Missing from the form, all present on `PostLoanProductsRequest` and the
product response:
| Field | Purpose |
|---|---|
| `enableDownPayment` | Collect a share of the principal at disbursement |
| `disbursedAmountPercentageForDownPayment` | How much of it, as a
percentage |
| `enableAutoRepaymentForDownPayment` | Post that down payment automatically
|
| `multiDisburseLoan` | Release the loan in tranches rather than one payment
|
| `maxTrancheCount` | How many tranches are allowed |
| `disallowExpectedDisbursements` | Whether a tranche schedule must be
planned upfront |
## Business value
**Two lending products this institution can describe but not create.**
- **Down payment lending is unavailable.** Any product requiring the
borrower to pay a share
upfront — asset finance, hire purchase, most consumer-durable lending —
cannot be set up here.
Down payment is a capability of the progressive engine, and progressive
products are already
creatable in this application, so the gap is specifically that the form
stops short of the
settings that make the engine useful.
- **Tranche lending is unavailable.** Construction and working-capital
products release funds in
stages against progress. Without `multiDisburseLoan` the form can only
produce single-
disbursement products.
- **A setting exists that can never be reached.** The loan application form
renders
`allowFullTermForTranche` only when the product is progressive *and* has
multi-disbursement
enabled. Since multi-disbursement cannot be enabled here, that control has
never been reachable
for a product created in this application. This is the single documented
cross-field rule in the
entire generated client, and today it is dead code.
- **Anything not set here is silently lost on edit.** The form builds its
payload from the fields
it knows about. A product configured elsewhere with down payment or
tranches can be opened and
saved here, and the settings the form does not model are not preserved —
so the current gap is
not merely "cannot create", it is "can quietly damage".
Closing this makes the product form able to express what the engine
supports, and turns
`allowFullTermForTranche` into a real control.
## Constraints to honour
Down payment belongs to the progressive engine. The form already clears
progressive-only state
when the schedule type changes back to cumulative
(`onLoanScheduleTypeChange`), and the down
payment group has to join that: switching to cumulative must clear it, not
leave a stale value in
the payload.
The dependent fields should follow their parent — a percentage is
meaningless when down payment is
off, and a tranche count is meaningless without multi-disbursement.
## Comprehensibility for non-specialists
"Down payment", "tranche" and "auto-repayment for down payment" are not
self-explanatory to
someone new to lending operations. Each control needs plain-language help
describing the effect in
business terms rather than restating the field name, consistent with the
help added for schedule
type.
## Acceptance criteria
- [ ] The down payment group is settable and is offered only for progressive
products.
- [ ] Switching a product from progressive to cumulative clears the down
payment settings.
- [ ] The percentage and auto-repayment controls appear only when down
payment is enabled.
- [ ] Multi-disbursement and its tranche count are settable, and
`allowFullTermForTranche` becomes
reachable on the loan application form for such a product.
- [ ] Existing values load correctly when editing a product and survive a
save round trip.
- [ ] Unit tests cover the gating and the clearing behaviour; a mocked
Playwright spec covers the
form; the recorded demo shows a down payment product being created.
- [ ] Every new control carries help text that reads sensibly to a
non-specialist.
--
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]