TABLE {{ $tableNumber }}
Type: Dine-in
Date: {{ now()->format('M d, Y g:i A') }}
Orders: {{ $orders->count() }} order(s)
Payment: CASH (DINE-IN)
QTY ITEM
PRICE
@php $grandTotal = 0; @endphp
@foreach($orders as $order)
@php $grandTotal += $order->total; @endphp
{{-- Only show order label separator when there are multiple orders --}}
@if($orders->count() > 1)
{{ $order->order_number }}
@endif
@foreach($order->items as $item)
{{ $item->quantity }}x {{ $item->item_name }}
P{{ number_format($item->subtotal, 2) }}
@php
$specs = collect($item->modifiers ?? [])
->filter(fn($m) => !empty($m['name']) && !preg_match('/^no\s/i', $m['name']))
->values();
@endphp
@if($specs->count())
@foreach($specs as $spec)
- {{ $spec['name'] }}@if(($spec['price_type'] ?? '') === 'add' && ($spec['price_adjustment'] ?? 0) > 0) +P{{ number_format($spec['price_adjustment'], 2) }}@endif
@endforeach
@endif
@endforeach
@if($order->notes)
Note: {{ $order->notes }}
@endif
@endforeach
TOTALP{{ number_format($grandTotal, 2) }}
@php
// Get cash payment details from any order in the group (they all have the same values after table completion)
$cashReceived = $orders->whereNotNull('cash_received')->max('cash_received') ?? 0;
$changeDue = $orders->whereNotNull('change_due')->max('change_due') ?? 0;
// DEBUG: Show all cash values
// dd([
// 'orders' => $orders->pluck('cash_received', 'order_number'),
// 'cashReceived' => $cashReceived,
// 'changeDue' => $changeDue
// ]);
@endphp
{{-- Always show payment section for dine-in --}}
Payment: CASH
@if($cashReceived > 0)
CashP{{ number_format($cashReceived, 2) }}
ChangeP{{ number_format(max(0, $changeDue), 2) }}
@else
No payment data recorded
@endif