@extends('layouts.master') @section('title', 'Track Souvenir Requisition') @section('style') @endsection @section('script') @endsection @section('content') @include('layouts.sidebar') @include('layouts.header-sub')

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') }}

@foreach ($orders as $order) @endforeach
Order Code Requester Status (Admin) Status (Supervisor) Status (Authorize) Request Date
{{ $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') }}
{{ $orders->appends(request()->query())->links() }}
@elseif(request()->has('order_code'))
No requisition found for code: {{ request('order_code') }}
@endif
@include('layouts.footer') @endsection