Track Souvenir Requisition
ผู้ขอเบิกและผู้ดูแลระบบสามารถติดตามสถานะการอนุมัติคำขอได้ โดยระบุหมายเลขคำขอเบิกเพื่อตรวจสอบความคืบหน้า
{{-- Search Form --}}
{{-- Dropdown หากพบหลายรายการ --}}
@if (isset($orders) && $orders->count() > 1)
@endif
{{-- คำนวณขั้นตอน --}}
@php
// 🔍 กัน null + ตรวจสอบ Premium
$hasPremium =
isset($products) &&
$products->contains(function ($item) {
return (string) ($item->product_type ?? '') === '7';
});
// 🧩 6 Steps ตลอด
$steps = [
['title' => 'Submit Request', 'desc' => 'Requester ยื่นคำขอเบิกของที่ระลึกผ่านระบบ'],
[
'title' => 'Admin Approval',
'desc' => $hasPremium
? 'คำขอมีของพรีเมียม รอการตรวจสอบโดย Admin'
: 'ไม่ต้องผ่าน Admin (Auto Approved)',
],
['title' => 'Supervisor Approval', 'desc' => 'คำขออยู่ระหว่างการอนุมัติโดย Supervisor'],
['title' => 'Authorize Approval', 'desc' => 'คำขอผ่าน Supervisor แล้ว รอ Authorize อนุมัติ'],
['title' => 'Preparing for Shipment', 'desc' => 'คำขออนุมัติแล้ว กำลังจัดเตรียมของที่ระลึก'],
['title' => 'Delivered', 'desc' => 'ของที่ระลึกจัดส่งเรียบร้อยแล้ว'],
];
$totalSteps = 6;
// 🔢 Default
$currentStatus = 1;
$isRejected = false;
if (isset($selectedOrder)) {
// ❌ Rejected check
if (
in_array('rejected', [
$selectedOrder->order_status,
$selectedOrder->order_status_for_admin,
$selectedOrder->order_status_for_supervisor,
$selectedOrder->order_status_for_authorize,
])
) {
$isRejected = true;
}
// 📊 Mapping (6 Step)
if ($selectedOrder->order_status == 'delivered') {
$currentStatus = 6;
} elseif (
$selectedOrder->order_status == 'approved' ||
$selectedOrder->order_status_for_authorize == 'approved'
) {
$currentStatus = 5;
} elseif (
$selectedOrder->order_status_for_supervisor == 'approved' &&
$selectedOrder->order_status_for_authorize == 'pending'
) {
$currentStatus = 4;
} elseif ($selectedOrder->order_status_for_supervisor == 'pending') {
$currentStatus = 3;
} elseif ($selectedOrder->order_status_for_admin == 'pending') {
$currentStatus = 2;
} else {
$currentStatus = 1;
}
// 🔥 ถ้าไม่มี Premium → ข้าม Step 2 (Admin)
if (!$hasPremium && $currentStatus >= 2) {
$currentStatus++;
}
}
// 🎨 layout fix (6 step)
$colClass = 'col-lg-2';
@endphp
{{-- Steps --}}
@foreach ($steps as $index => $stepData)
@php $step = $index + 1; @endphp
{{-- ❌ Rejected --}}
@if ($isRejected && $currentStatus < $step)
{{-- 🟡 Skip Admin (ไม่มี Premium) --}}
@elseif (!$hasPremium && $step == 2)
{{ sprintf('%02d', $step) }}
{{-- ✅ Normal --}}
@else
{{ sprintf('%02d', $step) }}
@endif
{{ $stepData['title'] }}
{{ $stepData['desc'] }}
@endforeach
{{-- Show search results --}}
@if (isset($orders) && $orders->count() > 0)
Results for: {{ request('order_code') }}
| Order Code |
Requester |
Status (Admin) |
Status (Supervisor) |
Status (Authorize) |
Request Date |
@foreach ($orders as $order)
| {{ $order->order_code }} |
{{ $order->order_customer_name }} |
@if ($order->order_status_for_admin == 'pending')
Pending
@elseif ($order->order_status_for_admin == 'approved')
Approved by
{{ $order->approved_by_name ?? 'Admin' }}
@elseif ($order->order_status_for_admin == 'awaiting')
Awaiting
@elseif ($order->order_status_for_admin == 'rejected')
Rejected
@else
Unknown
@endif
|
@if ($order->order_status_for_supervisor == 'pending')
Pending
@elseif ($order->order_status_for_supervisor == 'approved')
Approved
@elseif ($order->order_status_for_supervisor == 'rejected')
Rejected
@else
-
@endif
|
@if ($order->order_status_for_authorize == 'pending')
Pending
@elseif ($order->order_status_for_authorize == 'approved')
Approved
@elseif ($order->order_status_for_authorize == 'rejected')
Rejected
@else
-
@endif
|
{{ \Carbon\Carbon::parse($order->order_request_date)->format('d M Y') }} |
@endforeach
{{ $orders->appends(request()->query())->links() }}
@elseif(request()->has('order_code'))
No requisition found for code: {{ request('order_code') }}
@endif