MIF_E31232103/resources/views/admin-rental/bookings/show.blade.php

195 lines
9.4 KiB
PHP

@extends('layouts.admin')
@section('title', 'Detail Konfirmasi Booking')
@section('page_title', 'Detail Konfirmasi Booking')
@push('styles')
<link rel="stylesheet" href="{{ asset('assets/css/admin-rental-bookings.css') }}">
@endpush
@section('content')
<div class="bookings-page bookings-detail-page">
@if (session('success'))
<div class="admin-flash admin-flash-success">{{ session('success') }}</div>
@endif
@if (session('error'))
<div class="admin-flash admin-flash-error">{{ session('error') }}</div>
@endif
<div class="bookings-breadcrumb">
<span>Admin Rental</span>
<i class="bi bi-chevron-right" aria-hidden="true"></i>
<strong>Detail Konfirmasi Booking</strong>
</div>
<div class="bookings-header-card bookings-detail-header">
<div>
<h2>Detail Konfirmasi Booking</h2>
<p>Periksa data booking, cek ketersediaan barang, lalu konfirmasi atau tolak sesuai kondisi stok.</p>
<small>{{ $booking->booking_code }}</small>
</div>
<div class="bookings-detail-badges">
<span class="bookings-badge">{{ $booking->booking_status_label }}</span>
<span class="bookings-badge is-soft">{{ $booking->payment_status_label }}</span>
</div>
</div>
<div class="bookings-detail-grid">
<section class="bookings-detail-card">
<h3>Data Booking</h3>
<dl class="bookings-detail-list">
<div>
<dt>Customer</dt>
<dd>
{{ $booking->customer_name }}<br>
<span>{{ $booking->customer_email }}</span>
</dd>
</div>
<div>
<dt>Kendaraan</dt>
<dd>{{ $booking->vehicle->name }}</dd>
</div>
<div>
<dt>Rental</dt>
<dd>{{ $booking->vehicle->rentalCompany?->company_name }}</dd>
</div>
<div>
<dt>Pickup</dt>
<dd>{{ $booking->pickup_date->format('d M Y') }} {{ $booking->pickup_time ? $booking->pickup_time->format('H:i') : '' }}</dd>
</div>
<div>
<dt>Return</dt>
<dd>{{ $booking->return_date->format('d M Y') }}</dd>
</div>
<div>
<dt>Lokasi Pickup</dt>
<dd>{{ $booking->pickup_location }}</dd>
</div>
<div>
<dt>Lokasi Return</dt>
<dd>{{ $booking->return_location ?? '-' }}</dd>
</div>
<div>
<dt>Durasi</dt>
<dd>{{ $booking->duration_days }} Hari</dd>
</div>
<div>
<dt>Total</dt>
<dd>Rp {{ number_format($booking->total_amount, 0, ',', '.') }}</dd>
</div>
<div>
<dt>Catatan</dt>
<dd>{{ $booking->note ?? '-' }}</dd>
</div>
</dl>
<div class="bookings-section-divider"></div>
<h4>Timeline Transaksi</h4>
@php
$timeline = [
'Booking Dibuat' => true,
'Menunggu Pembayaran' => in_array($booking->booking_status, ['waiting_payment', 'waiting_verification', 'confirmed', 'ongoing', 'completed'], true),
'Menunggu Verifikasi' => in_array($booking->booking_status, ['waiting_verification', 'confirmed', 'ongoing', 'completed'], true),
'Dikonfirmasi' => in_array($booking->booking_status, ['confirmed', 'ongoing', 'completed'], true),
'Sedang Berjalan' => in_array($booking->booking_status, ['ongoing', 'completed'], true),
'Selesai' => $booking->booking_status === 'completed',
'Dibatalkan' => $booking->booking_status === 'cancelled',
];
@endphp
<div class="bookings-timeline">
@foreach ($timeline as $step => $active)
<div class="bookings-timeline-item {{ $active ? 'is-active' : '' }}">{{ $step }}</div>
@endforeach
</div>
</section>
<section class="bookings-detail-card">
<h3>Data Pembayaran & Aksi</h3>
<dl class="bookings-detail-list">
<div>
<dt>Metode</dt>
<dd>{{ $booking->payment?->payment_method ?? '-' }}</dd>
</div>
<div>
<dt>Status Pembayaran</dt>
<dd>{{ $booking->payment_status_label }}</dd>
</div>
<div>
<dt>Rejection Note</dt>
<dd>{{ $booking->payment?->rejection_note ?? '-' }}</dd>
</div>
</dl>
@if ($booking->payment?->proof_payment)
@php $proofUrl = asset('storage/' . $booking->payment->proof_payment); @endphp
<div class="bookings-proof-card">
<p class="bookings-proof-label">Bukti Pembayaran</p>
@if (str_ends_with(strtolower($booking->payment->proof_payment), '.pdf'))
<a href="{{ $proofUrl }}" target="_blank" class="bookings-proof-link">Lihat PDF Bukti Pembayaran</a>
@else
<img src="{{ $proofUrl }}" alt="Bukti Pembayaran">
@endif
</div>
@endif
<div class="bookings-section-divider"></div>
<h4>Aksi Konfirmasi</h4>
@if (in_array($booking->booking_status, [\App\Models\Booking::BOOKING_WAITING_PAYMENT, \App\Models\Booking::BOOKING_WAITING_VERIFICATION, \App\Models\Booking::BOOKING_PENDING], true))
<div class="bookings-action-stack">
<form method="POST" action="{{ route('admin-rental.bookings.confirm', $booking) }}">
@csrf
@method('PATCH')
<button type="submit" class="bookings-primary-action">Confirm Availability</button>
</form>
<form method="POST" action="{{ route('admin-rental.bookings.reject-availability', $booking) }}">
@csrf
@method('PATCH')
<input type="hidden" name="reason" value="Tidak tersedia">
<button type="submit" class="bookings-secondary-action">Reject Availability</button>
</form>
</div>
@endif
@if ($booking->booking_status === \App\Models\Booking::BOOKING_CONFIRMED && $booking->payment_status === \App\Models\Booking::PAYMENT_VERIFIED)
<form method="POST" action="{{ route('admin-rental.bookings.mark-ongoing', $booking) }}" class="bookings-inline-form">
@csrf
@method('PATCH')
<button type="submit" class="bookings-primary-action is-ongoing">Mark Ongoing</button>
</form>
@endif
@if ($booking->booking_status === \App\Models\Booking::BOOKING_ONGOING)
<form method="POST" action="{{ route('admin-rental.bookings.mark-completed', $booking) }}" class="bookings-inline-form">
@csrf
@method('PATCH')
<button type="submit" class="bookings-primary-action is-completed">Mark Completed</button>
</form>
@endif
@if (in_array($booking->booking_status, [\App\Models\Booking::BOOKING_WAITING_PAYMENT, \App\Models\Booking::BOOKING_WAITING_VERIFICATION, \App\Models\Booking::BOOKING_CONFIRMED], true))
<form method="POST" action="{{ route('admin-rental.bookings.cancel', $booking) }}" class="bookings-cancel-form">
@csrf
@method('PATCH')
<label for="cancel_reason">Alasan Cancel (opsional)</label>
<textarea name="cancel_reason" id="cancel_reason" rows="3" placeholder="Tulis alasan pembatalan di sini..."></textarea>
@error('cancel_reason')
<small>{{ $message }}</small>
@enderror
<button type="submit" class="bookings-secondary-action is-cancel">Cancel Booking</button>
</form>
@endif
@if ($booking->booking_status === \App\Models\Booking::BOOKING_COMPLETED)
<div class="bookings-success-note">Booking completed. Data ini siap menjadi dasar fitur review pada tahap berikutnya.</div>
@endif
</section>
</div>
</div>
@endsection