OFFLINE MODE - Using Cached Menu. Card payments disabled. Cash & Room Charges will sync later.
Categories

Current Order

{{ cartItemCount }} item(s)
Cart is empty. Tap menu items to begin.
{{ c.name }} No Tax
${{ (c.price_cents / 100).toFixed(2) }} each
+ {{ add.name }} (+${{ (add.price_cents / 100).toFixed(2) }})
- {{ sub.name }}
* {{ note }}
{{ note }}
{{ c.quantity }}
${{ ((c.price_cents * c.quantity) / 100).toFixed(2) }}
Subtotal ${{ (subtotal / 100).toFixed(2) }}
Non-Taxable Amount ${{ (nonTaxableSubtotal / 100).toFixed(2) }}
Sales Tax (4.9%) ${{ (tax / 100).toFixed(2) }}
Total ${{ (total / 100).toFixed(2) }}

Customize Item

Select additions, subtractions & kitchen instructions

{{ customizeItem.name }}

Base: ${{ (customizeItem.base_price_cents / 100).toFixed(2) }} • {{ isTaxable(customizeItem) ? 'Taxable (4.9%)' : 'Non-Taxable (0%)' }}
Unit Price
${{ (customizeItem.price_cents / 100).toFixed(2) }}

Subtractions / Omissions (Kitchen Hold)

Tap to omit

Additions & Upgrades

Tap to add

Common Quick Modifiers

Tap quick options or enter custom instructions below.

Special Instructions / Allergies

{{ note }}

Checkout Register

Order Total: ${{ (total / 100).toFixed(2) }} • {{ cartItemCount }} item(s)
Subtotal ${{ (subtotal / 100).toFixed(2) }}
Tax (4.9%) ${{ (tax / 100).toFixed(2) }}
Total Due ${{ (total / 100).toFixed(2) }}
Paid So Far ${{ (totalPaidCents / 100).toFixed(2) }}
Remaining Balance: PAID IN FULL
${{ (remainingBalanceCents / 100).toFixed(2) }}
Payments Applied ({{ payments.length }}) Tap remove to void a payment
{{ p.method }} ${{ (p.amount_cents / 100).toFixed(2) }} ({{ p.details }})
Enter partial amount for split (e.g. $35 cash), or pay remaining
$
No Pennies Policy Applied: Cash rounded down to nearest multiple of 5 cents (-${{ (cashRoundingDiscountCents / 100).toFixed(2) }})
Net Cash Due ${{ (effectiveCashDueCents / 100).toFixed(2) }}
Smart Cash Quick Taps Tap bill received to calculate change
Change Due to Guest
${{ (Math.max(0, cashChangeDueCents) / 100).toFixed(2) }}
Amount to Charge on Card
${{ (currentTenderAmountCents / 100).toFixed(2) }}
Card payments accept exact amounts including pennies.
Amount to Charge to Room Tab ${{ (currentTenderAmountCents / 100).toFixed(2) }}
Order Fully Paid!
Total Change Due to Guest
${{ (totalChangeDueCents / 100).toFixed(2) }}
{{ processingMessage }}

Transaction History

{{ filteredTransactions.length }} order(s)
Search previous sales, reprint receipts, or process refunds
Status:
Loading orders...
No transactions found matching your criteria.
#{{ order.id.replace('pos_', '') }} {{ formatDate(order.created_at) }}
{{ order.status }}
{{ p }} Cabin: {{ order.booking_id }}
${{ (order.total_cents / 100).toFixed(2) }}
{{ (order.items || []).map(i => i.quantity + 'x ' + i.item_name).join(', ') || 'No items listed' }}
No order selected
Select an order from the list on the left to inspect, reprint, or refund.

Order #{{ selectedTxn.id.replace('pos_', '') }}

{{ selectedTxn.status }}
Ordered: {{ formatDate(selectedTxn.created_at) }}
Refunded on {{ formatDate(selectedTxn.refunded_at) }}
Reason: {{ selectedTxn.refund_reason || 'Customer request' }}
{{ reprintSuccessMsg }}

Order Items

Item Qty Price Total
{{ it.item_name }}
{{ note }}
{{ it.quantity }} ${{ (it.price_cents / 100).toFixed(2) }} ${{ (it.total_cents / 100).toFixed(2) }}

Payments Tendered

{{ p.method }} ${{ ((p.amountCents || p.amount_cents) / 100).toFixed(2) }}
{{ p.details }}
Change Given: ${{ (((p.changeCents || p.change_cents) || 0) / 100).toFixed(2) }}
Method: {{ selectedTxn.payment_method }}

Order Totals

Subtotal ${{ ((selectedTxn.total_cents - selectedTxn.tax_cents) / 100).toFixed(2) }}
Sales Tax (4.9%) ${{ (selectedTxn.tax_cents / 100).toFixed(2) }}
Total ${{ (selectedTxn.total_cents / 100).toFixed(2) }}

Confirm Full Refund

Order #{{ selectedTxn.id.replace('pos_', '') }}
Refund Amount
${{ (selectedTxn.total_cents / 100).toFixed(2) }}
Automated Refund Actions:
• Card payments will be refunded via Stripe automatically.
• Cabin room charges will be credited back to the folio.
• A refund slip will be printed on the counter printer for bookkeeping.
{{ refundErrorMsg }}