@extends('layouts.master') @section('title', 'Requests Detail') @section('style') @endsection @section('script') @endsection @section('content') @include('layouts.sidebar') @include('layouts.header-sub')
@yield('title')

{{-- ========================= ✅ ORDER STATUS ========================= --}}
Current Status: {{ ucfirst(str_replace('_', ' ', $order->order_status)) }}
{{-- ========================= ✅ PRODUCT TABLE ========================= --}}
@foreach ($products as $i => $item) @endforeach {{-- ✅ TOTAL --}}
No. Image Name Quantity Unit Price (THB) Total Price (THB)
{{ ++$i }} @if ($item->product_image) Product Image
@if ($item->product_type === '7') Premium @endif @else No Image @endif
{{ $item->product_name }} {{ $item->order_qty ?? ($item->quantity ?? 0) }} {{ number_format($item->product_current_unit_price ?? ($item->product_price ?? 0), 2) }} {{ number_format(($item->order_qty ?? ($item->quantity ?? 0)) * ($item->product_current_unit_price ?? ($item->product_price ?? 0)), 2) }}
Total Quantity: {{ $totalQty }} Total Price: {{ number_format($total, 2) }}
{{-- ========================= ✅ ORDER INFO ========================= --}}
Request code :
{{ $request_code ?? '-' }}
Firstname - Lastname:
{{ $user_name ?? '-' }}
หน่วยงาน:
{{ $department ?? '-' }}
Email:
{{ $email ?? '-' }}
วัตถุประสงค์ในการเบิก:
{{ $purpose ?? '-' }}
วันที่ขอเบิก:
{{ $request_date ? \Carbon\Carbon::parse($request_date)->format('d M Y') : '-' }}
วันที่รับของ:
{{ $pickup_date ? \Carbon\Carbon::parse($pickup_date)->format('d M Y') : '-' }}
วันที่นำไปใช้จริง:
{{ $order_use_date ? \Carbon\Carbon::parse($order_use_date)->format('d M Y') : '-' }}
วิธีการจัดส่ง:
{{ $delivery_method ?? '-' }}
ที่อยู่ในการจัดส่ง:
{{ $address ?? '-' }}
{{-- ========================= ✅ STEP PROGRESS 1 ========================= --}}
@php // ตรวจสอบว่าใน Order นี้มีสินค้า Premium หรือไม่ $hasPremium = $products->contains(function ($item) { return (string) ($item->product_type ?? '') === '7'; }); // กำหนดรายการขั้นตอน (Steps) แบบ Dynamic $steps = [ [ 'title' => 'Submit Request', 'desc' => 'Requester ยื่นคำขอเบิกของที่ระลึกผ่านระบบ', ], ]; if ($hasPremium) { $steps[] = [ 'title' => 'Admin Approval', 'desc' => 'คำขอมีของพรีเมียม รอการตรวจสอบโดย Admin', ]; } $steps[] = [ 'title' => 'Supervisor Approval', 'desc' => 'คำขออยู่ระหว่างการอนุมัติโดย Supervisor', ]; $steps[] = [ 'title' => 'Authorize Approval', 'desc' => 'คำขอผ่าน Supervisor แล้ว รอ Authorize อนุมัติ', ]; $steps[] = [ 'title' => 'Preparing for Shipment', 'desc' => 'คำขออนุมัติแล้ว กำลังจัดเตรียมของที่ระลึก', ]; $steps[] = ['title' => 'Delivered', 'desc' => 'ของที่ระลึกจัดส่งเรียบร้อยแล้ว']; $totalSteps = count($steps); $currentStatus = 1; $isRejected = false; if (isset($order)) { // ตรวจสอบการถูกปฏิเสธ (Rejected) if ( in_array('rejected', [ $order->order_status, $order->order_status_for_admin, $order->order_status_for_supervisor, $order->order_status_for_authorize, ]) ) { $isRejected = true; } // คำนวณสถานะปัจจุบัน (Status Mapping) if ($order->order_status == 'delivered') { $currentStatus = $totalSteps; // ขั้นตอนสุดท้าย } elseif ( $order->order_status == 'approved' || $order->order_status_for_authorize == 'approved' ) { $currentStatus = $totalSteps - 1; // Preparing } elseif ( $order->order_status_for_supervisor == 'approved' && $order->order_status_for_authorize == 'pending' ) { $currentStatus = $totalSteps - 2; // Authorize } elseif ( in_array($order->order_status_for_admin, [ 'approved', 'confirmed', 'not_required', ]) && $order->order_status_for_supervisor == 'pending' ) { $currentStatus = $hasPremium ? 3 : 2; // Supervisor Step } elseif ($hasPremium && $order->order_status_for_admin == 'pending') { $currentStatus = 2; // Admin Step (เฉพาะกรณีมี Premium) } else { $currentStatus = 1; } } // ✅ แยก Top / Bottom $topSteps = array_slice($steps, 0, $totalSteps - 2); $bottomSteps = array_slice($steps, -2); $startIndex = $totalSteps - count($bottomSteps) + 1; @endphp {{-- 🔹 STEP PROGRESS 1 (TOP) --}}
@foreach ($topSteps as $index => $data) @php $stepNum = $index + 1; @endphp
@if ($isRejected && $currentStatus < $stepNum) @else {{ sprintf('%02d', $stepNum) }} @endif
{{ $data['title'] }}
{{ $data['desc'] }} {{-- เส้นเชื่อมขั้นตอน --}} @if ($stepNum < $totalSteps)
@endif
@endforeach
{{-- ========================= ✅ APPROVAL STATUS 1 ========================= --}}
Approval Status
@php $approvalSteps = [ [ 'role' => 'requester', 'status' => 'submitted', 'user' => $order->order_customer_name ?? $order->user_fullname, 'date' => $order->order_request_date, 'note' => null, ], [ 'role' => 'admin', 'status' => $order->order_status_for_admin, 'user' => $order->admin_name, 'date' => $order->order_admin_approved_date, 'note' => null, ], [ 'role' => 'supervisor', 'status' => $order->order_status_for_supervisor, 'user' => $order->supervisor_name, 'date' => $order->order_supervisor_approved_date, 'note' => null, ], [ 'role' => 'authorize', 'status' => $order->order_status_for_authorize, 'user' => $order->authorize_name, 'date' => $order->order_authorize_approved_date, 'note' => null, ], [ 'role' => 'delivered', 'status' => $order->order_status == 'delivered' ? 'delivered' : null, 'user' => null, 'date' => $order->order_delivered_date, 'note' => null, ], ]; @endphp @foreach ($approvalSteps as $step) @if ($step['status']) @php $badgeColor = match ($step['status']) { 'approved', 'delivered' => 'success', 'rejected' => 'danger', 'pending', 'submitted' => 'warning', default => 'secondary', }; @endphp
{{ $step['date'] ? \Carbon\Carbon::parse($step['date'])->format('d M Y') : '-' }}
{{ ucfirst($step['status']) }}{{ $step['note'] ? ' - ' . $step['note'] : '' }}
@if ($step['user']) by {{ $step['user'] }} ({{ ucfirst($step['role']) }}) @else - @endif
@endif @endforeach
{{-- ========================= ✅ STEP PROGRESS 2 (Bottom Row) ========================= --}} {{-- 🔹 STEP PROGRESS 2 (BOTTOM) --}}
@foreach ($bottomSteps as $index => $data) @php $stepNum = $startIndex + $index; @endphp
@if ($isRejected && $currentStatus < $stepNum) @else {{ sprintf('%02d', $stepNum) }} @endif
{{ $data['title'] }}
{{ $data['desc'] }}
@endforeach
{{-- ========================= ✅ APPROVAL STATUS 2 ========================= --}}
@php $approvalSteps = [ [ 'role' => 'preparing', 'status' => $order->order_status == 'approved' ? 'approved' : null, 'user' => $order->authorize_name ?? null, 'date' => $order->order_authorize_approved_date, 'note' => 'Preparing for Shipment', ], [ 'role' => 'delivered', 'status' => $order->order_status == 'delivered' ? 'delivered' : null, 'user' => $order->admin_name, 'date' => $order->order_delivered_date, 'note' => null, ], ]; @endphp @foreach ($approvalSteps as $step) @if ($step['status']) @php $badgeColor = match ($step['status']) { 'approved', 'delivered' => 'success', 'rejected' => 'danger', 'pending', 'submitted' => 'warning', default => 'secondary', }; @endphp
{{ $step['date'] ? \Carbon\Carbon::parse($step['date'])->format('d M Y') : '-' }}
{{ ucfirst($step['status']) }}{{ $step['note'] ? ' - ' . $step['note'] : '' }}
@if ($step['user']) by {{ $step['user'] }} ({{ ucfirst($step['role']) }}) @else - @endif
@endif @endforeach
{{-- ========================= ✅ APPROVE / REJECT BUTTONS ========================= --}}
@php $user = Auth::user(); @endphp {{-- Admin --}} @if ($user->hasRole('Admin') && $order->order_status == 'approved' && !$order->order_delivered_date)
📦 จัดส่งคำขอเบิกเลขที่ {{ $order->order_code }} หรือไม่?
{{-- ปุ่ม --}}
@csrf
⬅ ย้อนกลับ
@endif {{-- Supervisor --}} @if ($user->hasRole('Supervisor') && $order->order_status_for_supervisor == 'pending')
@csrf
@endif {{-- Authorize --}} @if ($user->hasRole('Authorize') && $order->order_status_for_authorize == 'pending')
@csrf
@endif
@include('layouts.footer') @endsection