End of the Day Report

What moved today, whether the cash agrees with the books, and who signs off.

@if (loading) {
Loading the day’s figures…
} @if (loaded) {

Daily EOD & Transaction Report

Date {{ date | date: 'dd MMM yyyy' }}
Branch {{ branchName || '—' }}
Prepared by {{ preparedBy || '—' }}
Scope {{ scopedToCashier ? 'My counter' : 'Branch counter' }}

1 Transaction Summary

@if (sectionLines.length) {

Where the money came from

@for (l of sectionLines; track l.label) { }
Source Entries Money in Money out
{{ l.label }} {{ l.count }} {{ l.credit ? (l.credit | currency: 'INR') : '—' }} {{ l.debit ? (l.debit | currency: 'INR') : '—' }}
Total {{ txnCount }} {{ summaryCreditTotal | currency: 'INR' }} {{ summaryDebitTotal | currency: 'INR' }}

What kind of entries

@for (l of kindLines; track l.label) { }
Kind Entries Money in Money out
{{ l.label }} {{ l.count }} {{ l.credit ? (l.credit | currency: 'INR') : '—' }} {{ l.debit ? (l.debit | currency: 'INR') : '—' }}

Only entries that actually moved money. Anything still pending is listed at the bottom. These figures match the Day Book for the same date.

} @else {
No transactions on this date.
}

2 Cash

@if (scopedToCashier) {

Your drawer today

@if (interCashierIn) { } @if (settledOut) { } @if (interCashierOut) { } @if (variance !== null) { }
Cash you took from the vault this morning {{ openingFloat | currency: 'INR' }}
Cash you took from members deposits, including DD cash +{{ cashDeposits | currency: 'INR' }}
Cash another cashier gave you +{{ interCashierIn | currency: 'INR' }}
Cash you paid to members withdrawals −{{ cashWithdrawals | currency: 'INR' }}
Cash you handed back to the vault −{{ settledOut | currency: 'INR' }}
Cash you gave another cashier −{{ interCashierOut | currency: 'INR' }}
So your drawer should hold @if (expectedCash !== null) { {{ expectedCash | currency: 'INR' }} } @else { — }
System says you hold @if (actualCash !== null) { {{ actualCash | currency: 'INR' }} } @else { nothing recorded }
Difference {{ variance | currency: 'INR' }}
@if (variance !== null) { @if (varianceOk) {

check_circle Your cash agrees. Nothing short, nothing over.

} @else {

error {{ variance! > 0 ? 'Extra' : 'Short' }} by {{ (variance! > 0 ? variance : -variance!) | currency: 'INR' }}. Explain this before closing.

} } @else {

Today’s cash legs were not sent for this login, so nothing is compared.

} } @else {

Cash that moved across the branch today

Cash taken from members deposits +{{ branchDeposits ?? 0 | currency: 'INR' }}
Cash paid to members withdrawals and closures −{{ branchWithdrawals ?? 0 | currency: 'INR' }}
Net change today {{ branchNetMovement | currency: 'INR' }}

Cash the branch is holding right now

In the vaults {{ vaultTotal ?? 0 | currency: 'INR' }}
With the cashiers {{ drawersTotal ?? 0 | currency: 'INR' }}
Total cash in the branch @if (branchHeldTotal !== null) { {{ branchHeldTotal | currency: 'INR' }} } @else { nothing recorded }

These are two different things and are not subtracted from each other. The first is today’s movement; the second is everything the branch has accumulated to date. Each cashier’s own drawer is checked against their own day on their login, and the branch figure is signed off on the Day Open / Day Close screen.

}

3 Handled By

@if (byUser.length) {

What each person handled

@for (u of byUser; track u.label) { }
Handled by Entries Money in Money out Net
{{ u.label }} {{ u.count }} {{ u.credit ? (u.credit | currency: 'INR') : '—' }} {{ u.debit ? (u.debit | currency: 'INR') : '—' }} {{ u.credit - u.debit | currency: 'INR' }}
Total {{ txnCount }} {{ summaryCreditTotal | currency: 'INR' }} {{ summaryDebitTotal | currency: 'INR' }} {{ summaryCreditTotal - summaryDebitTotal | currency: 'INR' }}
} @else {
Nobody moved money on this date.
} @if (cashierPositions.length) {

What each cashier is holding

@for (p of cashierPositions; track p.cashierId) { } @if (cashierPositions.length > 1) { }
Cashier Cash held
{{ p.cashierName }} {{ p.totalAmount | currency: 'INR' }}
Total {{ cashierPositionTotal | currency: 'INR' }}

This is what each drawer should contain right now — a running total, not just today. Count against it before settling to the vault.

}

4 Every Transaction

@if (approvedRows.length) { @for (r of approvedRows; track r.voucherNo + '|' + r.txnId) { }
Voucher Kind Account Party Handled by Money in Money out
{{ r.voucherNo || '—' }} {{ kindLabel(r.kind) }} {{ r.accountNo || '—' }} {{ r.party || '—' }} {{ r.handledBy || '—' }} {{ r.side === 'CR' ? (r.amount | currency: 'INR') : '—' }} {{ r.side === 'DR' ? (r.amount | currency: 'INR') : '—' }}
Total — {{ txnCount }} entries {{ summaryCreditTotal | currency: 'INR' }} {{ summaryDebitTotal | currency: 'INR' }}
} @else {
No transactions on this date.
} @if (pendingRows.length) {

Still pending — no money has moved on these

@for (r of pendingRows; track r.voucherNo + '|' + r.txnId) { }
Voucher Kind Account Party Raised by Amount
{{ r.voucherNo || '—' }} {{ kindLabel(r.kind) }} {{ r.accountNo || '—' }} {{ r.party || '—' }} {{ r.handledBy || '—' }} {{ r.amount | currency: 'INR' }}
}
@if (priorDayRows.length) {

nights_stay Posted Overnight — work of {{ priorDayDate ? (priorDayDate | date: 'dd MMM yyyy') : 'the previous day' }}

These belong to {{ priorDayDate ? (priorDayDate | date: 'dd MMM yyyy') : 'the previous day' }} the day the system posted them against — already closed
→
Showing on {{ date | date: 'dd MMM yyyy' }} today’s report, because the run finished after midnight

The nightly run posted these after {{ priorDayDate ? (priorDayDate | date: 'dd MMM') : 'the previous day' }} had already closed and been signed off, so they surface on today’s report instead. In the ledger they sit on {{ priorDayDate ? (priorDayDate | date: 'dd MMM') : 'that date' }}, and they are not counted in any figure above.

@for (r of priorDayRows; track r.voucherNo + '|' + r.txnId) { }
Voucher Kind Account Party Ledger date Money in Money out
{{ r.voucherNo || '—' }} {{ kindLabel(r.kind) }} {{ r.accountNo || '—' }} {{ r.party || '—' }} {{ r.effectiveDate ? (r.effectiveDate | date: 'dd MMM yyyy') : '—' }} {{ r.side === 'CR' ? (r.amount | currency: 'INR') : '—' }} {{ r.side === 'DR' ? (r.amount | currency: 'INR') : '—' }}
Total — {{ priorDayRows.length }} entries {{ priorDayCredit | currency: 'INR' }} {{ priorDayDebit | currency: 'INR' }}
}

5 Anything Outstanding

  • Entries handled {{ txnCount }} entries · {{ kindLines.length }} kind(s)
  • Waiting for approval @if (pendingRows.length) { {{ pendingRows.length }} entry(ies) — the day cannot close until these are done } @else { None }
  • Slips that did not match @if (mismatchRows.length) { {{ mismatchRows.length }} slip(s) do not agree with the system } @else { None }
  • Slips not checked yet {{ unverifiedRows.length ? unverifiedRows.length + ' entry(ies) still to be checked against paper' : 'All checked' }}
  • @if (priorDayRows.length) {
  • Posted overnight {{ priorDayRows.length }} entry(ies) for {{ priorDayDate ? (priorDayDate | date: 'dd MMM') : 'the previous day' }} — listed in their own section, not in today’s figures
  • }
  • Status {{ allClear ? 'Everything is clear — the day is ready to close.' : 'Sort out the items above before closing the day.' }}
{{ supervising ? 'Prepared by' : 'Cashier' }}
{{ preparedBy || '' }}
Manager / Principal Officer
 

Generated from the day book and the closing cash report for {{ date | date: 'dd MMM yyyy' }}. Figures move with the underlying vouchers — reprint after any reversal.

}