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
@@ -50,6 +50,7 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
|
||||
import { M3IconComponent } from '../shared/m3-ui/m3-icon/m3-icon.component';
|
||||
|
||||
import { VersionService } from '../system/version.service';
|
||||
import { AuthenticationService } from '../core/authentication/authentication.service';
|
||||
|
||||
/**
|
||||
* Login component.
|
||||
@@ -220,6 +221,7 @@ export class LoginComponent implements OnInit, OnDestroy {
|
||||
private dialog = inject(MatDialog);
|
||||
private twoFactorDialogRef: MatDialogRef<TwoFactorAuthenticationComponent> | null = null;
|
||||
private router = inject(Router);
|
||||
private authService = inject(AuthenticationService);
|
||||
|
||||
private versionService = inject(VersionService);
|
||||
|
||||
@@ -283,7 +285,9 @@ export class LoginComponent implements OnInit, OnDestroy {
|
||||
this.resetPassword = false;
|
||||
this.twoFactorAuthenticationRequired = false;
|
||||
this.closeTwoFactorDialog();
|
||||
this.router.navigate(['/'], { replaceUrl: true });
|
||||
// Cashier users go directly to the full-screen transaction entry dashboard
|
||||
const destination = this.authService.isCashierUser() ? ['/cashier/transaction-entry'] : ['/'];
|
||||
this.router.navigate(destination, { replaceUrl: true });
|
||||
} else if (alertType === 'Tenant Changed') {
|
||||
this.updateLogo();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user