KOT Sales Summary is a three-part reconciliation screen. Its main grid groups eligible sales with a table number, while Payment Method Summary and Order Type Summary use the wider matching sale set; compare the sections deliberately instead of assuming every total has identical scope.
Menu path
Reports -> Sales -> KOT Reports -> Sales Summary
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
frontend/modules/kotReport.html Sales Summary tables and controls, frontend/static/script/js/modules/js/report_kot.js salesSummaryTable expansion CSV and PDF behavior, api/src/controllers/sales.controller.js dailySalesReports filtering grouping and response scope, api/src/services/sale.service.js daily report and split-payment aggregations, demo.posnic.io KOT Sales Summary captured on 2026-09-11
KOT Sales SummaryLive demo captured 2026-09-11. The exact empty state is shown when the first selected branch and sale-date range produce no eligible sale with a non-empty table number; in that state Posnic also hides the tender and order-type summaries.
Know the Three Scopes
Section
Included records
Why totals can differ
Main table summary
Eligible matching sales whose table_number is present and not empty.
Counter and takeaway sales without a table number are excluded.
Payment Method Summary
Payment aggregation across all eligible matching sales.
It can include non-table sales that never appear in the main grid.
Order Type Summary
All eligible matching sales with a non-empty dine_type.
Dine-in, takeaway or other order types can be counted even without a table number.
Run the Report
Open Reports, then Sales.
Open KOT Reports and select Sales Summary.
Open Filter and choose the sale-date range.
Select one branch. The current screen uses only the first selected branch even when the control contains several values.
Apply the filter.
Reconcile the main table, Payment Method Summary and Order Type Summary as separate scopes.
Expand each table when you need sale and item evidence.
Export CSV or use PDF after confirming the branch and period.
Which Sales Are Eligible
Rule
Current behavior
Operational meaning
Sale process
Add, Edit and PartialReturn are included.
Partial-return records can contribute values; inspect the source sale before treating totals as gross sales.
Date
The sale date is filtered from the beginning through the end of the selected days.
This report does not use updated_date as its primary eligibility field.
Branch
One branch ID is sent: the first selected value, or the current branch as fallback.
Run branches separately and label exports clearly.
KOT flag
The Sales Summary query does not require was_kot_proceeded.
Despite the KOT screen label, eligibility is not proof that a sale was sent to the kitchen.
Table
Only the main table summary requires a non-empty table_number.
Tender and order-type summaries have a broader scope.
Access
Report Read permission is required.
An authorization error is not a zero-sales result.
Understand Every Main Column
Column
What it shows
Current caveat
Table No
The exact persisted table-number label used for grouping.
Spelling or case differences can split one physical table into several groups.
Qty
Sum of item quantities in the table group.
Includes quantities from eligible PartialReturn records.
Amount
Sum of quantity multiplied by stored unit price.
The backend names this amount_without_tax, but inclusive unit prices can make that label misleading.
Discount
A per-table item-discount field expected by the browser.
The current summary response does not populate this field, so a dash is not proof of zero item discount.
Tax
Sum of stored item tax_amount values.
Missing item tax amounts are treated as zero.
Additional Discount
A per-table extra-discount field expected by the browser.
The current summary response does not populate it; verify bill discounts in the expanded sale, receipt or Discount Report.
Pax
Sum of saved person_count for sales in the table group.
A blank or zero value may mean staff did not record pax.
Total Amount
Sum of saved sales_total, falling back to total, for the grouped table sales.
Use source receipts for unusual return, discount or rounding cases.
Expand Table Details
Select the plus icon at the start of a table row; details are loaded only when requested.
The expanded table shows Date, Sale ID, Item Name, Qty, Amount, Discount, Tax, Extra Discount, Pax, Payment Type and Total Amount.
Use Sale ID to locate the source transaction in Sales History.
The screen asks the Tablewise Details endpoint for the exact table label, first branch and selected date range.
Collapse the row with the minus icon after review.
The main summary is not paginated; all returned table groups are rendered together.
Read Payment and Order Type Summaries
Payment Method Summary groups single-payment sales by payment_mode and split payments by each key in multi_payment.
When a non-split sale has no payment mode, the payment aggregation falls back to Cash.
Order Type Summary groups by dine_type and shows sale Count, saved Pax and Amount.
Neither summary is restricted to non-empty table numbers, so its total can legitimately exceed the main table total.
If the main table has no groups, the browser hides both summaries even when broader matching sales may exist.
Use dedicated payment reports and Sales History for final tender settlement evidence.
Export the Complete CSV
Confirm the active branch and period.
Select the share icon inside Sales Summary.
Posnic reloads the summary and writes KOT_Sales_Summary_YYYY-MM-DD.csv; the filename date is the download date.
Review the table summary section first.
Review the appended Table Details section, which is fetched one table at a time.
Review the appended Payment Method/Tender Summary and Order Type/Dine sections.
Compare row counts and Sale IDs with the screen and Sales History before filing the export.
CSV and PDF Limitations
CSV values are quoted when needed, including commas, quotes and line breaks.
If one table-detail request fails during CSV creation, the exporter silently skips that table and continues; verify every expected table is present.
The red PDF control requests the daily sales PDF with source=kot, loads it in a hidden frame and opens the browser print dialog; use the browser's Save as PDF option when a file is required.
The generated PDF is an item-level daily sale report with item, SKU, quantity, price, discount, tax and amount, followed by available extra-discount, tender and tax summaries. It is not a PDF copy of the table-grouped screen.
The page-level CSV, Excel and Email buttons above the tabs are disabled in the current live empty state; use the active tab's controls when records are available.
A separate PDF Summary implementation exists in code but its button is currently hidden, so operators should not expect that control.
Troubleshooting
Problem
Check
Action
No table-wise KOT records appears
First selected branch, sale-date range, eligible process and non-empty table_number
Test with a known table-number sale in the same scope.
Tender total exceeds table total
Non-table sales in the same period
Reconcile the payment summary against all matching Sales History records.
Discount shows a dash
Source sale, receipt and Discount Report
Do not interpret the dash as zero; the current table summary lacks populated discount fields.
Several branches were selected
Which value is first
Run one branch at a time.
CSV is missing one table's details
Each table listed in the first CSV section
Re-run the export and verify every detail section; a failed detail call can be skipped silently.
PDF does not resemble the table grid
Expected report format
Use it as an item-level daily report or preserve the CSV for table-grouped evidence.
Payment or order summary is hidden
Whether the main table has at least one group
Use dedicated reports when the period contains only non-table activity.