[
https://issues.apache.org/jira/browse/FINERACT-2681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18094559#comment-18094559
]
AMAN MITTAL commented on FINERACT-2681:
---------------------------------------
https://github.com/user-attachments/assets/9aebd8eb-2689-4c2a-93e1-2d5cb2cacda5
> [FINERACT-BACKOFFICE-UI] [FRONTEND] Loan module — implement
> Cumulative/Progressive schedules, payment/credit allocation editor, lifecycle
> actions, and transaction detail dialog
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: FINERACT-2681
> URL: https://issues.apache.org/jira/browse/FINERACT-2681
> Project: Apache Fineract
> Issue Type: Improvement
> Components: fineract-backoffice
> Reporter: AMAN MITTAL
> Priority: Major
>
> Note: Repo is *fineract-backoffice-ui*
>
> The backoffice UI currently lacks comprehensive loan servicing features
> required for advanced loan management. This work implements multiple
> loan-module enhancements in the UI to match updated product expectations and
> improve loan servicing workflows. The PR to implement these changes is:
> [https://github.com/apache/fineract-backoffice-ui/pull/93]
>
>
> * Scope
> ** Add two loan schedule calculation types: Cumulative and Progressive.
> ** Implement a Payment & Credit Allocation Editor component to adjust
> allocation of payments and credits across charge/fees/principal/interest.
> ** Add loan lifecycle actions to the UI (examples: Undo Disbursal, Write
> Off; ensure actions are available where applicable).
> ** Create a Loan Transaction Detail dialog with tabs: Details, Notes,
> Documents, Collaterals.
> ** Replace native confirm() dialogs with standard Material confirm dialogs
> across these flows.
> ** Provide end-to-end tests covering loan lifecycle actions, servicing
> flows, schedule types, and account actions.
> * Functional requirements (must)
> ## Schedule types
> *** Provide UI option(s) to select between Cumulative and Progressive
> schedule types when creating or reconfiguring loan schedules.
> *** Ensure schedule previews and calculated installments reflect the
> selected schedule type consistently in the UI.
> ## Payment & Credit Allocation Editor
> *** Provide a reusable component that shows current allocation (principal,
> interest, fees, penalties) and allows adjustments before applying payments or
> credits.
> *** Persist adjustments only after user confirmation.
> *** Validate allocations against allowable business rules (e.g., totals must
> equal payment amount).
> ## Loan lifecycle actions
> *** Expose lifecycle actions (Undo Disbursal, Write Off, and any other
> actions implemented) in the loan actions menu when the loan state permits.
> *** Ask for confirmation using the Material confirm dialog, showing the
> action, reason (if required), and consequences.
> *** Trigger the corresponding back-end API endpoints; show success/failure
> UI to the user and refresh loan details after completion.
> ## Transaction detail dialog
> *** Clicking a loan transaction opens a dialog showing transaction details.
> *** Dialog includes tabs for: Transaction Details, Notes, Documents,
> Collaterals.
> *** Notes tab allows viewing and adding notes; Documents tab lists and
> supports viewing attachments; Collaterals tab shows collateral forms/data if
> applicable.
> ## Confirm dialogs
> *** Replace any native window.confirm calls in the modified flows with the
> Material confirm dialog component used elsewhere in the app, maintaining
> consistent styling and behavior.
> ## Tests
> *** Add E2E tests that cover typical loan lifecycle flows: disbursal, undo
> disbursal, write off, payment allocation adjustments, switching schedule
> types, and verifying the transaction dialog tabs.
> * Non-functional requirements (should)
> ** UI/UX follows existing backoffice styling and accessibility patterns.
> ** All new components are responsive and localized (i18n).
> ** No blocking of existing loan workflows for users who do not opt into the
> new schedule types.
> ** Performance: schedule preview calculations must complete within a
> reasonable time (no UI freeze).
> * Acceptance criteria
> ## When creating/modifying a loan, the user can choose Cumulative or
> Progressive schedule types; the schedule preview and calculated installments
> reflect the chosen type.
> ## The Payment & Credit Allocation Editor opens where appropriate, allows
> valid adjustments, validates totals, and application of allocation triggers
> the expected API call and updates the loan account UI.
> ## Lifecycle actions appear only when appropriate for the loan state;
> choosing an action opens a Material confirm dialog; confirming calls the API
> and the UI shows success or failure and refreshes state.
> ## Clicking a transaction opens the transaction dialog with functional
> Details, Notes, Documents, and Collaterals tabs; adding a note or viewing a
> document works without JavaScript console errors.
> ## All replaced native confirm calls are removed from the modified flows and
> replaced with Material confirm dialogs.
> ## End-to-end tests added in the PR run successfully in CI (or locally) and
> cover the flows described above.
> ## No regressions in existing loan UI flows (smoke-tested).
> * Testing notes
> ** Manual test steps:
> ### Create a loan and choose Progressive schedule; confirm schedule preview
> and expected repayment amounts.
> ### Create another loan using Cumulative schedule; compare differences and
> verify calculation correctness.
> ### Make a payment and use the Allocation Editor to reallocate amounts;
> confirm totals validate correctly and payment applies as expected.
> ### Trigger lifecycle actions (e.g., Write Off) on a loan in appropriate
> state; confirm prompt and post-action UI state.
> ### Open transaction detail dialog and verify each tab (Notes: add a note;
> Documents: view an attached file; Collaterals: view/edit collateral
> information).
> ** Automated tests:
> *** Confirm E2E tests added in PR run and pass in CI. If tests are flaky,
> create follow-up tickets to stabilize them.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)