Reports

Audit Cancelled Items on Restaurant Orders

KOT Cancellation Report is a manager exception report built from cancel entries in saved sale change history. It groups activity by table and item, so use the source KOT and staff evidence to explain who cancelled each item and why.

Menu path
Reports -> Sales -> KOT Reports -> Cancellation Report
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

frontend/modules/kotReport.html Cancellation Report tab and columns, frontend/static/script/js/modules/js/report_kot.js cancellationSummaryTable pagination and CSV export, api/src/controllers/sales.controller.js dailySalesReports permission, branch and date handling, api/src/services/sale.service.js cancellationPipeline grouping and calculations, demo.posnic.io KOT Cancellation Report captured on 2026-09-11

KOT Cancellation ReportLive demo captured 2026-09-11. No Cancellations is a valid result when the selected branch and business-date range contain no table-linked change-history item whose process is cancel.

Run the Report

  1. Open Reports, then Sales.
  2. Open KOT Reports.
  3. Select Cancellation Report.
  4. Open Filter and choose the business-date range and branch.
  5. Apply the filter.
  6. Review each row against the source KOT, its change history, kitchen evidence and the staff explanation before shift close.

What Counts as a Cancellation

RuleCurrent behaviorOperational meaning
SourceThe report reads items nested inside each sale's changes history.It is an audit of recorded item changes, not simply a list of voided final receipts.
ProcessOnly change-history items whose process is exactly cancel are counted.Edits and additions do not become cancellations unless the saved item change carries that process.
Sale statusThe cancellation query does not restrict sale_process to Add, Edit or PartialReturn.A cancellation can be included regardless of the sale's current process value.
TableRows with an empty table number are removed after grouping.Takeaway or counter cancellations without a persisted table number will not appear.
DateThe API filters the sale date field from start of day through end of day after session filtering.Use the business date of the source sale; this differs from reports that filter updated_date.
BranchThe screen sends only the first selected branch, falling back to the current branch when none is selected.Run branches separately; selecting several does not produce a combined cancellation report.
AccessReport Read permission is required.An authorization error is not evidence that no cancellations occurred.

How Rows Are Grouped

  • Rows are grouped by the sale's table_number and the cancelled change item's item_name.
  • Cancel Qty is the sum of changes.items.item_quantity in that table-and-item group.
  • Cancel Amount is the sum of changes.items.total in that group.
  • Missing quantities and amounts are treated as zero.
  • The API rounds grouped quantity and amount to two decimal places.
  • Rows are sorted from highest Cancel Amount to lowest.
  • Multiple cancellations for the same named item at the same table are combined, so one row does not necessarily mean one cancellation event.

Understand Every Column

ColumnWhat it showsHow to use it
Table NoThe source sale's persisted table number.Locate the table's KOT history and confirm the service period.
Item NameThe item name stored in the cancelled change entry.Match the kitchen ticket and current catalog carefully; renamed items may retain an older name in history.
QtyCombined cancelled quantity for that table and item.Use it for waste or mistake review, not as a count of distinct button presses.
AmountCombined stored total from the cancelled item changes, shown with the local currency sign.Compare it with the original item price, quantity, tax and discount evidence.

Manager Cancellation Review

  1. Confirm the branch and business-date range before reading the empty state or totals.
  2. For each row, open KOT History and locate the source table orders.
  3. Separate customer-request changes, duplicate entry, kitchen shortage, preparation error, complimentary replacement and suspected misuse.
  4. Identify the operator and approving manager from the KOT/change evidence; the summary row itself does not display either name.
  5. Compare cancelled quantity with kitchen production and waste records.
  6. Compare Cancel Amount with the original item pricing and receipt evidence.
  7. Investigate repeated cancellation patterns by table, item, operator or time window.
  8. Retain the export and signed explanation with shift-close records.

Pagination and Export

  • The API returns the full cancellation summary; the browser paginates it locally at 5 rows by default.
  • The share icon reloads the report in export-all mode and creates KOT_Cancellation_Report_YYYY-MM-DD.csv.
  • The CSV contains Table No, Item Name, Cancel Count and Cancel Amount.
  • The export filename date is the download date, not the selected report range.
  • Current CSV construction does not quote or escape field values. An item or table name containing a comma, quote or line break can shift CSV columns; verify the file before importing it into accounting or analytics software.
  • The report has no event ID, sale ID, operator, reason or cancellation timestamp column. Keep source KOT evidence for a defensible audit trail.

Troubleshooting

ProblemCheckAction
No Cancellations appearsBranch, business date, source table number and a saved changes.items.process of cancelTest with a known table cancellation and verify its KOT history.
A counter cancellation is missingWhether the sale has a non-empty table_numberUse Sales History or other void evidence; this report deliberately drops blank-table groups.
Several branches were selectedWhich branch appears first in the selectorRun and export one branch at a time.
Quantity is larger than expectedWhether several cancellation events share the same table and item nameInspect source KOT changes; the report combines them.
CSV columns are misalignedCommas, quotes or line breaks in table or item namesOpen the file carefully and repair or re-export after using CSV-safe names.
Old and new report totals differSession filter, business-date bounds and source data changesUse the same authorized user, branch and date scope and preserve the export used for sign-off.