@php $isShowOrderDetail = request()->boolean('show-order-detail'); $posCtxOrderIdForCustomerModal = isset($orderDetail) && $orderDetail?->id ? (int) $orderDetail->id : (isset($orderID) && $orderID ? (int) $orderID : null); @endphp
@include('pos.partials.running-order-banner')
@lang('modules.settings.orderType') @unless($isShowOrderDetail) @if ($allowOrderTypeChange ?? true) @else {{ \App\Models\OrderType::find($orderTypeId)?->order_type_name ?? ucfirst($orderType) }} @endif @else {{ \App\Models\OrderType::find($orderTypeId)?->order_type_name ?? ucfirst($orderType) }} @endunless @unless($isShowOrderDetail) @if ($allowOrderTypeChange ?? true) @endif @endunless
@if ($orderType == 'dine_in')
{{ $tableNo }} @if (user_can('Update Order')) @endif
@if(user_can('Update Order')) @endif
@if (user_can('Update Order') && !$isShowOrderDetail) @endif
{{ $customer->name ?? '' }}
@if(user_can('Update Order')) @endif
@else
{{ $customer->name ?? '' }}
@if(user_can('Update Order')) @endif
@endif
@if(!isOrderPrefixEnabled()) @lang('modules.order.orderNumber') #{{ $orderNumber }} @else {{ $formattedOrderNumber }} @endif
@if ($orderType == 'dine_in')
@lang('modules.order.noOfPax')
@if (auth()->user()->roles->pluck('display_name')->contains('Waiter'))
{{ $waiterName }}
@elseif(user_can('Update Order'))
@foreach ($users as $item) @php $runningCount = (int)($waiterRunningOrdersMap[$item->id] ?? 0); @endphp @endforeach
@elseif($currentWaiter)
{{ $waiterName }}
@endif
@endif @if (isset($orderDetail) && $orderDetail && function_exists('module_enabled') && module_enabled('Hotel') && in_array('Hotel', restaurant_modules()) && $orderDetail->order_type === 'room_service' && $orderDetail->context_type === 'HOTEL_ROOM' && $orderDetail->hotelStay) @php $hotelStayKot = $orderDetail->hotelStay; @endphp
@if ($hotelStayKot->room)
@lang('hotel::modules.folio.room'): {{ $hotelStayKot->room->room_number }}
| @endif
@lang('hotel::modules.folio.stay'): {{ $hotelStayKot->stay_number }}
@if ($hotelStayKot->stayGuests && $hotelStayKot->stayGuests->isNotEmpty() && $hotelStayKot->stayGuests->first()?->guest) |
@lang('hotel::modules.guest.guest'): {{ $hotelStayKot->stayGuests->first()->guest->full_name }}
@endif @if ($orderDetail->bill_to) |
@lang('hotel::modules.roomService.billTo'): $orderDetail->bill_to === 'POST_TO_ROOM', 'text-green-600 dark:text-green-400' => $orderDetail->bill_to !== 'POST_TO_ROOM', ])> {{ $orderDetail->bill_to === 'POST_TO_ROOM' ? __('hotel::modules.roomService.postToRoom') : __('hotel::modules.roomService.payNow') }}
@endif
@endif @if (in_array($orderType, ['delivery', 'pickup']))
@if ($orderType == 'delivery' && user_can('Update Order'))
@foreach ($deliveryExecutives as $item) @php $isBusy = (bool)($deliveryExecutiveBusyMap[$item->id] ?? false); $isSelected = (int)$selectDeliveryExecutive === (int)$item->id; @endphp @if (!$isBusy || $isSelected) @endif @endforeach
@endif @if ($orderType == 'pickup') @php $orderItemsPickupDate = $pickupDate ?? now()->format(restaurant()->date_format); $orderItemsPickupTime = $pickupTime ?? now()->format('H:i'); @endphp
@endif
@endif @if ($orderStatus->value === 'cancelled') @lang('modules.order.info_cancelled') @else
@php $statuses = match ($orderType) { 'delivery' => ['placed', 'confirmed', 'preparing', 'food_ready','picked_up', 'out_for_delivery', 'reached_destination', 'delivered', 'completed'], 'pickup' => ['placed', 'confirmed', 'preparing', 'ready_for_pickup', 'delivered', 'completed'], default => ['placed', 'confirmed', 'preparing', 'food_ready', 'served', 'completed'], }; $currentIndex = array_search($orderStatus->value, $statuses); $currentIndex = $currentIndex !== false ? $currentIndex : 0; $nextIndex = min($currentIndex + 1, count($statuses) - 1); @endphp

{{ __('modules.order.orderStatus') }}

