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]

Reply via email to