- Add 'Modify Application' button in kebab menu for rejected accounts (all 4 types)
- Rewrite edit components with tab-based UI matching create form
- Pre-populate all create-time values in edit form: product, account status,
customer segment, account type, joint holders, nominees, introducer,
deposit account link, senior citizen rate, tenure, flags (msme/balanceSwap/autoDebit)
- Fix edit mode detection using accountNo presence
- Add preselectedIntroducer @Input to IntroducerSearchComponent for pre-fill
- Support both camelCase and lowercase keys for joint holders (MySQL queryForList)
- Fix account number display: actual accountNo before previewAccountNo
- Fix cbsAccountType restore: cbsAccountType only, avoid Fineract enum object
- Add nominees fetch via /clients/{id}/nominees API in all 4 edit components
- Fix RD/FD Interest Rate Chart: SimpleChanges to prevent reset race condition
- Pre-check Senior Citizen checkbox in edit form from isSeniorCitizen DB field
- Auto-calculate rate when tenure pre-filled in edit mode
- FD calculator: use backend calculate-fd-interest API for all compounding types
- Support interestCompoundingPeriodInMonths=0 (daily) in FD calculator API
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- nominee-form: searchByText now passes legalFormType='INDIVIDUAL' for both
nominee search and guardian search — prevents entities/companies appearing
- introducer-search: same INDIVIDUAL filter applied
- add-related-client-dialog: INDIVIDUAL filter for joint account holders,
partners, and members search
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- validateCashierHasMorningTransfer() blocks deposits & withdrawals when no today's cash transfer received
- validatePreviousDayClosed() blocks all transactions when previous day unsettled
- morningTransferReceived field added to cashier-day-status API response
- Warning banners shown in Savings, Current, FD, RD transaction forms
- Submit button disabled when either condition is active
- getCashierTotalCash SQL fixed: dm.denomination_value -> dm.denomination
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Savings/Current/FD/RD withdrawal forms: card-style overdraft warning when
requested denomination count exceeds cashier stock; submit blocked on overdraft
- Cash History detail view: show both RECEIVED and GIVEN denomination breakdowns
for Cash Exchange (previously only RECEIVED side was displayed)
- Closing Cash Report: add Cash Exchanges section (denomination-wise received/given/net)
- Excess Transaction Report: include cash exchanges >= threshold with Type badge
(Exchange/Txn) and ID Proof column for RBI/AML compliance
- cashier-shared.scss: etr-badge and closing-exchange-head styles
- Cash Exchange entry: overdraft warning redesigned to cx-overdraft-card BEM layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- All 4 deposit forms (Current/Savings/FD/RD) now send denominationId +
denominationValue in denominationBreakdown so the backend can persist rows.
- Submit is disabled when a denomination breakdown is entered but its total
does not match the transaction amount.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deposit forms (Current/Savings/FD/RD) now load cash denominations from
the Denomination Master instead of a hardcoded list:
- active + discontinued denominations fetched via /denominationmaster
- discontinued rows hidden by default behind a "Show discontinued" toggle,
rendered faded and disabled (cannot be counted) when revealed
- rows sorted by value descending; redesigned as a Denom/Qty/Amount table
with circular coin chips and per-row amount (faded at zero)
Also: savings account-actions menu now scrolls (max-height + grouped
sections mirror the current-account menu) and renders all action items.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Wire up Edit/View/Delete buttons with click handlers in all 4 HTML templates
(Current Account, Savings, Fixed Deposit, Recurring Deposit)
- Remove broken [routerLink] from Recurring Deposit HTML
- Add viewInstruction() and editInstruction() methods to all 4 tab components
- Use navigateByUrl with absolute path built from this.router.url to avoid
Angular multi-level .. navigation bug (was producing literal .. in URL)
CA/Savings/RD: basePath + /transfer-funds/:id/view|edit
FD: basePath + /transactions/account-transfers/:id/view|edit
- Fix deleteStandingInstruction() to refresh table after delete in all tabs
- Fix AccountTransfersService.deleteStandingInstrucions to use
PUT ?command=delete instead of HTTP DELETE (backend soft-delete only)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Redesign view-standing-instructions with sectioned layout (General Info, From Account,
To Account, Transfer Settings, Recurrence) using info-grid/info-row CSS pattern with
color-coded status badge
- Fix edit-standing-instructions: remove buggy recurrenceOnMonthDay.push() crash that
caused all form fields to be empty; add parseISODate() and parseMonthDay() helpers
handling both ISO string and array formats; add null safety with ?. guards on all fields
- Fix edit form patchValue: fromAccount and toAccount show as 'productName - accountNo'
- Improve current account standing-instructions-tab HTML with ?. null guards
- Add missing i18n keys: General Information, From Account, To Account, Transfer Settings,
Recurrence Settings, Valid From, Valid Till
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rebuilt current account deposit/withdrawal with sat two-column layout
- Applied same sat design to FD cash transaction and RD deposit/withdrawal
- Added Deposit action to FD: button config, actions dict, doAction routing
- Both FD Deposit and Withdrawal now render FixedDepositsCashTransaction
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Block 0% nominee share in all steppers (Savings, FD, RD, Current) —
Add button disabled via isValid, addNominee() guards < 1, nominee-form
error condition fixed for value=0
- Joint ownership: default primary share 50%, enforce min 1% on blur,
max 100% on input with DOM clamp via $event, auto-redistribute
co-holders proportionally when primary share changes,
isJointOwnershipValid guards each holder >= 1
- Pending/Rejected account tabs: normalize date format to 22 May 2026
for both array and string date values from API
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- access-control: register DSC enrollment under factorType='DSC' instead of
the legacy 'TOKEN' alias, hydrate / disable paths match on the same code.
Pill labels in the picker and Hardware Token panel updated to 'Type · DSC'.
service.ts MfaFactorType union adds 'DSC'.
- two-factor-authentication: initialise the delivery-method form at field
declaration instead of inside ngOnInit so Angular's first change-detection
pass doesn't fire 'Cannot find control' before the form is built.
- Rename duplicate component selectors that were tripping NG0912 at runtime:
mifosx-notes-tab -> mifosx-{centers,clients,current-account,groups,loans,
savings}-notes-tab; mifosx-unassign-staff-dialog -> mifosx-{clients,groups}-
unassign-staff-dialog. Selectors aren't referenced in templates (route /
dialog open), so the rename has no usage-site impact.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Current Account module with full CRUD, transactions, charges, hold/release, block/unblock
- Current Products management under Products module
- DIP mobile number verification with real API call to /lookup/check
- Sanctions verification dialog
- Charges support for Current Account (chargeAppliesTo=5) in create/edit
- Fixed permissions from SAVINGSACCOUNT to CURRENTACCOUNT across all current account components
- Added all missing translation keys for Current Account in en-US.json
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>