Reports

Review Detailed Kiosk and Self-Order Sales

Detailed kiosks is the transaction-level Kiosk Report. It lists eligible kiosk and self-order sales across the selected branches, then expands each order into item, SKU, price, quantity, discount, tax and total details.

Menu path
Reports -> Sales -> Kiosk Reports -> Detailed kiosks
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

frontend/modules/kioskReport.html Detailed kiosks tab filters columns pagination and controls, frontend/static/script/js/modules/js/report_kiosk.js detailed rendering expansion pricing and CSV export, api/src/middleware/sales.validation.js kiosk query normalization, api/src/controllers/sales.controller.js kiosk report access and response normalization, api/src/repositories/sale.repository.js kiosk eligibility plan limit and ordering, demo.posnic.io Detailed kiosks captured on 2026-09-11

Detailed kiosksLive demo captured 2026-09-11. The full demo range currently has no matching Kiosk or Self-Order sales, so Posnic shows No Records and disables the row-level export control.

Run the Detailed Report

  1. Enable Sales Channels and make sure the user has Report Read permission.
  2. Open Reports, then Sales, then Kiosk Reports.
  3. Select Detailed kiosks.
  4. Open Filter and choose the date range.
  5. Select one or more branches.
  6. Choose All Methods, Kiosk or Self-Order.
  7. Select Apply and wait for the table or No Records message.
  8. Use the plus icon beside an order to inspect its saved item lines.

Which Sales Are Included

RuleCurrent behaviorOperational meaning
ChannelAll Methods means sale_method Kiosk or Self-Order; a selected method is an exact match.Normal cashier sales are excluded.
Sale processAdd, Edit and PartialReturn are included.Returned or edited records can remain in this operational list; reconcile unusual totals with Sales History.
DateThe report filters updated_date from the selected start through end of day.Editing an older order can move it into a later reporting period.
BranchEvery valid selected branch ID is queried together.Rows do not display branch, so run branches separately when outlet attribution matters.
OrderingNewest updated_date is shown first.This is update order, not necessarily original sale order.
AccessReport Read must be exactly true.A 403 permission result is not an empty report.
PlanThe report applies the sales report plan limit; Free Plan UI can blur both tabs and disable export.Upgrade messaging or missing rows may be plan behavior rather than missing sales.

Read the Order Row

ColumnWhat it showsCheck
IDThe saved sales_id and a link to the sale detail route.Use it to reconcile the source sale.
DateThe normalized updated date shown in the shop format.It may differ from the original sale date.
Customer PhoneThe saved customer phone as a clickable telephone link.Blank or placeholder contact data can appear.
ItemsThe saved number_of_items value.Do not assume it equals the number of expanded rows or total units without checking.
Sales TypeKiosk or Self-Order sale_method.This is the channel filter field.
Order TypeThe saved order value.Verify channel terminology used by your shop.
TotalThe saved items_total formatted in the current currency.Reconcile payment, return and round-off differences elsewhere.

Expand and Inspect Items

  • Select the plus-circle in the first column; the row opens an inner item table.
  • Each saved line shows Item name, SKU, Price, Qty, Discount, Tax and Total.
  • For tax-inclusive lines, the displayed Price is backed out by dividing stored item_price by one plus the tax rate.
  • A percentage discount displays its rate and calculated line discount; a fixed discount is multiplied by quantity.
  • Tax displays its rate and a calculated amount after item discount.
  • The expanded Total comes from the saved line total_amount, so investigate disagreement with the browser's reconstructed price, discount or tax.
  • Item and order values are inserted into generated table HTML without explicit escaping; keep catalog and channel data trusted.

Pagination and Empty Results

  • The default page size is 5; available sizes are 5, 10, 25, 50 and 100.
  • Showing X to Y of Z counts sale records, not item lines or units.
  • Previous and Next request server pages sorted by most recently updated sale first.
  • When no sale matches, the table header, pagination and dedicated export control are hidden or disabled and the selected range is shown in the No Records message.
  • Refresh reruns the current Detailed kiosks query.

Export All to CSV

  1. Apply the final date, branch and channel filters and note the on-screen total.
  2. Select Export All To CSV inside the Detailed kiosks tab, not merely a page-level export button.
  3. Posnic requests one page using the last known total as the limit.
  4. The export writes one CSV row per item line, repeating its parent kiosk order fields.
  5. Confirm columns for kiosk ID, date, sale type, order type, customer phone, item count, item name, SKU, price, quantity, discount, tax and item total.
  6. Compare distinct kiosk IDs and row counts with the screen and source sales before filing the export.

Export and Audit Limits

  • The dedicated CSV omits branch, customer name, payment method, sale process, original sale date, operator, round-off, refund amount and order-level items_total.
  • The export uses kiosks_id normalized from sales_id, while the visible row links with the record _id.
  • Export All relies on the total from the most recent table response; data changes between load and export can change completeness.
  • After export, the browser immediately reloads the normal table query.
  • The page-level PDF, CSV, Excel and Email controls are generic report controls; verify their output separately instead of assuming they match the dedicated item-line CSV.
  • Use Sales History, Payment Reports and the source receipt for financial sign-off.

Troubleshooting

ProblemCheckAction
No RecordsDate range, every selected branch, method, sale process and updated dateTest a known Kiosk or Self-Order sale under the same filters.
Old order appears in a new periodWhether it was edited or partially returnedReconcile its updated_date and Sales History activity.
Cannot tell which branch owns a rowWhether multiple branches were selectedRun each branch separately and label the exports.
Items count differs from expanded detailSaved number_of_items, expanded row count and item quantitiesUse the expanded lines and source receipt; do not infer one measure from another.
Export is disabledWhether the report is empty, the account is Free Plan, or Report Read is missingResolve the relevant data, plan or permission condition.
CSV differs from the screenData changed after load or the prior total was staleRefresh, export again and reconcile distinct kiosk IDs.
Total differs from reconstructed linesInclusive tax, fixed or percentage discounts, saved total_amount and returnsOpen the linked sale and compare its receipt and payment record.