feat(cashier): add GL denomination tracking, real-time balance, and enhanced closing report
- 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>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
010adcb44f
commit
05cbe21542
@@ -115,7 +115,12 @@
|
||||
</div>
|
||||
<div class="ws-f ws-f--actyp">
|
||||
<label class="ws-f__lbl" title="Account Type">AC. TP.</label>
|
||||
<select class="ws-f__ctl" [(ngModel)]="row.acTyp" (click)="$event.stopPropagation()">
|
||||
<select
|
||||
class="ws-f__ctl"
|
||||
[(ngModel)]="row.acTyp"
|
||||
(click)="$event.stopPropagation()"
|
||||
(change)="row.acTyp === 'GL' && (row.dbCr = 'Cr')"
|
||||
>
|
||||
@for (a of acTypOptions; track a) {
|
||||
<option [value]="a">{{ a }}</option>
|
||||
}
|
||||
@@ -156,6 +161,7 @@
|
||||
type="button"
|
||||
class="ws-seg__btn ws-seg__btn--dr"
|
||||
[class.ws-seg__btn--active-dr]="row.dbCr === 'Dr'"
|
||||
[disabled]="row.acTyp === 'GL'"
|
||||
(click)="row.dbCr = 'Dr'"
|
||||
>
|
||||
DR
|
||||
@@ -560,7 +566,8 @@
|
||||
</div>
|
||||
<div class="te-panel__body">
|
||||
<div class="te-balance-row">
|
||||
<span class="te-bal-num">1.</span><span class="te-bal-label">Current Balance</span>
|
||||
<span class="te-bal-num">1.</span>
|
||||
<span class="te-bal-label">{{ accountDetails?.glCode ? 'GL Balance' : 'Current Balance' }}</span>
|
||||
<span class="te-bal-value te-bal-value--cr"
|
||||
>{{ currencySymbol }}{{ currentBalance | number: '1.2-2' }}</span
|
||||
>
|
||||
@@ -685,8 +692,12 @@
|
||||
</div>
|
||||
}
|
||||
<div class="te-acs-nameblock">
|
||||
<span class="te-acs-name">{{ clientDetails?.displayName ?? accountDetails?.clientName ?? '—' }}</span>
|
||||
<span class="te-acs-acno">{{ accountDetails?.accountNo }}</span>
|
||||
<span class="te-acs-name">{{
|
||||
accountDetails?.glCode
|
||||
? (accountDetails?.name ?? '—')
|
||||
: (clientDetails?.displayName ?? accountDetails?.clientName ?? '—')
|
||||
}}</span>
|
||||
<span class="te-acs-acno">{{ accountDetails?.glCode ?? accountDetails?.accountNo }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="te-acs-sep"></div>
|
||||
@@ -713,7 +724,13 @@
|
||||
? 'Fixed Dep.'
|
||||
: selectedRow?.acTyp === 'RD'
|
||||
? 'Recurring'
|
||||
: '—')
|
||||
: selectedRow?.acTyp === 'GL'
|
||||
? (accountDetails?.type?.value ?? 'GL Account')
|
||||
: selectedRow?.acTyp === 'SHR'
|
||||
? 'Share'
|
||||
: selectedRow?.acTyp === 'LA'
|
||||
? 'Loan'
|
||||
: '—')
|
||||
}}</span
|
||||
>
|
||||
<span class="te-acs-kv"><b>Branch</b> {{ officeName ?? '—' }}</span>
|
||||
@@ -1083,7 +1100,11 @@
|
||||
</div>
|
||||
<div class="ws-f ws-f--actyp">
|
||||
<label class="ws-f__lbl">AC. TP.</label>
|
||||
<select class="ws-f__ctl" [(ngModel)]="row.acTyp">
|
||||
<select
|
||||
class="ws-f__ctl"
|
||||
[(ngModel)]="row.acTyp"
|
||||
(change)="row.acTyp === 'GL' && (row.dbCr = 'Cr')"
|
||||
>
|
||||
@for (a of acTypOptions; track a) {
|
||||
<option [value]="a">{{ a }}</option>
|
||||
}
|
||||
@@ -1116,6 +1137,7 @@
|
||||
type="button"
|
||||
class="ws-seg__btn ws-seg__btn--dr"
|
||||
[class.ws-seg__btn--active-dr]="row.dbCr === 'Dr'"
|
||||
[disabled]="row.acTyp === 'GL'"
|
||||
(click)="$event.stopPropagation(); row.dbCr = 'Dr'"
|
||||
>
|
||||
DR
|
||||
|
||||
Reference in New Issue
Block a user