@extends('customer.layouts.app') @section('title', 'Booking Saya') @section('activeMenu', 'booking') @php $statusReservasiLabel = [ 'menunggu_konfirmasi' => 'Menunggu Konfirmasi', 'dikonfirmasi' => 'Dikonfirmasi', 'check_in' => 'Check In', 'selesai' => 'Selesai', 'dibatalkan' => 'Dibatalkan', ]; $statusReservasiBadge = [ 'menunggu_konfirmasi' => 'warning', 'dikonfirmasi' => 'primary', 'check_in' => 'info', 'selesai' => 'success', 'dibatalkan' => 'secondary', ]; $statusServisLabel = [ 'menunggu' => 'Menunggu', 'dikerjakan' => 'Dikerjakan', 'selesai' => 'Selesai', 'diambil' => 'Diambil', ]; $statusServisBadge = [ 'menunggu' => 'warning', 'dikerjakan' => 'info', 'selesai' => 'success', 'diambil' => 'primary', ]; $canBook = $availableSlots->isNotEmpty() && $layanans->isNotEmpty(); $oldLayanan = array_map('intval', (array) old('layanan', [])); $selectedSlotId = old('id_slot', $requestedSlotId ?? null); $oldKendaraanBaru = old('kendaraan_baru', []); $pakaiKendaraanBaru = $kendaraans->isEmpty() || $errors->has('kendaraan_baru') || $errors->has('kendaraan_baru.merk_motor_id') || $errors->has('kendaraan_baru.plat_nomor') || $errors->has('kendaraan_baru.model') || $errors->has('kendaraan_baru.tahun') || (is_array($oldKendaraanBaru) && count(array_filter( $oldKendaraanBaru, fn ($value) => $value !== null && $value !== '' )) > 0); @endphp @push('styles') @endpush @section('content')
Pantau reservasi, servis, dan kendaraan Anda dalam satu tempat.
Reservasi Aktif
Servis Berlangsung
| Kode | Jadwal | Kendaraan | Layanan | Status | Progres Servis | Aksi |
|---|---|---|---|---|---|---|
|
{{ $reservasi->kode }} {{ $reservasi->created_at?->translatedFormat('d M Y') }} |
{{ $reservasi->slot?->tanggal?->translatedFormat('d M Y') ?? '-' }} {{ $reservasi->slot ? substr($reservasi->slot->jam_mulai, 0, 5).' – '.substr($reservasi->slot->jam_selesai, 0, 5) : '-' }} |
{{ $reservasi->kendaraan?->plat_nomor ?? '-' }} {{ trim(($reservasi->kendaraan?->merk?->nama ?? '').' '.($reservasi->kendaraan?->model ?? '')) ?: '-' }} |
{{ $reservasi->layanan->pluck('nama')->join(', ') ?: 'Belum ada layanan' }} | @php $alasanPenolakan = $reservasi->alasanPenolakan(); $labelStatus = $alasanPenolakan ? 'Ditolak' : ($statusReservasiLabel[$statusValue] ?? $statusValue); $badgeStatus = $alasanPenolakan ? 'danger' : ($statusReservasiBadge[$statusValue] ?? 'secondary'); @endphp
{{ $labelStatus }}
@if ($alasanPenolakan)
{{ $alasanPenolakan }}
@endif
|
@if ($reservasi->servis) @include('partials.service-timeline', ['servis' => $reservasi->servis, 'compact' => true]) @else Belum check in @endif |
Detail
@if (in_array($statusValue, ['menunggu_konfirmasi', 'dikonfirmasi'], true))
@endif
|
| Tanggal | Kendaraan | Layanan | Pekerjaan | Odometer | Status |
|---|---|---|---|---|---|
|
{{ $servis->tanggal_masuk?->translatedFormat('d M Y') ?? '-' }}
@if ($servis->tanggal_selesai)
Selesai {{ $servis->tanggal_selesai->translatedFormat('d M Y') }} @endif |
{{ $servis->kendaraan?->plat_nomor ?? '-' }} {{ trim(($servis->kendaraan?->merk?->nama ?? '').' '.($servis->kendaraan?->model ?? '')) ?: '-' }} |
{{ $layananServis ?: '-' }} | {{ $servis->rincian_pekerjaan ?: '-' }} | {{ $servis->odometerTampil() !== null ? number_format($servis->odometerTampil(), 0, ',', '.').' km' : '-' }} | {{ $statusServisLabel[$servisStatus] ?? $servisStatus }} |