@extends('layouts.app') @section('title', 'Lacak Perbaikan - ' . ($repair->equipment->code ?? '')) @section('content')

Lacak Perbaikan

{{-- Pending Reactivation Banner --}} @if($repair->pending_reactivation && in_array(auth()->user()->role, ['supervisor', 'bos', 'super_admin']))

✅ Mekanik Menyatakan Alat Selesai Diperbaiki

Alat {{ $repair->equipment->code }} menunggu konfirmasi Anda untuk diaktifkan kembali. Silakan periksa dulu sebelum mengkonfirmasi.

@csrf
@endif
Peralatan / Kendaraan Lihat Aset {{ $repair->equipment->code ?? '-' }}
Tipe / Nama {{ $repair->equipment->name ?? '-' }}
Dilaporkan Oleh {{ $repair->operator->name ?? '-' }}
Waktu Dilaporkan {{ $repair->created_at->format('d M Y, H:i') }}
Keluhan Awal {{ $repair->mechanic_notes ?? 'Tidak ada catatan' }}

Status Servis

@if ($repair->status === 'open') Tunggu Dikerjakan @elseif ($repair->status === 'in_progress') Sedang Dikerjakan @elseif ($repair->status === 'completed') Selesai / Tuntas @elseif ($repair->status === 'cancelled') Dibatalkan @else {{ ucfirst($repair->status) }} @endif

@php // Kombinasikan timeline log dan request awal $allEvents = collect(); // Tambahkan semua timeline progres foreach($repair->timelines as $timeline) { $allEvents->push([ 'date' => $timeline->created_at, 'title' => $timeline->status === 'completed' ? 'Servis Selesai' : ($timeline->status === 'cancelled' ? 'Servis Dibatalkan' : ($timeline->status === 'in_progress' ? 'Sedang Dikerjakan' : 'Progres Dicatat')), 'desc' => $timeline->notes . ' [' . ($timeline->user->name ?? 'Sistem') . ']', 'status' => $timeline->status ]); } // Tambahkan trigger open $allEvents->push([ 'date' => $repair->created_at, 'title' => 'Tiket Dibuat', 'desc' => 'Laporan kerusakan dibuat dan menunggu mekanik. [' . ($repair->operator->name ?? '-') . ']', 'status' => 'open' ]); // Sortir dari terbaru ke terlama $sortedEvents = $allEvents->sortByDesc('date')->values(); @endphp @foreach($sortedEvents as $index => $event) @php $isFirst = $index === 0; // Logic For Icon Class $iconClass = 'grey'; if ($isFirst && $repair->status !== 'cancelled') { $iconClass = 'active'; // Hijau untuk yang teratas jika belum dibatalin } elseif ($event['status'] === 'cancelled') { $iconClass = 'red'; } // Date color Logic $dateClass = $isFirst && $repair->status !== 'cancelled' ? 'active' : 'grey'; @endphp

{{ Carbon\Carbon::parse($event['date'])->locale('id')->translatedFormat('l, d M Y') }}

{{ Carbon\Carbon::parse($event['date'])->format('H:i') }} WIB

{{ $event['desc'] }} @if($event['status'] === 'completed')
(TUNTAS) @endif @if($event['status'] === 'cancelled')
(BATAL) @endif

@endforeach
@if(in_array($repair->status, ['open', 'in_progress']) && in_array(auth()->user()->role, ['mekanik']))

📝 Catat Progres

@csrf
@else @if(in_array($repair->status, ['completed', 'cancelled']))
Tiket servis ini telah ditutup ({{ ucfirst($repair->status) }}). Tidak dapat menambah histori.
@else
Anda tidak memiliki akses untuk menambah progres servis.
@endif @endif
@endsection