Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.laportenard.com/llms.txt

Use this file to discover all available pages before exploring further.

Manual QA checklist for the printing system. Run against a Tauri desktop build connected to a real thermal printer.

Prerequisites

  • Tauri desktop build (npm run desktop:build)
  • At least one ESC/POS network thermal printer (e.g., Epson TM-T20III)
  • Printer configured in Odoo POS config (IP address, kitchen routes)

1. Kitchen tickets

#ScenarioExpected
1.1Basic kitchen ticketTable, server, items with qty, timestamp, cut
1.2Multi-station routingEach printer receives only its category items
1.3Refire ticketOnly delta items print on refire
1.4Void ticketVOID header, item name, reason
1.5Void routingVoid ticket goes to category’s station printer
1.6Spanish charactersAccents (ñ, é, á) render correctly
1.7Long item namesTruncated with ellipsis, price aligned right
1.8Takeout badgeTAKEOUT badge shown prominently
1.9Delivery badgeDELIVERY badge shown prominently

Reprint restrictions

Reprinting receipts and checks requires the reprint permission, which defaults to manager-only. Non-managers are prompted with a ManagerOverrideModal before the reprint executes.
ActionPermissionDefault access
Reprint checkreprintManager only
Reprint fiscal receiptreprintManager only
Reprinted documents include a COPY banner at the top to distinguish them from originals.

2. Checks (pre-payment bill)

#ScenarioExpected
2.1Basic checkCompany header, table, server, guests, items, subtotal, taxes, total
2.2Check with discountsDiscount line shown under item, total reflects discount
2.3Check reprintCOPY banner at top
2.4Takeout checkTAKEOUT badge in header
2.5Check aliasCheck alias shown in header
2.6POS referenceReference number shown
2.7Voided items excludedVoided items not shown
2.8Multiple tax linesITBIS + Propina both itemized
2.9Currency formattingCorrect symbol, decimal places, alignment

3. Fiscal receipts

#ScenarioExpected
3.1Basic fiscal receiptCompany header with RNC, NCF box, items, taxes, payment section
3.2Cash paymentPayment method: Cash, Amount, Change
3.3Card paymentPayment method shown, no change line
3.4Zero changeChange line omitted
3.5Customer RNCCustomer name and RNC shown
3.6NCF displayNCF prominently displayed in box
3.7Receipt reprintCOPY banner at top
3.8Voided items excludedOnly non-voided items on receipt

4. Adapter routing

#ScenarioExpected
4.1Tauri checkUses printRaw (ESC/POS bytes)
4.2Tauri fiscal receiptUses printRaw
4.3Tauri kitchen ticketUses printRaw
4.4Browser dev modeUses printHtml (HTML string)

5. Queue and retry behavior

#ScenarioExpected
5.1Offline printer recoveryJob retries after backoff, eventually prints
5.2Backoff escalation~5s → ~30s → fails permanently
5.3Manual retryJob re-enters queue and prints
5.4Queue persistencePending jobs restored from IndexedDB after app restart
5.5Concurrent printersBoth jobs process in parallel
5.6TCP timeoutFails within timeout (not hanging)

6. Device settings

#ScenarioExpected
6.1Override receipt printerSubsequent receipts go to selected printer
6.2Override check printerSubsequent checks go to selected printer
6.3Clear override (None)Falls back to POS default printer
6.4Stale override cleanupOverride cleared when printer removed from Odoo config
6.5Override persistsOverride still applied after app restart

7. Codepage / encoding

#ScenarioExpected
7.1UTF-8 printer (TM-T20III)Spanish chars (ñ, é, á, ¿, ¡) render correctly
7.2CP437 fallback (older printer)Spanish chars render via CP437 mapping
7.3Mixed ASCII + accentedAll characters correct

8. Edge cases

#ScenarioExpected
8.1Empty orderNo print job created
8.2Printing disabledNo print jobs enqueued
8.3No printer configuredWarning logged, no crash
8.420+ item orderPrints correctly, no truncation
8.5Cash drawer enabledDrawer opens after print

Automated test coverage

ModuleTests
escpos.ts (ESC/POS builder)17
printQueue.ts (queue)9
printService.ts (service)17
models.ts (domain)13
checkEscpos.ts (template)10
fiscalReceiptEscpos.ts (template)7
fiscalReceiptTemplate.ts (HTML)9
Total82