BRANCH OPERATIONS · {{ missedOnly ? 'MISSED CLOSE' : 'DAY REGISTER' }}

{{ missedOnly ? 'Missed Close Register' : 'Day Open / Day Close' }}

@if (missedOnly) { Business days that were opened and never closed. While a day stays open its closing balance never carries forward, a back-dated entry can still be posted into it, and any cash difference on that date goes unnoticed. } @else { The branch's business day, opened each morning and closed each evening. A day left open never carries its closing balance forward, and any cash difference on that date goes unnoticed — so the ones still hanging are listed first. }

@if (canOpenToday && !missedOnly) { }
@if (errorMsg) {
{{ errorMsg }}
} @if (successMsg) {
{{ successMsg }}
} @if (!canOperate && loaded) {
info You can see the register but not open or close a day — a Clerk, Head Cashier or Bank Manager does that, since a cashier works inside the day and cannot declare it closed.
} @if (missed.length > 0) {
warning {{ missed.length }} business day{{ missed.length === 1 ? '' : 's' }} never closed
@for (m of missed; track m.id) {
{{ m.businessDate }} open {{ m.daysOpen }} day{{ m.daysOpen === 1 ? '' : 's' }} opened {{ timeOnly(m.openedAt) }} by {{ m.openedByName }} · opening ₹{{ m.openingCash | number: '1.2-2' }} @if (canOperate) { }
}
} @if (missedOnly && loaded && missed.length === 0) {
check_circle

No missed closes. Every business day opened for this branch has been closed.

} @if (!missedOnly && openDay) {
DAY OPEN {{ openDay.businessDate }} opened {{ timeOnly(openDay.openedAt) }} by {{ openDay.openedByName }} · opening cash ₹{{ openDay.openingCash | number: '1.2-2' }}
@if (canOperate) { }
} @else if (loaded && canOperate) {
NO DAY OPEN Open the business day before any cash transaction is accepted.
} @if (showOpenForm) {
Open business day

Left blank, yesterday's closing figure carries forward automatically — which is what keeps the opening balance from drifting.

} @if (closeTarget) {
Close business day — {{ closeTarget.businessDate }}
@if (isLateClose) {

This day is being closed after its own date. It will be recorded as a force close, with the reason below kept permanently against it.

} @if (previewLoading) {

Working out the day's figure…

} @if (preview) {
Opening cash (carried forward) ₹{{ preview.openingCash | number: '1.2-2' }}
+ Cash deposits taken (approved) ₹{{ preview.deposits | number: '1.2-2' }}
+ Cash drawn from vault ₹{{ preview.vaultIn | number: '1.2-2' }}
− Cash paid out (approved withdrawals) ₹{{ preview.withdrawals | number: '1.2-2' }}
− Cash settled back to vault ₹{{ preview.settledOut | number: '1.2-2' }}
Cash the branch should be holding ₹{{ preview.expectedCash | number: '1.2-2' }}
}
@if (preview && liveDifference !== null) { @if (liveDifference === 0) {
Difference Tallied
} @else {
Difference {{ liveDifference > 0 ? 'Excess' : 'Short' }} ₹{{ liveDifference < 0 ? -liveDifference : (liveDifference | number: '1.2-2') }}
} } @if (preview && liveDifference !== 0) { }

Pre-filled with what the books expect — change it only if the drawer counted something different, and that difference is then recorded against the day.

@if (isLateClose) { }

The figure above is stored against the record, so a difference stays readable later even if a transaction is reversed afterwards.

} @if (loading) {
Loading…
} @if (!loading && loaded && days.length === 0 && !missedOnly) {
event_note

No business day has been opened for this branch yet.

} @if (days.length > 0 && !missedOnly) {
@for (d of days; track d.id) { }
Business Date Status Opened By Opening ₹ Closed By Closing ₹ Book ₹ Difference Note
{{ d.businessDate }} @if (d.status === 'OPEN') { OPEN } @else if (d.forceClosed) { FORCE CLOSED } @else { CLOSED } {{ d.openedByName ?? '—' }} · {{ timeOnly(d.openedAt) }} ₹{{ d.openingCash | number: '1.2-2' }} {{ d.closedByName ?? '—' }} @if (d.closedAt) { · {{ timeOnly(d.closedAt) }} } {{ d.closingCash != null ? '₹' + (d.closingCash | number: '1.2-2') : '—' }} {{ d.bookCash != null ? '₹' + (d.bookCash | number: '1.2-2') : '—' }} @if (d.cashDifference == null) { — } @else if (d.cashDifference === 0) { Tallied } @else { {{ differenceLabel(d.cashDifference) }} } @if (d.forceCloseReason) { Left open: {{ d.forceCloseReason }} } @if (d.remarks) { {{ d.remarks }} }
}