@extends('layouts.app') @section('title', 'Restaurant · Tables') @section('content')

Restaurant Floor

Tap a free table to open an order, or a occupied table to resume it.

@if (auth()->user()->can('tables.manage')) Manage tables & floors @endif
{{-- Legend --}}
Free Occupied Reserved Merged
@forelse ($tables as $zone => $zoneTables)

{{ $zone ?: 'Main Hall' }}

@foreach ($zoneTables as $table) @php $statusColor = match($table->status->value ?? $table->status) { 'occupied' => 'border-danger/40 bg-danger/5', 'reserved' => 'border-accent-500/40 bg-accent-50', 'merged' => 'border-purple-400/40 bg-purple-50', default => 'border-success/30 bg-success/5', }; $dot = match($table->status->value ?? $table->status) { 'occupied' => 'bg-danger', 'reserved' => 'bg-accent-500', 'merged' => 'bg-purple-500', default => 'bg-success', }; @endphp
{{ $table->capacity }} seats

{{ $table->name }}

@if ($table->currentOrder)

{{ $table->currentOrder->order_number }}

{{ config('pos.company.currency_symbol') }} {{ number_format($table->currentOrder->grand_total ?: $table->currentOrder->subtotal, 0) }}

@else

Tap to seat guests

@endif
@endforeach
@empty

No tables configured yet.

@if (auth()->user()->can('tables.manage')) Add your first table @endif
@endforelse {{-- Open-order modal --}}

Open new order

@csrf
{{-- Quick sale modal — a walk-in sale with no table and no waiting for a dine-in slot --}}

Quick sale

@csrf

For a walk-in sale that doesn't need a table — ring it up and bill it straight away.

{{-- Takeaway modal (no table) --}}

Takeaway / Delivery order

@csrf
@endsection