Adds a "Comparison Details" popup on the inward decision dialog showing
exactly what each automatic rule compared (amount figures vs words,
instrument date vs its valid-until window, balance vs amount, RBI
Positive Pay threshold, IQA sub-checks) instead of just the pass/fail
pill, mirroring InwardClearingValidationService.java's actual logic.
For an already-decided item, the stale/postdated "as of" date now shows
the decision date rather than today's live date.
Once a cheque is decided, the batch table's Validation column collapses
to a single outcome pill instead of permanently showing all 7 rule
badges, and the item-decision dialog itself switches to a read-only
decision summary (outcome, decisioned-on, note, settlement status)
instead of a re-openable Pass/Return form — the "Decide" action becomes
"View" for decided rows.
Also fixes two silently-broken directives: matTooltip and mat-dialog-close
were used throughout the decision dialogs without MatTooltipModule /
MatDialogClose being imported into the standalone components, so every
tooltip and every close button did nothing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a rich decide dialog for clerks verifying inward CTS cheques: cheque
images, all automatic validation results, and a mandatory signature-check
gate built from the account's mode of operation and joint holders (backed
by a new SignatoryService reusing the existing signature/document fetch
pattern from the cashier module).
Also adds a fullscreen compare mode: the cheque opens large with a shelf
of every mandatory signer's stored signature, which can be dragged onto
the cheque, resized, made semi-transparent, and zoomed, for a real
side-by-side signature match instead of squinting at a thumbnail.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- CTS clearing module: inward batches (validate/pass/return), outward presentment
capture, positive pay, settlement, reconciliation
- Outward Clearing merged into one screen: Pending Cheques + Batches tabs (a real
clearing session per NPCI submission, either the 2-hourly job or manual send),
drill into a batch to settle/dishonour its cheques
- Date-range, text, and quick (Today/Yesterday/All) filters with pagination across
inward batches, outward presentments, outward batches, and batch detail
- NACH clearing module (mandates, batches, transaction decisioning)
- Shell/sidenav wiring for both new modules
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Savings account general tab now shows the real lien/user hold
(savingsAmountOnHold) alongside the existing guarantor hold (onHoldFunds).
- Cashier transaction-entry "Transfer Hold" / "Tr. Hold" now bind to the real
freezeAmount instead of a hardcoded 0.00 placeholder; "Freeze Amount" itself
reverted to 0.00 per request. withdrawableAmount no longer double-subtracts
the hold for savings accounts (whose availableBalance is already
hold-adjusted server-side), while current accounts (whose availableBalance
is not) still get the client-side subtraction they need.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Cashier token-based withdrawal disbursement was re-running the balance/min-balance
checks against the already-approved amount, which always failed since the manager
approval had already deducted the balance — the check now skips for that case
(clerk-created requests still get the full validation).
Cheque book request submission now shows the actual backend error message
(e.g. insufficient-balance rejections) instead of a generic fallback string.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a customer-account-scoped Cheque Book view under Clerk > Account
Facilities (list + leaf detail, with stop-payment/report-lost/mark-used/
return actions), reachable via a new hover dropdown on the Account
Facilities nav item. Also refreshes the Account Facilities page layout,
and carries over a few chequebook service/detail-dialog fixes from the
back-office module (used-leaf display, leaf-lookup dialog polish).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds cheque series creation, stock receive, cheque leaf request/lookup,
and stop-payment/lost-reporting flows with Maker-Checker approval and
a checker-inbox tab for pending chequebook requests.
- Designations loaded dynamically from DirectorDesignation m_code via new API endpoint
- Director board dropdown and committee board validation now use DB-driven designation list
- Mandatory designation check in committee creation driven by is_mandatory flag from m_code_value
- Vote summary panel converted from side drawer to centered modal with backdrop blur
- Voting page: remark textarea shown on Approve/Reject with Web Speech API voice input
- Voice input supports Hindi (hi-IN) and English (en-IN) with language toggle
- NgZone fix: speech callbacks wrapped in zone.run() so Angular change detection fires correctly
- Speech recognition uses continuous=true so user can dictate full remarks before stopping
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Committee Board component: create/edit committees with profile image upload
- Image viewer: redesigned zoom dialog with frosted glass toolbar, SVG icons, dark theme
- Committee profile image: circular upload ring, full-size zoom via ImagePreviewDialogComponent
- Member photos: clickable avatars open zoom viewer in both stacked and list views
- Backend: committee API service methods (CRUD, members, dissolve, current directors)
- Route and navigation link added to election dashboard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Candidate board: lock Remove and Change Symbol buttons when voting is active (VOTING_OPEN/CLOSED/RESULT_DECLARED/CANCELLED)
- Director board: group directors by election with Current/Past badges, sorted newest first
- Past election groups collapsed by default; click header to expand/collapse with chevron animation
- Show first 6 directors, expand button for remaining members
- Load member photos in director cards via clientImage API (fallback to initials)
- 4-column responsive grid for director cards
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add durationYears field to election config with Board Active Until display on dashboard
- Auto-fill director tenure start (from resultDate) and end (from durationEndDate) when election has duration set; both fields readonly with Auto badge
- Hide Status field on new appointment form (only shown on edit)
- Change Remove button from hard delete to soft delete (status REMOVED) with audit-safe confirm
- Fix isTenureExpired() template call replaced with precomputed isExpired property
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New director-board component: 2-step drawer (pick WON candidate → fill appointment details)
- Pending appointments section: highlights WON candidates not yet given a designation
- mat-datepicker for all date fields; tenure end auto-fills to +5 years from start
- Frontend validation: required field indicators + inline mat-error on submit attempt
- Past dates disabled via [min]="today" on all date pickers
- mat-select for Designation and Status (CBS outline style)
- Election service: appointDirector, updateDirector, deleteDirector, getDirectors, getPendingDirectors
- Route added: /election/directors; nav link in election dashboard
- Error handler: suppress 404 toast for /election/directors (backend not yet deployed guard)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Removed Election Type dropdown from config form (hardcoded DIRECTOR in payload)
- Post name options reduced to Director only, Add Post button removed
- Eligibility section in nomination-apply hidden when no criteria configured
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaced raw JSON pre dump with readable key-value rows.
PASS/FAIL/WON values show as green badge, FAIL/REJECT/CANCELLED as red.
Manual vote counts shown as table with Candidate/Post/Votes/Previous columns.
Winner results shown as separate table with Post/Winner/Votes.
Added DETAIL_LABELS for 50+ field keys covering all audit action types.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- election.service.ts: all 3 list APIs now accept page/size params and return PagedResponse
- election-dashboard: server-side paginated elections with statusCounts from backend
- nomination-list: server-side pagination; summary chips use backend totals (all pages)
- candidate-board: server-side pagination; post filter triggers new API call
- nomination-detail: full 8-check CEO pre-check display (director loan, relation accounts, KYC, family KYC, guarantor, AML, family loans)
- nomination-apply: guarantor status section added
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Shows whether the selected nominee is a guarantor on any loan, with loan health indicator, borrower details, savings account, guaranteed/released/remaining amounts, and loan timeline.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- family-members-tab.scss: add @use 'sass:color' so color.adjust() resolves at build time
- enroll-dsc-dialog: remove MatDialogTitle from imports — not used in template
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- After creating a client from 'Create as Client' button, automatically
call PUT /clients/{parentId}/familymembers/{memberId} with the new
linkedClientId to link the family member record
- Show snackbar feedback on success or failure of the auto-link
- nomination-apply now also passes familyMemberId and parentClientId
in prefill state so auto-link works from the nomination page too
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- nomination-apply: show full KYC for linked family members via nested forkJoin, accordion expand/collapse cards, owner chips on KYC headers, 'Create as Client' button for manual entries
- family-members-tab: show Linked Client / Manual Entry badges, entry type in detail grid, 'Create as Client' button navigating with prefill state
- create-client + client-general-step: accept prefillData @Input from navigation state, patch form fields from family member data
- Add MPL-2.0 headers to all election module files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update disbursement review and my-disbursement-requests components
with improved layout and additional UI enhancements
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Transaction entry: detect collection mode (N DR savings → 1 CR GL) and disbursement mode (1 DR GL → N CR savings); build dbCr-tagged payload for backend
- Disbursement review: show 'GL Credit (Target)' / 'Debit Entries' labels for collection; fix double-count by summing only DR entries for collection totals; dynamic approve button text
- My disbursement requests: add DR/CR badge column in expanded credit-entries preview
- My requests / withdrawal-requests: minor consistency updates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Clerk can now add multiple rows to enter both CR and DR sides of a
GL-to-account transaction. Add button in footer appends a new row;
each row shows a × delete button when more than one row exists.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Clerk cash deposits are not permitted — notes/coins denomination is
cashier vault responsibility. Shows warning banner above footer and
disables Save button when clerk selects cash payment type on a deposit.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Optimize loadAccountDetails: extract clientId from search result and pass as hint
- fetchAllDetails fast path: parallel forkJoin for account+client calls when clientId known
- openConfirmDialog/confirmSubmit: extend deposit maker-checker to CA and CB account types
- buildDepositPayload: send accountType CURRENT for CA/CB accounts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add cashier deposit service and submit flow via maker-checker
- New CashierDepositService: submit, approve, reject, list endpoints
- Transaction-entry: cashier SD deposit goes to deposit-requests instead of direct credit
- Checker inbox: new Deposit Requests tab with approve/reject review dialog
- Cashier nav: My Deposit Requests tracking page
- Withdrawal requests: show voucher_no from backend instead of JS-padded id
- clerk-withdrawal.service: disburse denominationData accepts null for non-cash
- Role-based checker enforcement: only manager/head-cashier can approve/reject
- Maker cannot approve own request (self-approval blocked at backend)
- Denomination total validation: breakdown must match transaction amount
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Clerk manually enters token no with today-date unique validation (backend enforced)
- Cashier token lookup: auto-fill amount/account, lock amount field, status-specific errors
- Confirm dialog shows CASH DISBURSEMENT (blue) with no balance re-deduction warning
- Disbursement denomination saved to m_savings_txn_denomination for vault position update
- Block direct cashier withdrawal without approved maker-checker token
- DISBURSED status shown in My Requests and Checker inbox views with cashier/time info
- Remove getNextToken() service method and m_daily_token_counter table (0326 migration)
- Race condition protection: UPDATE WHERE status=APPROVED prevents double disbursement
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Save denomination breakdown for GL journal entries via new /cashier/gl-denomination endpoint
- Add payment type, date/time, teller name columns to GL Entries closing report
- Show GL badge for GL vouchers vs numeric ID for savings transactions
- Add payment type required and denomination overdraft validations for GL transactions
- Fix GL account number display in confirm dialog
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace TYPE dropdown options with Withdrawal Slip, Cheque, Disbursement, Enter Bank Transfer, DD
- Move TXN TP. (payment type) into Classification row between BRANCH and AC. TP.
- Add GL and LA account types; fix SHR endpoint to /accounts/share
- Auto-search A/C NO. on 4+ digits with 400ms debounce
- Auto-fill ECS A/C NO. from savingsAccountNumber after account load
- Accept suffix/partial accountNo match from list API
- Disable broken global /search fallback across all account types
- Increase field widths: TYPE 160px, TXN TP. 160px, CHEQUE NO. 165px, TOK. NO. 120px
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add ClerkUiStateService with full account state save/restore (no double network call on back navigation)
- Add Photo & Signature, Standing Instructions, Today's Activity as dedicated nav pages
- Remove photo/signature, standing instructions, linked accounts, today's activity panels from main dashboard
- Add ESC key to exit fullscreen; clicking Clerk nav immediately restores fullscreen without re-navigating
- Compact clerk dashboard UI with reduced font sizes and padding throughout
- Add CashierOnlyGuard for route protection
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Transaction Entry — Warm Stone theme:
- Card form with Classification/Account and Payment/Narration groups
- Newsreader serif captions + Hanken Grotesk body font (Google Fonts)
- DR/CR segmented toggle (red/green tint)
- Live footer: Total Debit/Credit/Difference + Balanced pill
- Post Entry enabled only when balanced; Save Draft button
- Add Row/Delete Row with numbered badges
- Amount with Rs prefix, cash auto-fill from denomination (green)
- Responsive group layout with vertical dividers
Withdrawal validations (onSave):
- Previous day unsettled + morning transfer hard blocks
- Account blocked/Dormant/Inactive/Escheat checks
- Sanctions/Willful Defaulter fixed (NO string != truthy)
- Denomination stock overdraft inline alert in closing position
- All browser alert() replaced with custom modal dialog
- Success modal (green) with reference number on post
Today Activity fixes:
- SD/FD/RD use content[], CA uses pageItems[]
- Charge Deduction sign fixed (minus/red)
- Fixed height 110px with scroll, Today Total removed
- A/C TYPE object resolved with label mapping
Non-Individual account:
- Personal Info shows Constitution/Incorp/Business for non-individual
- Partners/Members table replaces Nominees (clickable for details)
- Mode of Operation label fixed (enum -> readable string)
- Sanctions/Defaulter fixed for YES/NO string values
Current Account transactions:
- Fixed: query m_current_account_transaction table
- remarks column added to search query
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Transaction Entry screen with full account details panel
(personal info, joint holders, nominees, KYC, balances)
- Role-based layout: CASHIER role hides nav/sidebar/ticker,
redirects to /cashier/transaction-entry on login
- Denomination entry with opening/closing position preview
(notes first then coins, stepper +/- round button inputs)
- Auto-fetch savings/current/FD/RD accounts with associations,
client KYC, nominees, addresses, family members (S/D/W/H/O)
- Submit deposit/withdrawal via POST /transactions with denominationBreakdown
- Cashier position auto-loads for CASHIER role (no filter dropdowns)
- Pagination added to cash-history tabs and currency-exchange-detail
- Cashier menu simplified for cashier role permissions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Share Collection screen under Cashier menu for cash pre-collection
before share account activation; posts Dr Cash Vault, Cr Share Sundry,
Cr Income GL entries with duplicate-collection guard
- Restore all 4 GL mappings (Assets, Liabilities, Income, Equity) in Share
Product accounting step with pill-style savings-product UI
- Remove Multiples section from Share Product currency step; default
Decimal Places to 2
- GET /cashier/sharecollection/:id endpoint for collection status check
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Added hideButtons @Input to SavingsAccountPreviewStepComponent and passed
hideButtons=true from the edit form — prevents the preview step's own
Cancel/Submit row from rendering alongside the tab action bar's buttons.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>
- New 'GL View' toggle button in header — switches between
denomination report and GL entries table
- GL table: Voucher No, A/C No, A/C Name (customer), DR (red), CR (green)
- Filters: Teller Head dropdown → Cashier dropdown (cascading)
- Load button resets to denomination view (showGl = false)
- Header shows Total DR / Total CR summary
- DR rows: light red bg; CR rows: light green bg
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>
- Cash Settlement form: morning panel (denomination pills) + Morning column in denomination table
- Reconciliation form: morning panel (denomination pills) + Morning column in denomination table
- Cashier Position Report: Morning vs Current comparison bar + Morning column (single-cashier mode)
- Cash History – Settlement detail panel: Morning Received vs Settled comparison bar + Morning column
- Cash History – denomination Notes/Coins separation in detail panel for all transaction types
- CashierService: added getCashierMorningBalance() calling GET /cashreports/cashier-morning
- All morning data loaded via forkJoin alongside existing API calls (no extra loading states)
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>
Standalone Angular page to manage currency notes & coins: hero + stat
tiles, notes/coins card grids, slide-in drawer for add/edit. Supports
CRUD, enable/disable, and client-side duplicate (denomination+kind)
validation with snackbar feedback. Added route and Admin menu link.
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>
- Added Pending Account tab showing savings/FD/RD/current accounts with status=pending (100)
- Added Reject Account tab showing accounts with status=rejected (500)
- Each tab displays: account no, client name, product, type badge, office, field officer, submitted/rejected date, status
- Bulk approve with correct endpoint per deposit type (savings/FD/RD/current)
- Resolvers use forkJoin to fetch savings + current accounts in parallel
- Office name resolved via /offices map; field officer name taken directly from API response
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Show only active accounts (status=300) for SB/CA/FD/RD lists; status sent as query param
- Add FROM/TO date range filter (API fires only when both are set) and independent AS ON DATE filter
- Restrict date pickers to today max (no future date selection)
- Default sort: latest accounts on top (ORDER BY id DESC)
- Full UI redesign: accent header, monospace account pill, client avatar, modern badges
- AccountsService: added status, fromDate, toDate, asOnDate to AccountListParams and all 4 methods
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New accounts module with list, routing, and service
- Redesigned accounts-list UI with modern card layout, status badges, and action buttons
- Fixed totalRecords formatting (removed formatNumber pipe from integer count)
- Register accounts module in app.module and shell navigation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Restore checkMinorFromDob() — auto sets nomineeIsMinor + locks toggle when age < 18
- Restore FD/RD account filtering logic (savingsOnly/fdAccounts/rdAccounts)
- Reset minorToggleLocked and selectedGuardian on new client select
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>