Reports

Reconcile KOT Sales by Table and Tender

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

SectionIncluded recordsWhy totals can differ
Main table summaryEligible matching sales whose table_number is present and not empty.Counter and takeaway sales without a table number are excluded.
Payment Method SummaryPayment aggregation across all eligible matching sales.It can include non-table sales that never appear in the main grid.
Order Type SummaryAll 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

  1. Open Reports, then Sales.
  2. Open KOT Reports and select Sales Summary.
  3. Open Filter and choose the sale-date range.
  4. Select one branch. The current screen uses only the first selected branch even when the control contains several values.
  5. Apply the filter.
  6. Reconcile the main table, Payment Method Summary and Order Type Summary as separate scopes.
  7. Expand each table when you need sale and item evidence.
  8. Export CSV or use PDF after confirming the branch and period.

Which Sales Are Eligible

RuleCurrent behaviorOperational meaning
Sale processAdd, Edit and PartialReturn are included.Partial-return records can contribute values; inspect the source sale before treating totals as gross sales.
DateThe 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.
BranchOne branch ID is sent: the first selected value, or the current branch as fallback.Run branches separately and label exports clearly.
KOT flagThe 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.
TableOnly the main table summary requires a non-empty table_number.Tender and order-type summaries have a broader scope.
AccessReport Read permission is required.An authorization error is not a zero-sales result.

Understand Every Main Column

ColumnWhat it showsCurrent caveat
Table NoThe exact persisted table-number label used for grouping.Spelling or case differences can split one physical table into several groups.
QtySum of item quantities in the table group.Includes quantities from eligible PartialReturn records.
AmountSum of quantity multiplied by stored unit price.The backend names this amount_without_tax, but inclusive unit prices can make that label misleading.
DiscountA 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.
TaxSum of stored item tax_amount values.Missing item tax amounts are treated as zero.
Additional DiscountA 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.
PaxSum of saved person_count for sales in the table group.A blank or zero value may mean staff did not record pax.
Total AmountSum 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

  1. Confirm the active branch and period.
  2. Select the share icon inside Sales Summary.
  3. Posnic reloads the summary and writes KOT_Sales_Summary_YYYY-MM-DD.csv; the filename date is the download date.
  4. Review the table summary section first.
  5. Review the appended Table Details section, which is fetched one table at a time.
  6. Review the appended Payment Method/Tender Summary and Order Type/Dine sections.
  7. 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

ProblemCheckAction
No table-wise KOT records appearsFirst selected branch, sale-date range, eligible process and non-empty table_numberTest with a known table-number sale in the same scope.
Tender total exceeds table totalNon-table sales in the same periodReconcile the payment summary against all matching Sales History records.
Discount shows a dashSource sale, receipt and Discount ReportDo not interpret the dash as zero; the current table summary lacks populated discount fields.
Several branches were selectedWhich value is firstRun one branch at a time.
CSV is missing one table's detailsEach table listed in the first CSV sectionRe-run the export and verify every detail section; a failed detail call can be skipped silently.
PDF does not resemble the table gridExpected report formatUse it as an item-level daily report or preserve the CSV for table-grouped evidence.
Payment or order summary is hiddenWhether the main table has at least one groupUse dedicated reports when the period contains only non-table activity.