Reports

Review Discounts Granted on KOT Orders

KOT Discount Report is a manager control for restaurant orders that reached KOT processing and contain a positive line or bill discount. Read its percentage and total rows carefully: they do not always represent the whole filtered period.

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

frontend/modules/kotReport.html Discount Report tab and columns, frontend/static/script/js/modules/js/report_kot.js PosnicPro.kotdiscountreport rendering and CSV export, api/src/controllers/sales.controller.js kotDiscountReports access and query handling, api/src/repositories/sale.repository.js getKotDiscountReports calculation and filters, demo.posnic.io KOT Discount Report captured on 2026-09-11

KOT Discount ReportLive demo captured 2026-09-11. No Discounts is a valid result when no KOT-processed sale in the selected branch and updated-date range has a positive line or bill discount.

Run the Report

  1. Open Reports, then Sales.
  2. Open KOT Reports.
  3. Select Discount Report.
  4. Open Filter and choose the date range and branches to review.
  5. Apply the filter.
  6. Review each KOT against its receipt, table record and manager approval before closing the shift.

Which Orders Appear

RuleCurrent behaviorMeaning
KOT statusThe sale must have was_kot_proceeded set to true.Ordinary non-KOT sales do not belong in this report.
Sale processAdd, Edit and PartialReturn records are eligible.Review returns separately before treating the report as a final net-discount ledger.
Discount testA positive sale_extra_discount, item_discount or item_discount_percentage is required.Orders without a persisted positive discount do not appear.
DateThe API filters updated_date in the shop timezone.Editing an older KOT can move it into a later reporting period.
BranchOnly selected valid branch IDs are queried; the current branch is used as a fallback when the selector is empty.Confirm the branch scope before concluding that no discounts were granted.
AccessReport Read permission is required.A denied report is an access issue, not evidence of zero discounts.

Understand Every Column

ColumnWhat it showsHow to use it
IDThe sale or KOT sales ID.Use it to locate the source transaction.
DateThe formatted updated date returned by the API.Use the update timestamp when reconciling period boundaries.
TableThe table number; blank or Take Away is displayed as TA.Confirm the order belonged to the expected table or takeaway channel.
TotalNet Amount plus the combined discount.Treat it as the reconstructed value before discounts.
Discount %Shown only when a bill or item percentage discount exists.It may be the raw bill percentage, not the effective percentage of every combined discount.
DiscountCurrency amount shown only when the order has no percentage-based discount.A dash does not mean zero when Discount Price is positive.
Discount PriceItem discounts plus the persisted bill-level sale_extra_discount.Use this as the combined currency discount for the row.
Net AmountThe saved sales_total after discounts.Compare it with the final receipt and payment evidence.

How Posnic Calculates the Discount

  • A fixed item discount is multiplied by item quantity.
  • For an exclusive-tax percentage discount, the percentage is applied to the stored item total_amount.
  • For an inclusive-tax percentage discount, Posnic first backs tax out of item price multiplied by quantity, then applies the percentage.
  • The bill-level component uses the persisted sale_extra_discount amount; extra_discount retains the originally entered value and type.
  • Discount Price equals calculated item discounts plus the bill-level discount amount.
  • Total equals saved Net Amount plus Discount Price.

Percentage and Total Caveats

  • When a bill-level percentage exists, Discount % displays that raw percentage even if item discounts are also included in Discount Price.
  • When only item percentage discounts exist, the browser derives an effective percentage from Discount Price divided by Total.
  • When any percentage discount exists, the separate Discount currency column shows a dash; use Discount Price for the actual combined amount.
  • The bold Total row is built from the list returned for the current page after pagination. It is a page total, not a guaranteed total for every matching KOT in the filtered period.
  • Change rows per page or export all matching rows before preparing a period control total.

Export the Evidence

  1. Confirm the filter and row count.
  2. Use the share icon inside the Discount Report table to export all matching rows.
  3. Open the file named KOT_Discount_Report_YYYY-MM-DD.csv.
  4. Confirm it contains ID, Date, Table, Total, Discount Percentage, Discount, Discount Price and Net Amount.
  5. Recalculate the exported Discount Price total independently when the report spans more than one page.
  6. Store the export with the shift approval and exception records according to your retention policy.

Manager Reconciliation

  1. Match each ID to the saved sale or KOT record.
  2. Confirm the table or TA designation and the staff member who handled the order.
  3. Separate fixed line discounts, percentage line discounts and bill-level discounts.
  4. Check the applicable role limit and manager approval record.
  5. Compare Total, Discount Price and Net Amount with the final receipt.
  6. Review edited orders and partial returns near the date boundary.
  7. Investigate repeated discounts by operator, table, item or time period.
  8. Sign off only after the exported rows and source receipts agree.

Troubleshooting

ProblemCheckAction
No Discounts appearsBranch, updated-date range, KOT processing flag and positive persisted discount fieldsCorrect the scope and verify a known discounted KOT.
Discount column is a dashWhether any item or bill percentage discount existsRead Discount Price for the combined currency amount.
Percentage looks too low or highMixed item and bill discountsRecalculate the effective rate from exported Total and Discount Price.
Total row changes between pagesCurrent page and rows-per-page settingUse the export and calculate the full-period total independently.
An old KOT appears todayIts updated date and edit historyReconcile it in the update period and retain the original receipt evidence.
Export control is unavailableMatching rows and Report Read permissionCorrect the filter or user access.