This entire feature — submitting a governed Share Withdrawal Request
directly from a Bank Transfer's DR(Share)/CR(linked savings) row pair
— was silently dropped from demo-backup during the dev merge's auto-
resolve, even though the feature files it depends on (clerk-share-
withdrawal.service.ts) were present. Restores: paymentTypesForRow()
(hides cash payment types for Share rows and their settlement CR
row), the SHARE NO./RESOLUTION NO./MEETING DATE fields (replacing
AMOUNT/CHEQUE NO./CHEQ. DATE for Share rows), rowSharePrices/
rowClientIds/rowLinkedSavingsAcNo tracking, submitShareRedemptionTransfer()
+ its confirm/submit flow, syncShareLinkedAmounts() auto-fill, the
Share-aware ecsAcNo/currentBalance logic, the Other Information panel's
Share-specific fields (No. of Shares Held, Market Price/Share,
Resolution No., Linked Savings A/C No.), and the SHR guard blocking
the generic Deposit/Withdrawal Slip flow for Share accounts.
Reverts all commits pushed to demo today (a5124ca3, 858c277a, a1a50ab8,
f72abb09, fcf66657) back to f8c532f7 as a single forward commit, without
rewriting history. All reverted content (Share Withdrawal/Closure feature,
TDS reports, KYC exception tracking, client-edit-email-dialog, form121 tab,
search-select) remains intact on dev and was verified identical before
this revert.
Clerk submits a governed share redemption request (shares, Board Resolution
No., Meeting Date, settlement Payment Type); Bank Manager reviews with a
live backend-validated checklist (account/GL state, not just submit-time
snapshot) before approving, which redeems the shares and settles the
linked savings account in one transaction. Adds a Passbook tab to the
Share Account view, a reusable search-select control, and a Savings
Product "Map Payment Types to Specific Funds" fund-source override (only
Loan Products had this before) so settlement can be GL-mapped correctly.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds sponsor-dd and sponsor-dd-reconciliation feature modules, a
shared customer search dialog, and wires them into routing/shell/
organization screens alongside cashier and deposit-request updates.
- 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>
- 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>
- 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>