{{ $card['label'] }}
{{ $card['value'] }}
{{ $card['hint'] }}
@extends('layouts.admin') @section('title', 'Dashboard Admin Rental') @section('page_title', 'Dashboard Admin Rental') @push('styles') @endpush @push('scripts') @endpush @section('content') @php $summaryCollection = collect($summary ?? []); $summaryValue = function (array $keys, string $default = '0') use ($summaryCollection): string { foreach ($keys as $key) { $match = $summaryCollection->first(function ($item) use ($key) { return isset($item['label']) && strcasecmp(trim((string) $item['label']), trim($key)) === 0; }); if ($match && array_key_exists('value', $match)) { return (string) $match['value']; } } return $default; }; $stats = [ ['label' => 'Kendaraan', 'value' => $summaryValue(['Kendaraan', 'Total Kendaraan']), 'hint' => 'Total armada aktif rental', 'icon' => 'bi-car-front'], ['label' => 'Customer', 'value' => $summaryValue(['Customer', 'Total Customer']), 'hint' => 'Customer yang pernah booking', 'icon' => 'bi-people'], ['label' => 'Total Booking', 'value' => $summaryValue(['Total Booking', 'Booking Aktif', 'Booking Hari Ini']), 'hint' => 'Seluruh booking rental', 'icon' => 'bi-journal-check'], ['label' => 'Booking Selesai', 'value' => $summaryValue(['Booking Selesai', 'Total Booking Selesai'], '-'), 'hint' => 'Booking berstatus completed', 'icon' => 'bi-check2-circle'], ['label' => 'Revenue', 'value' => $summaryValue(['Revenue', 'Pendapatan Verified Bulan Ini', 'Pendapatan']), 'hint' => 'Pendapatan transaksi valid', 'icon' => 'bi-cash-stack'], ['label' => 'Payment Verified', 'value' => $summaryValue(['Payment Verified', 'Payment Menunggu Verifikasi'], '-'), 'hint' => 'Pembayaran terverifikasi', 'icon' => 'bi-patch-check'], ['label' => 'Booking Pending', 'value' => $summaryValue(['Booking Pending', 'Pending Booking', 'Booking Aktif'], '-'), 'hint' => 'Booking menunggu proses', 'icon' => 'bi-hourglass-split'], ['label' => 'Promo Aktif', 'value' => $summaryValue(['Promo Aktif', 'Total Promo Aktif'], '-'), 'hint' => 'Promo sedang berjalan', 'icon' => 'bi-megaphone'], ]; $monthlyBookings = collect($monthlyBookings ?? []); $monthlyBookingLabels = $monthlyBookings->pluck('label')->values()->all(); $monthlyBookingValues = $monthlyBookings->pluck('value')->map(fn ($value) => (int) $value)->values()->all(); $hasMonthlyBookingData = collect($monthlyBookingValues)->contains(fn ($value) => $value > 0); $quickLinks = [ ['label' => 'Data Kendaraan', 'route' => route('admin-rental.vehicles.index'), 'icon' => 'bi-car-front', 'hint' => 'Kelola unit kendaraan'], ['label' => 'Data Booking', 'route' => route('admin-rental.bookings.index'), 'icon' => 'bi-journal-check', 'hint' => 'Monitoring booking'], ['label' => 'Data Pembayaran', 'route' => route('admin-rental.payments.index'), 'icon' => 'bi-wallet2', 'hint' => 'Verifikasi pembayaran'], ['label' => 'Data Customer', 'route' => route('admin-rental.customers.index'), 'icon' => 'bi-people', 'hint' => 'Daftar customer rental'], ['label' => 'Promo', 'route' => route('admin-rental.promos.index'), 'icon' => 'bi-megaphone', 'hint' => 'Atur promo aktif'], ['label' => 'Data Ulasan', 'route' => route('admin-rental.reviews.index'), 'icon' => 'bi-chat-left-text', 'hint' => 'Pantau ulasan pelanggan'], ['label' => 'Notifikasi', 'route' => route('notifications.index'), 'icon' => 'bi-bell', 'hint' => 'Notifikasi sistem'], ['label' => 'Laporan', 'route' => route('admin-rental.reports.index'), 'icon' => 'bi-graph-up-arrow', 'hint' => 'Laporan operasional'], ]; @endphp
Dashboard ini menampilkan ringkasan operasional rental untuk memantau armada, booking, pembayaran, promo, dan aktivitas bulanan secara cepat.
Susunan 2 row × 4 kartu agar data penting lebih cepat dipindai saat monitoring harian.
{{ $card['label'] }}
{{ $card['hint'] }}
Tren booking 12 bulan terakhir untuk membantu evaluasi performa rental.
Grafik akan otomatis tampil ketika data booking per bulan tersedia dari backend.
Arahkan ke menu operasional yang paling sering digunakan admin rental.