Commit Graph
12 Commits
Author SHA1 Message Date
Jaanu423andClaude Sonnet 4.6 010adcb44f feat(cashier): enhance transaction entry TYPE/TXN TP options, auto-search, and account type configs
- 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>
2026-06-09 18:26:20 +05:30
Jaanu423andClaude Sonnet 4.6 40a436dabe feat(clerk): add dedicated nav pages, state restore, and fullscreen ESC fix
- 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>
2026-06-09 12:49:06 +05:30
Jaanu423andClaude Sonnet 4.6 f7d9259eb7 feat(cashier): add CBS Blue Warm Stone theme, validations, non-individual support, and custom alert modal
- Replace table grid with ws-wrap card-form layout (Warm Stone / CBS Blue design)
- Add day-status blocking banners (previousDayUnsettled, morningTransferReceived)
- Add custom styled alert modal replacing browser alert() — error/warning/info/success types
- Add Non-Individual Account Details section with Partners table (click-to-view signature/image)
- Fix denomination overdraft inline alert in Closing Position panel
- Fix bannedEntityMatch/willfulDefaulter false positive (DB stores YES/NO strings)
- Fix denomination mismatch 403 — only send denomination when cash payment matches amount
- Fix Today's Activity for CA accounts (m_current_account_transaction, remarks column, type=7 label)
- Fix A/C TYPE [object Object] — map from acTyp label
- Fix charge deduction sign — use transactionType.deposit instead of withdrawal
- Remove Add Row buttons everywhere
- CBS Blue theme variables: focus #2563eb, accent #e87722, Hanken Grotesk + Newsreader fonts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 10:39:34 +05:30
Jaanu423andClaude Sonnet 4.6 f64047080a feat(cashier): complete transaction entry UI overhaul with Warm Stone theme and validations
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>
2026-06-05 22:27:00 +05:30
Jaanu423andClaude Sonnet 4.6 9094b9a0eb feat(cashier): add full-screen cashier teller workstation dashboard
- 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>
2026-06-05 10:59:34 +05:30
Jaanu423andClaude Sonnet 4.6 c8e9ab8f84 feat(share): add Share Collection cashier flow and fix Share Product accounting
- 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>
2026-06-04 13:20:53 +05:30
Jaanu423andClaude Sonnet 4.6 3be2f96210 feat(cashier): GL Entries view in Closing Cash Report
- 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>
2026-06-02 10:42:48 +05:30
Jaanu423andClaude Sonnet 4.6 4ffeb6ee92 feat(cashier): add morning transfer & previous-day settlement hard block
- 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>
2026-06-01 13:14:29 +05:30
Jaanu423andClaude Sonnet 4.6 f291e4da5b feat(cashier): denomination overdraft validation, exchange detail fix, cash exchange in reports
- 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>
2026-06-01 10:10:17 +05:30
Jaanu423andClaude Sonnet 4.6 51495f8eb8 feat(cashier): morning opening balance panel across settlement, reconciliation, position & history
- 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>
2026-05-31 08:54:27 +05:30
Jaanu423 6433ae068d feat(cashier): integrate expected balance, settlement verification, and reconciliation checks 2026-05-28 22:30:08 +05:30
Jaanu423andClaude Sonnet 4.6 7ccaffa7f1 feat: cashier denomination-wise opening & closing balance panels in all deposit/withdrawal forms
OVERVIEW
--------
Added real-time cashier cash position display inside the denomination breakdown
panel of all 4 transaction entry screens: Savings, Current Account, Recurring
Deposit, and Fixed Deposit. Shows opening balance at the top and projected
closing balance at the bottom after factoring in the current transaction.

BACKEND INTEGRATION
-------------------
- New CashierService (src/app/cashier/cashier.service.ts)
  getCashierPositionForMe(asOfDate?) calls GET /cashreports/cashier-position/me
  Returns denomination-wise opening cash position for the logged-in cashier user.
  Non-cashier users receive empty denominations array; UI hides panels silently.

OPENING BALANCE CARD (top of denomination panel)
-------------------------------------------------
- Loaded on ngOnInit() via loadOpeningPosition() in all 4 component .ts files
- Notes and Coins displayed in separate labeled pill sections
- Each pill shows: Rs{value} x{count} format
- Card is hidden entirely if the logged-in user is not a cashier

CLOSING BALANCE CARD (below tally / Apply button)
--------------------------------------------------
- Computed getter closingDenoms() merges opening position with entered denominations
  deposit:    closingCount = openCount + enteredCount
  withdrawal: closingCount = openCount - enteredCount
- Notes and Coins in separate labeled pill sections (identical format to opening)
- Entered/changed denominations (delta != 0): full opacity + bold font weight
- Untouched denominations (delta = 0): 38% opacity, clearly dimmed, no borders
- closingTotal = openingTotal +/- denominationTotal shown in card header
- Card turns green for positive closing balance, red for negative

COMPONENTS UPDATED
------------------
- savings-account-transactions       (.ts / .html / .scss)
- current-account-transactions       (.ts / .html / .scss)
- deposit-recurring-deposits-account (.ts / .html / .scss)
- fixed-deposits-cash-transaction    (.ts / .html / .scss)

CASHIER MODULE (new - src/app/cashier/)
-----------------------------------------
Full cashier workspace module added to the app:
- cashier.service.ts          API calls (position, transfers, settlement, etc.)
- cashier.module.ts           Angular module declaration
- cashier-routing.module.ts   Lazy-loaded routes
- cashier-position/           Cashier cash position dashboard
- cash-exchange-entry/        Cash exchange denomination entry
- cash-history/               Transaction history per cashier
- cash-settlement/            End-of-day cash settlement
- cash-transfer/              Vault-to-cashier cash transfer
- inter-cashier-transfer/     Transfer between cashier drawers
- reconciliation/             Cash reconciliation with GL
- closing-cash-report/        Closing balance report
- currency-exchange-detail/   Currency exchange breakdown
- excess-transaction-report/  Excess/short transaction report
Module wired into app.module.ts and shell nav (shell.component.html).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 17:39:31 +05:30