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]

Reply via email to