Dashboard Admin

Ringkasan statistik, grafis pendapatan, dan analisis penyewaan.

Status & Hari Ini (Real-time)

Total & Aktif Unit

{{ $activeUnits }} / {{ $totalUnits }} Unit

Antrean Pending

{{ $pendingRentals }} Order

Total: Rp {{ number_format($pendingRevenue / 1000, 0, ',', '.') }}k

Pendapatan Hari Ini

Rp {{ number_format( $todayRevenue / 1000, 0, ',', '.' ) }}k

Sewa Hari Ini

{{ $todayRentals }} Transaksi

@if($preset === 'all')

Keseluruhan (Sepanjang Waktu)

@else

Performa Periode Terpilih

@endif
@if($preset === 'custom')
-
@endif
@php function gainBadge($gain, $abs = null) { if ($gain === null) return 'vs periode lalu: -'; $isPositive = $gain >= 0; $color = $isPositive ? 'bg-green-50 text-green-700 dark:bg-green-950 dark:text-green-300 border-green-200/50 dark:border-green-900/50' : 'bg-red-50 text-red-700 dark:bg-red-950 dark:text-red-300 border-red-200/50 dark:border-red-900/50'; $arrow = $isPositive ? '▲' : '▼'; $absText = $abs !== null ? ' (' . ($abs >= 0 ? '+' : '') . 'Rp ' . number_format(abs($abs) / 1000, 0, ',', '.') . 'k)' : ''; return '' . $arrow . ' ' . abs($gain) . '%' . $absText . ''; } @endphp

Sewa (Periode)

{{ $periodRentals }} Order

{!! gainBadge($gainRentals) !!}

Omset (Periode)

Rp {{ number_format($periodRevenue, 0, ',', '.') }}

{!! gainBadge($gainRevenue, $gainAbsRevenue) !!} Net: Rp {{ number_format($periodNetRevenue / 1000, 0, ',', '.') }}k

Komisi Affiliator

Rp {{ number_format($periodCommissions, 0, ',', '.') }}

Potongan Omset

Diskon Keluar

Rp {{ number_format($periodDiscounts, 0, ',', '.') }}

Tren Pendapatan

Pendapatan kotor selama periode yang dipilih

Tren Transaksi

Jumlah penyewaan selesai / lunas

Metode Pembayaran

Distribusi metode bayar periode ini

Unit Paling Laris

Berdasarkan total pendapatan di periode terpilih

@forelse($topUnits as $tu) @empty @endforelse
Seri iPhone Sewa Total Durasi Pendapatan
{{ $tu->unit ? $tu->unit->seri : 'Unit Terhapus' }} {{ $tu->rent_count }}x {{ $tu->hours }} Jam Rp {{ number_format($tu->revenue / 1000, 0, ',', '.') }}k
Belum ada data unit tersewa.

Penyewa Setia

Berdasarkan total belanja di periode terpilih

@forelse($topTenants as $tenant) @empty @endforelse
Pelanggan Sewa Total Belanja
{{ $tenant->nama }}
{{ $tenant->no_wa }}
{{ $tenant->total_rentals }}x Rp {{ number_format($tenant->total_spent / 1000, 0, ',', '.') }}k
Belum ada data penyewa setia.

Top Performa Affiliator

Berdasarkan komisi yang dihasilkan di periode terpilih

@forelse($topAffiliates as $ta) @empty @endforelse
Nama Affiliator Referral Closing Total Komisi
{{ substr($ta->affiliator->name ?? 'A', 0, 1) }}
{{ $ta->affiliator->name ?? 'N/A' }}
{{ $ta->total_trx }}x Rp {{ number_format($ta->total_commission, 0, ',', '.') }}
Belum ada aktivitas affiliator di periode ini.

Status Sewa Berjalan

Daftar unit yang sedang beredar di tangan pelanggan saat ini

@forelse($activeRentals as $rental) @php $end = \Carbon\Carbon::parse($rental->waktu_selesai); $diffInHours = now()->diffInHours($end, false); // Human readable diff $totalMinutes = abs(now()->diffInMinutes($end)); $h = floor($totalMinutes / 60); $m = $totalMinutes % 60; $diffText = ($h > 0 ? $h . ' jam ' : '') . ($m > 0 ? $m . ' menit' : ($h == 0 ? '0 menit' : '')); @endphp @empty @endforelse
Unit Penyewa Waktu Selesai Status
@foreach($rental->units as $u) {{ $u->seri }}{{ !$loop->last ? ', ' : '' }} @endforeach @if($rental->units->isEmpty()) Terhapus @endif
{{ $rental->nama }}
{{ $rental->booking_code }} {{ $rental->no_wa }}
{{ $end->format('d M, H:i') }} @if($diffInHours < 0) Telat Masuk @elseif($diffInHours < 3) Sisa {{ $diffText }} @else Aman @endif
Tidak ada jadwal penyewaan yang sedang aktif dibawa pelanggan saat ini.
@script @endscript