{{ $order->vendor_name ?? 'Vendor' }}
{{ $order->order_code ?? ('ORD-' . $order->id) }}
{{ $statusLabel }}
{{ $order->created_at ? date('d M Y', strtotime($order->created_at)) : 'N/A' }}
|
{{ $order->created_at ? date('h:i A', strtotime($order->created_at)) : 'N/A' }}
Name: {{ $order->user_name ?? 'N/A' }}
@php
$basketLinesCount = isset($order->basketOrders) ? $order->basketOrders->count() : 0;
@endphp
@if($basketLinesCount > 0)
@forelse($order->basketOrders as $basketLine)
@php
$basket = $basketLine->basket;
$itemName = $basket->basket_name_en ?? $basket->basket_name_ar ?? $basket->basket_name_fr ?? 'Basket';
// Basket orders don't store "quantity" per line in `basket_orders`,
// so we render each basket line as x1. Using `baskets.quantity` can be 0.
$qty = 1;
$unit = (float) ($basket->price ?? 0);
$orderTotal = (float) ($order->total ?? 0);
// If redeemed by points, system often sets order totals to 0,
// so invoice item lines should also show 0.00.
if ($orderTotal <= 0) {
$unit = 0;
}
if ($unit <= 0) {
// Fallback: split order subtotal across basket lines to avoid showing 0.00.
$unit = ((float) ($order->subtotal ?? 0)) / max(1, (int) $basketLinesCount);
}
$lineTotal = $unit * $qty;
@endphp
| {{ $itemName }} |
x {{ $qty }} |
{{ number_format((float) $lineTotal, 2) }} |
@empty
| No basket items found |
@endforelse
@else
@forelse($order->orderItems as $item)
@php
// Menu item name comes from the parent menu (RestaurantMenus/GroceryMenus) which uses `name_en`.
$itemName = optional($item->restaurantMenuItem?->restaurantMenu)->name_en
?? optional($item->groceryMenuItem?->groceryMenu)->name_en
?? 'Item';
$qty = (int) ($item->quantity ?? 0);
$lineTotal = $item->total_price ?? null;
if ($lineTotal === null) {
$unit = $item->unit_price ?? 0;
$lineTotal = ((float) $unit) * ((float) $qty);
}
@endphp
| {{ $itemName }} |
x {{ $qty }} |
{{ number_format((float) ($lineTotal ?? 0), 2) }} |
@empty
| No items found |
@endforelse
@endif
| Subtotal |
{{ number_format((float) ($order->subtotal ?? 0), 2) }} |
| Delivery Fee |
{{ number_format((float) ($order->delivery_fee ?? 0), 2) }} |
| Tax |
{{ number_format((float) ($order->tax ?? 0), 2) }} |
@if((float) ($order->discount ?? 0) > 0)
| Discount |
-{{ number_format((float) ($order->discount ?? 0), 2) }} |
@endif
| Total |
{{ number_format((float) ($order->total ?? 0), 2) }} |
Payment : {{ $paymentLabel }}
@if($notes !== '')
Delivery Notes: {{ $notes }}
@endif