inventory_2 Count the branch's opening cash into notes and coins. If the Cash GL account has no balance yet, this count defines it; if it already carries one, the count must match it exactly. Either way, this also opens the branch's first business day with the same count.
Branch @for (office of officeData; track office) { {{ office.name }} } Business Date
@if (glLoading) {
Checking the cash GL account…
} @if (glError) {
error
{{ glError }}
} @if (glStatus && !glError) { @if (todayAlreadyOpen) {
lock
Business Day Already Open
{{ todayOpenInfo.businessDate }} — opened by {{ todayOpenInfo.openedByName }}, opening cash ₹{{ todayOpenInfo.openingCash | number: '1.2-2' }}
This branch has already opened today's business day — counting the drawer again here would only be rejected on submit. Deposits, withdrawals and closing today's day happen from Day Register instead.
} @else {
account_balance
Cash GL Account
({{ glStatus.glCode }}) {{ glStatus.glAccountName }}
@if (glHasBalance) {
Already holds ₹{{ glTarget.toLocaleString('en-IN') }} — count the drawer to exactly this amount.
} @else {
No opening balance posted yet — whatever you count below becomes this account's opening balance.
}
Denomination
Count
Amount
@for (d of allDenoms; track d.id) {
{{ d.label }} {{ d.kind }}
₹{{ subtotalFor(d).toLocaleString('en-IN') }}
}
Counted Total ₹{{ countedTotal.toLocaleString('en-IN') }}
@if (glHasBalance) {
GL Target ₹{{ glTarget.toLocaleString('en-IN') }}
}
@if (countedTotal <= 0) { edit_note Count each denomination above } @else if (isReconciled) { check_circle {{ glHasBalance ? 'Matches the GL balance' : 'Will define the GL opening balance' }} } @else { error Off by ₹{{ (countedTotal - glTarget < 0 ? glTarget - countedTotal : countedTotal - glTarget).toLocaleString( 'en-IN' ) }} }
@if (needsDifferenceReason) { Why does the count differ from the GL balance? } @if (errorMsg) {
{{ errorMsg }}
} @if (successMsg) {
check_circle
{{ successMsg }}
} @if (!successMsg) {
} } }