feat: add cash rounding, POS test suite, and fix test harness port cleanup
- Add Swedish rounding (nearest nickel) for cash payments at locations with cash_rounding enabled - Add rounding_adjustment column to transactions, cash_rounding to locations - Add POS schema to database plugin for relational query support - Complete/void routes now return full transaction with line items via getById - Test harness killPort falls back to fuser when lsof unavailable (fixes stale process bug) - Add 35-test POS API suite covering discounts, drawer, transactions, tax, rounding, e2e flow - Add unit tests for tax service and POS Zod schemas Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,6 +44,14 @@ export const TaxService = {
|
||||
return Math.round(amount * rate * 100) / 100
|
||||
},
|
||||
|
||||
/**
|
||||
* Swedish rounding: round to nearest $0.05 for cash payments.
|
||||
* Only affects the final total — tax and line items stay exact.
|
||||
*/
|
||||
roundToNickel(amount: number): number {
|
||||
return Math.round(amount * 20) / 20
|
||||
},
|
||||
|
||||
/**
|
||||
* Map repair line item types to tax categories:
|
||||
* - "part" → goods (taxable)
|
||||
|
||||
Reference in New Issue
Block a user