Aman-Mittal opened a new issue, #792:
URL: https://github.com/apache/fineract-backoffice-ui/issues/792
#### Summary
The **Create Loan** form captures only the financial terms. Several
application attributes that Fineract accepts on `POST /loans` can't be entered:
- loan officer;
- loan purpose;
- fund;
- linked savings account;
- standing instruction at disbursement;
- charges and collateral at application time.
Some of these can be added later through separate actions. Others can't be
set from this UI at all.
#### Current behavior
The form's fields are: client, product, principal, external ID,
submitted-on, expected disbursement, term frequency and type, number of
repayments, repayment frequency, interest rate and type, amortization, interest
calculation period, three grace fields, arrears tolerance, and
repayments-starting-from date.
`src/app/features/loans/loan-form.component.ts` (`main` @ `8da1086f`) has no
reference to `loanOfficerId`, `loanPurposeId`, `fundId`, `linkAccountId`,
`createStandingInstructionAtDisbursement`, `charges` or `collateral`.
#### Expected behavior
- An officer can record who owns the loan, why it is being taken (purpose),
and which fund finances it, at the moment of application.
- An officer can optionally link the client's savings account and request a
standing instruction at disbursement.
- An officer can attach product charges and collateral before submitting, so
the approver sees the complete application.
#### Steps to reproduce
1. Open a client and choose **New Account → Loan Account**.
2. Select a loan product.
3. Look for loan officer, purpose, fund, linked savings, or charge and
collateral inputs. None are present.
#### User impact
- **Reporting and portfolio management:** loans submitted without an
officer, purpose or fund are invisible to officer-level portfolio reports and
to fund-source and purpose reporting. Each one has to be corrected afterwards:
the officer through a separate assign action, and purpose and fund not at all
from this UI.
- **Collections:** without a linked savings account and standing
instruction, loans whose product expects repayment from savings can't be set up
correctly at origination.
- **Approval quality:** charges and collateral added after submission mean
the approver may review an incomplete application.
#### Evidence
- Form inventory captured on the deployed `main` (2026-10-16); see the
screenshot attached to #791 for the full field set.
- The loan template for the same client and product (`GET
/loans/template?clientId=1&productId=1&templateType=individual`) returns
`loanOfficerOptions`, `loanPurposeOptions`, `fundOptions`,
`accountLinkingOptions` and `chargeOptions`. The data the form needs is already
in the response it loads.
#### Proposed improvement
Add an **Ownership & purpose** section (loan officer, purpose, fund) and an
optional **Savings linkage** section (linked account, standing instruction at
disbursement). Populate them from the loan template, and default the officer to
the client's assigned staff where present.
Add a **Charges** section listing the product's default charges, with add,
remove and amount override, plus a **Collateral** section where the product
requires collateral.
Send the selections in the existing `POST /loans` payload. Show them on the
loan view, and include them when the application is edited.
#### Acceptance criteria
- [ ] Loan officer, purpose and fund can be selected at application. They
are saved, and they appear on the loan's overview.
- [ ] A linked savings account and the standing-instruction flag can be set.
The selectable accounts are the client's active savings accounts in the loan's
currency.
- [ ] The product's charges can be reviewed and adjusted before submit, and
the saved loan shows them.
- [ ] Editing a submitted application preserves and allows changing these
values.
- [ ] Unit tests cover the payload with and without each optional section.
#### Verification status
Reproduced on the deployed `main` (2026-10-16), superuser, tenant `default`.
The field absence was confirmed in source.
#### Related API capabilities
- `POST /v1/loans` and `PUT /v1/loans/{loanId}` accept `loanOfficerId`,
`loanPurposeId`, `fundId`, `linkAccountId`,
`createStandingInstructionAtDisbursement`, `charges[]` and `collateral[]`.
- `GET /v1/loans/template?templateType=individual&clientId=…&productId=…`
supplies the options.
Related: #791 (schedule preview), #781 (tranches at application), #767
(group and JLG applications).
--
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]