$orderStatus->value === 'delivered' || $orderStatus->value === 'served' || $orderStatus->value === 'completed', 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300' => $orderStatus->value === 'placed', 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300' => $orderStatus->value !== 'delivered' && $orderStatus->value !== 'served' && $orderStatus->value !== 'completed' && $orderStatus->value !== 'placed', ])> {{ App\Enums\OrderStatus::from($orderStatus->value)->translatedLabel() }} @if (user_can('Update Order')) @if ($orderStatus->value === 'placed') {{ __('modules.order.cancelOrder') }} @endif @if ($currentIndex < count($statuses) - 1) {{ __('modules.order.moveTo') }} {{ App\Enums\OrderStatus::from($statuses[$nextIndex])->translatedLabel() }} @endif @endif
@foreach ($statuses as $index => $status)
{!! App\Enums\OrderStatus::from($status)->icon() !!}
{{ App\Enums\OrderStatus::from($status)->translatedLabel() }}
@endforeach
@endif @php $showKotAlert = $isShowOrderDetail && isset($orderDetail) && $orderDetail && $orderDetail->status === 'kot' && isset($kotList) && count($kotList) === 0 && user_can('Update Order'); @endphp @if ($showKotAlert)
@lang('modules.order.kotNotCreated')

@lang('modules.order.kotNotCreatedMessage')

@lang('modules.order.createKot')
@endif @foreach ($kotList as $kot) @php $hasItems = false; foreach ($orderItemList as $key => $item) { if (strpos($key, 'kot_' . $kot->id . '_') === 0) { $hasItems = true; break; } } @endphp @if ($hasItems)
@lang('menu.kot') #{{ $kot->kot_number }}
{{ $kot->created_at->timezone(timezone())->translatedFormat('d F, h:i A') }}
@endif @endforeach @if (count($orderItemList) === 0 && isset($orderDetail) && $orderDetail && $orderDetail->status === 'kot') @php $fallbackKotItems = collect(); if (!$orderDetail->relationLoaded('kot')) { $orderDetail->load('kot.items.menuItem', 'kot.items.menuItemVariation', 'kot.items.modifierOptions'); } foreach ($orderDetail->kot as $kot) { $fallbackKotItems = $fallbackKotItems->merge($kot->items->where('status', '!=', 'cancelled')); } @endphp @foreach ($fallbackKotItems as $kotItem) @php $isFreeItemFromStamp = (bool) ($kotItem->is_free_item_from_stamp ?? false); $expectedAmount = (float) ($kotItem->price ?? 0) * (int) ($kotItem->quantity ?? 1); $actualAmount = (float) ($kotItem->amount ?? 0); $stampDiscountAmount = !$isFreeItemFromStamp ? max(0, $expectedAmount - $actualAmount) : 0; $hasStampDiscount = $stampDiscountAmount > 0.01; @endphp
{{ $kotItem->menuItem->item_name ?? __('app.item') }} @if ($isFreeItemFromStamp) @lang('app.freeItem') @elseif($hasStampDiscount) @lang('app.stampDiscount') (-{{ currency_format($stampDiscountAmount, restaurant()->currency_id) }}) @endif
{{ __('modules.order.qty') }}: {{ $kotItem->quantity }}
@if ($isFreeItemFromStamp)
{{ currency_format(0, restaurant()->currency_id) }} {{ currency_format($expectedAmount, restaurant()->currency_id) }}
@elseif($hasStampDiscount)
{{ currency_format($actualAmount, restaurant()->currency_id) }} {{ currency_format($expectedAmount, restaurant()->currency_id) }}
@else {{ currency_format($actualAmount, restaurant()->currency_id) }} @endif
@endforeach @endif
@if ($orderDetail->status == 'kot' && user_can('Update Order'))
! user()->hasRole('Admin_'. user()->restaurant_id), ])> @lang('modules.order.newKot') @if (user()->hasRole('Admin_'. user()->restaurant_id)) @endif
@endif @if ($orderDetail->status == 'billed' && user_can('Update Order'))
@endif
{{--

@lang('modules.order.cancelOrder')

@lang('modules.order.cancelOrderMessageUndone')

@lang('modules.order.cancelOrderMessage')

Please select a reason for cancellation

@foreach ($cancelReasons as $reason) @endforeach
{{ __('app.cancel') }} @lang('modules.order.cancelOrder')
@lang('modules.order.deleteOrder')? @lang('modules.order.deleteOrderMessage') {{ __('app.cancel') }} @lang('modules.order.deleteOrder')
@lang('modules.order.changeTable')

@lang('modules.order.confirmTableChange')

@lang('modules.order.currentTable'): {{ $tableNo }}

@if($pendingTable)

@lang('modules.order.changeTo'): {{ $pendingTable->table_code }}

@endif

@lang('modules.order.tableChangeMessage')

@lang('modules.order.tableChangeWarning')

@lang('app.cancel') @lang('modules.order.changeTable')
--}}