Despite its label, the current Open Item tab is an instant-item report. It lists individual sale lines whose item_status is instant; it does not prove that a table order is still open or unpaid.
Menu path
Reports -> Sales -> KOT Reports -> Open Item
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
frontend/modules/kotReport.html Open Item tab, columns and paging, frontend/static/script/js/modules/js/report_kot.js PosnicPro.kotopenitemreport display and CSV export, api/src/controllers/sales.controller.js instantSalesReports filters, access and response mapping, api/src/services/sale.service.js getInstantSalesReportsData item-level pagination, demo.posnic.io KOT Open Item captured on 2026-09-11
KOT Open ItemLive demo captured 2026-09-11. The current tab reads sale lines marked item_status instant; No Open Items means none matched the selected branch, sale-date range and eligible sale processes.
Read the Name Correctly
Question
Current answer
Use instead when needed
Does this show every active table KOT?
No. It requires an item line with item_status exactly instant.
Use the active KOT screen and KOT History for table-order state.
Does this show unpaid sales?
No. Payment status is not part of the report filter or displayed columns.
Use Pending Payments and Sales History.
Does this show held or parked sales?
No. Hold status is not the defining condition.
Use the Parked/Hold workflow.
What does it show?
Individual instant-status lines from otherwise eligible sales.
Use it to review quick or instant item activity by line.
Run the Report
Open Reports, then Sales.
Open KOT Reports and select Open Item.
Open Filter and choose the sale-date range and one or more branches.
Apply the filter.
Review Item Name, Qty and Total for each returned instant-status line.
Use Sales History when you need the sale ID, customer, operator, payment state or full receipt.
Which Lines Appear
Rule
Current behavior
Meaning
Item status
items.item_status must equal instant exactly.
Normal catalog lines and other item statuses are excluded.
Sale process
Add, Edit, PartialReturn and Partial are eligible.
Returned or partially processed sales can contribute instant lines; interpret totals with source-sale context.
Date
The sale date field is filtered, with session filtering applied when configured.
This is not an updated-date report.
Branch
All valid branch IDs sent by the normal view are accepted.
The result may combine selected branches, but no branch column is shown.
Granularity
The sale is unwound into item lines before pagination and counting.
Total entries counts matching lines, not distinct sales or item names.
Access
Report Read permission works; super admin, admin, manager and API roles are also allowed.
A denied response is an access problem, not an empty report.
Understand Every Column
Column
What it shows
Important limitation
Item Name
The stored item_name on the matching sale line.
No SKU, barcode, sale ID or branch is displayed.
Qty
The stored item_quantity for that one line.
Rows are not grouped by item name; repeat names can belong to different sales.
Total
The stored item total_amount formatted to two decimals in the browser.
The screen does not expose tax, discount, unit price or payment status.
Pagination and Ordering
Pagination is performed by the API after each matching sale is unwound into item lines.
The default page size is 5, with 10, 25, 50 and 100 available.
Rows are sorted by parent sale date descending before skip and limit.
The visible row number is only its position in the filtered, paginated result.
The page does not show the date even though date controls ordering and filtering.
Changing the filter or tab resets the report to page 1.
Export All Matching Lines
Confirm the date and branch filter and ensure the report has records.
Select the share icon inside Open Item.
Posnic requests page 1 again with the current total record count as its limit.
Open KOT_Open_Item_YYYY-MM-DD.csv.
Confirm the file contains Item Name, Quantity and Amount.
Join the export back to Sales History before using it as financial or staff evidence, because it omits sale ID, date, branch, customer and operator.
Export Limitations
The filename uses the download date, not the selected report range.
The CSV writes the local currency symbol into Amount values.
Current CSV construction does not quote or escape item names. Commas, quotes or line breaks can corrupt column alignment.
Export All uses the total recorded by the last on-screen response. If matching data changes between viewing and exporting, re-run and verify the row count.
A report with zero rows shows No records to export.
Troubleshooting
Problem
Check
Action
An active table order is missing
Whether its lines have item_status instant
Use the active KOT screen; Open Item is not an active-order register.
An unpaid sale is missing
Payment status
Open Pending Payments instead.
The same item appears many times
Matching line count and source sales
Treat each row as a sale line and reconcile in Sales History.
A branch cannot be identified
How many branches were selected
Run one branch at a time when branch attribution matters.
CSV columns shift
Punctuation in item names
Review the file before import and use CSV-safe item names until escaping is corrected.
No Open Items appears
Sale date, branch, session filter, sale process and exact instant status