@extends('layouts.app') @section('title', 'Dashboard Admin') @section('hide_navbar', true) @section('content')
@if(session('error'))
{{ session('error') }}
@endif @if(session('status'))
{{ session('status') }}
@endif
Admin Dashboard

Kelola Data Kamera & Alur TOPSIS

Pantau katalog perangkat dan proses rekomendasi dalam satu halaman yang lebih ringkas dan mudah dipahami.

@csrf

Total Kamera

{{ count($kameras) }}

Total Lensa

{{ count($lensas) }}

Total User

{{ count($users ?? []) }}

Data Kamera

{{ count($kameras) }} item Tambah Kamera
@forelse($kameras as $k) @empty @endforelse
Kode Nama Merek Stok Harga Sewa TOPSIS Aksi
{{ $k->kode_kamera ?? '-' }} {{ $k->nama }} {{ $k->merek }} {{ $k->stok }}/{{ \App\Models\Kamera::DEFAULT_STOCK }} Rp {{ number_format($k->harga_sewa, 0, ',', '.') }}

Price: {{ number_format($k->price ?? 0, 0, ',', '.') }}

ISO: {{ number_format($k->iso ?? 0, 0, ',', '.') }}

AF Point: {{ number_format($k->af_point ?? 0, 0, ',', '.') }}

Sensor: {{ $k->sensor ?? '-' }} ({{ $k->sensor_score ?? '-' }})

Edit
@csrf @method('DELETE')
Belum ada data kamera.

Data Lensa

{{ count($lensas) }} item Tambah Lensa
@forelse($lensas as $l) @empty @endforelse
Kode Nama Merek Stok Harga Sewa Skor Lensa Aksi
{{ $l->kode_lensa ?? '-' }} {{ $l->nama }} {{ $l->merek }} {{ $l->stok }}/{{ \App\Models\Lensa::DEFAULT_STOCK }} Rp {{ number_format($l->harga_sewa, 0, ',', '.') }}

Aperture: {{ number_format($l->aperture_score ?? 0, 1) }}

Stabilisasi: {{ number_format($l->stabilisasi ?? 0, 1) }}

Fleksibilitas: {{ number_format($l->fleksibilitas ?? 0, 1) }}

Edit
@csrf @method('DELETE')
Belum ada data lensa.
@php $memberLabels = [ 'tanpa_member' => 'Tanpa Member', 'bronze' => 'Bronze', 'silver' => 'Silver', 'gold' => 'Gold', ]; $statusStyles = [ 'menunggu' => 'bg-amber-50 text-amber-700', 'disetujui' => 'bg-[#e6f5ee] text-[#edc039]', 'ditolak' => 'bg-red-50 text-red-700', 'dikembalikan' => 'bg-slate-100 text-slate-700', ]; @endphp

Pengajuan Sewa Terbaru

{{ count($penyewaans ?? []) }} pengajuan
@forelse($penyewaans as $p) @empty @endforelse
Penyewa Jenis Member Jadwal Total Pembayaran Status Aksi Admin

{{ $p->nama_penyewa }}

{{ $p->telepon }}

WA: {{ $p->no_wa ?? '-' }}

IG: {{ $p->instagram ?? '-' }}

Jaminan: {{ $p->jaminan ?? '-' }}

@if($p->foto_jaminan_path) Lihat Foto Jaminan @else

Foto jaminan belum ada

@endif @if($p->foto_diri_path) Lihat Foto Diri @else

Foto diri belum ada

@endif

{{ $p->jenis_sewa === 'paket' ? 'Paket Kamera + Lensa' : ($p->jenis_sewa === 'lensa' ? 'Lensa' : 'Kamera') }}

{{ $p->kamera->kode_kamera ?? $p->kamera->nama ?? '' }}{{ ($p->kamera && $p->lensa) ? ' + ' : '' }}{{ $p->lensa->kode_lensa ?? $p->lensa->nama ?? '' }} @if(!$p->kamera && !$p->lensa) - @endif

Qty: {{ $p->qty }}

KTP: {{ $p->alamat_ktp ?? '-' }}

Tinggal: {{ $p->alamat_tinggal ?? '-' }}

{{ \Illuminate\Support\Str::of($p->member_level)->replace('_', ' ')->title() }}

{{ $p->tanggal_mulai }} {{ substr($p->jam_sewa, 0, 5) }}

s/d {{ $p->tanggal_selesai }} {{ substr($p->jam_kembali, 0, 5) }}

Rp {{ number_format($p->total_harga, 0, ',', '.') }}

{{ str_replace('_', ' ', $p->metode_pembayaran ?? '-') }}

@if($p->bukti_pembayaran_path) Lihat Bukti @else

Belum upload

@endif @if($p->admin_catatan)

Catatan admin

{{ $p->admin_catatan }}

@endif
{{ \Illuminate\Support\Str::of($p->status)->replace('_', ' ')->title() }}
@csrf @method('PATCH')
Edit
@csrf @method('DELETE')
@if($p->status === 'menunggu')
@csrf @method('PATCH')
@csrf @method('PATCH')

Gunakan setelah pengecekan di lokasi sewa selesai.

@elseif($p->status === 'disetujui')
@csrf @method('PATCH')

Klik setelah barang benar-benar kembali ke toko agar stok otomatis tersedia lagi.

@else

Pengajuan sudah {{ match ($p->status) { 'dikembalikan' => 'ditandai sudah dikembalikan.', 'disetujui' => 'disetujui admin.', default => 'ditolak admin.', } }}

@endif
Belum ada pengajuan sewa masuk.

User Terdaftar

Admin dapat melihat seluruh user yang sudah register dan mengatur level member untuk verifikasi.

{{ count($users ?? []) }} user
@forelse($users as $user) @empty @endforelse
User Kontak Riwayat Member Saat Ini Verifikasi Admin

{{ $user->name }}

Username: {{ $user->username }}

Role: {{ ucfirst($user->role) }}

{{ $user->email }}

Terdaftar {{ optional($user->created_at)->format('d M Y H:i') ?? '-' }}

{{ $user->penyewaans_count }} penyewaan

{{ $memberLabels[$user->member_level] ?? \Illuminate\Support\Str::of($user->member_level)->replace('_', ' ')->title() }}
@csrf @method('PATCH')
Belum ada user yang terdaftar.

Alur TOPSIS yang Diterapkan

9 langkah proses
1. Input kriteria pengguna (penggunaan, merek, prioritas kualitas)
2. Ambil data kamera dari database
3. Normalisasi matriks (Euclidean)
4. Hitung bobot (disesuaikan prioritas)
5. Tentukan solusi ideal positif & negatif
6. Hitung jarak ke solusi ideal
7. Hitung nilai preferensi (kedekatan relatif)
8. Urutkan peringkat kamera
9. Tampilkan top 3 beserta lensa rekomendasi (brand match)
@endsection