{{-- Timeline Progress Produksi - Konsisten untuk semua role (Admin, Teknisi, Supervisor, User) --}} @php $steps = [ [ 'label' => 'Pesanan Diterima', 'done' => $production->order->order_status === 'diterima', 'icon' => 'clipboard-check', 'date' => $production->order->created_at, ], [ 'label' => 'Ditugaskan', 'done' => (bool)$production->teknisi_id, 'icon' => 'user-check', 'date' => $production->assigned_at, ], [ 'label' => 'Planning Disetujui', 'done' => $production->planning_status === 'approved', 'pending' => $production->planning_status === 'pending_approval', 'rejected' => $production->planning_status === 'rejected', 'icon' => 'file-signature', 'date' => $production->approved_at, ], [ 'label' => 'Produksi', 'done' => in_array($production->status, ['dalam_proses', 'selesai']), 'icon' => 'industry', 'date' => $production->actual_start_date, ], [ 'label' => 'Selesai', 'done' => $production->status === 'selesai', 'pending' => $production->completion_status === 'pending_approval', 'icon' => 'check-circle', 'date' => $production->end_date, ], ]; // Hitung index step terakhir yang done $lastDoneIndex = -1; foreach($steps as $index => $step) { if ($step['done']) { $lastDoneIndex = $index; } } @endphp
{{-- Header --}}

Progress Produksi

Lacak kemajuan pembuatan produk

@if(isset($showEstimate) && $showEstimate && $production->estimated_completion_date && $production->status === 'dalam_proses')

Estimasi Selesai

{{ $production->estimated_completion_date->format('d M Y') }}

@endif
{{-- Timeline Content --}}
{{-- Desktop Horizontal Timeline --}} {{-- Mobile Vertical Timeline --}}
{{-- Garis vertikal --}}
@foreach($steps as $index => $step)
{{-- Circle indicator --}}
@php // Icon berbeda untuk setiap step (sama dengan desktop) $iconMap = [ 'Pesanan Diterima' => [ 'done' => '', 'pending' => '', 'default' => '' ], 'Ditugaskan' => [ 'done' => '', 'pending' => '', 'default' => '' ], 'Planning Disetujui' => [ 'done' => '', 'pending' => '', 'default' => '' ], 'Produksi' => [ 'done' => '', 'pending' => '', 'default' => '' ], 'Selesai' => [ 'done' => '', 'pending' => '', 'default' => '' ] ]; $iconKey = $step['label']; $iconType = 'default'; if ($step['done']) { $iconType = 'done'; } elseif ($step['pending'] ?? false) { $iconType = 'pending'; } elseif ($step['rejected'] ?? false) { $iconType = 'rejected'; } // Icon X untuk rejected if ($iconType === 'rejected') { $iconPath = ''; } else { $iconPath = $iconMap[$iconKey][$iconType] ?? $iconMap[$iconKey]['default'] ?? ''; } @endphp {!! $iconPath !!}
{{-- Content Card --}}

{{ $step['label'] }}

@if($step['done']) Selesai @elseif($step['pending'] ?? false) Menunggu @elseif($step['rejected'] ?? false) Ditolak @else Belum @endif
@if($step['done'] && $step['date'])

{{ $step['date']->format('d M Y') }}

@elseif($step['pending'] ?? false)

Menunggu persetujuan

@elseif($step['rejected'] ?? false)

Planning ditolak

@endif
@endforeach