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>
This commit is contained in:
Jaanu423
2026-06-05 10:59:34 +05:30
co-authored by Claude Sonnet 4.6
parent c8e9ab8f84
commit 9094b9a0eb
18 changed files with 2828 additions and 190 deletions
@@ -388,6 +388,30 @@ export class AuthenticationService {
return JSON.parse(this.storage.getItem(this.credentialsStorageKey));
}
/**
* Returns true ONLY for regular cashier role (not Head Cashier).
* Regular cashier → full-screen transaction entry, no nav.
* Head Cashier → normal CBS interface, all menus visible.
*/
isCashierUser(): boolean {
const creds = this.getCredentials();
if (!creds || !creds.permissions) return false;
// Super-admin / all-functions users are never cashier-only
if (creds.permissions.includes('ALL_FUNCTIONS')) return false;
if (creds.roles && Array.isArray(creds.roles)) {
const roleNames: string[] = creds.roles.map((r: any) => (r.name || r.role || '').toLowerCase().trim());
// Head Cashier gets full access — NOT a cashier-only user
if (roleNames.some((n) => n.includes('head cashier') || n === 'head_cashier')) {
return false;
}
// Regular CASHIER role → cashier-only mode
if (roleNames.some((n) => n === 'cashier')) {
return true;
}
}
return false;
}
/**
* Sets the user credentials.
*