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:
co-authored by
Claude Sonnet 4.6
parent
c8e9ab8f84
commit
9094b9a0eb
@@ -35,27 +35,55 @@
|
||||
}
|
||||
|
||||
<mat-tab-group animationDuration="150ms">
|
||||
<mat-tab label="Cash Transfers ({{ transfers.length }})">
|
||||
<mat-tab label="Cash Transfers ({{ transfersTotal }})">
|
||||
<div class="pg-tab-body">
|
||||
<ng-container *ngTemplateOutlet="txnTable; context: { rows: transfers }"></ng-container>
|
||||
<mat-paginator
|
||||
[length]="transfersTotal"
|
||||
[pageSize]="pageSize"
|
||||
[pageSizeOptions]="pageSizeOptions"
|
||||
showFirstLastButtons
|
||||
(page)="onPageChange('transfers', $event)"
|
||||
></mat-paginator>
|
||||
</div>
|
||||
</mat-tab>
|
||||
|
||||
<mat-tab label="Settlements ({{ settlements.length }})">
|
||||
<mat-tab label="Settlements ({{ settlementsTotal }})">
|
||||
<div class="pg-tab-body">
|
||||
<ng-container *ngTemplateOutlet="txnTable; context: { rows: settlements }"></ng-container>
|
||||
<mat-paginator
|
||||
[length]="settlementsTotal"
|
||||
[pageSize]="pageSize"
|
||||
[pageSizeOptions]="pageSizeOptions"
|
||||
showFirstLastButtons
|
||||
(page)="onPageChange('settlements', $event)"
|
||||
></mat-paginator>
|
||||
</div>
|
||||
</mat-tab>
|
||||
|
||||
<mat-tab label="Inter-Cashier ({{ interCashier.length }})">
|
||||
<mat-tab label="Inter-Cashier ({{ interTotal }})">
|
||||
<div class="pg-tab-body">
|
||||
<ng-container *ngTemplateOutlet="txnTable; context: { rows: interCashier }"></ng-container>
|
||||
<mat-paginator
|
||||
[length]="interTotal"
|
||||
[pageSize]="pageSize"
|
||||
[pageSizeOptions]="pageSizeOptions"
|
||||
showFirstLastButtons
|
||||
(page)="onPageChange('inter', $event)"
|
||||
></mat-paginator>
|
||||
</div>
|
||||
</mat-tab>
|
||||
|
||||
<mat-tab label="Cash Exchanges ({{ exchanges.length }})">
|
||||
<mat-tab label="Cash Exchanges ({{ exchangesTotal }})">
|
||||
<div class="pg-tab-body">
|
||||
<ng-container *ngTemplateOutlet="txnTable; context: { rows: exchanges }"></ng-container>
|
||||
<mat-paginator
|
||||
[length]="exchangesTotal"
|
||||
[pageSize]="pageSize"
|
||||
[pageSizeOptions]="pageSizeOptions"
|
||||
showFirstLastButtons
|
||||
(page)="onPageChange('exchanges', $event)"
|
||||
></mat-paginator>
|
||||
</div>
|
||||
</mat-tab>
|
||||
</mat-tab-group>
|
||||
|
||||
Reference in New Issue
Block a user