only(['search', 'kategori', 'tahun', 'penulis']); $filters['tipe_akses'] = 'offline'; $semuaBuku = DummyDataService::getKatalogBuku($filters); $filterOptions = DummyDataService::getFilterOptions(); return view('peminjaman.index', [ 'semuaBuku' => $semuaBuku, 'filterOptions' => $filterOptions, 'input' => $request->query(), ]); } /** * Menampilkan halaman ringkasan buku sebelum meminjam. */ public function ringkasan($id) { // Untuk simulasi, kita anggap user sudah login // $user = Auth::user(); $user = DummyDataService::getAllSiswa()[0]; $buku = DummyDataService::getKatalogBuku()->firstWhere('id', $id); return view('peminjaman.ringkasan', compact('user', 'buku')); } /** * Menampilkan form peminjaman dengan semua buku offline untuk pilihan tambahan. */ public function form($id) { // $user = Auth::user(); $user = DummyDataService::getAllSiswa()[0]; // Buku yang dipilih pertama kali $buku = DummyDataService::getKatalogBuku()->firstWhere('id', $id); // Semua buku offline untuk pilihan tambahan $filters = ['tipe_akses' => 'offline']; $semuaBuku = DummyDataService::getKatalogBuku($filters); return view('peminjaman.form', compact('user', 'buku', 'semuaBuku')); } /** * Proses pengiriman form peminjaman multi buku */ public function store(Request $request) { // Validasi input $request->validate([ 'buku_ids' => 'required|array|min:1|max:3', 'buku_ids.*' => 'integer|exists:books,id' // Sesuaikan dengan tabel yang ada ]); // Logic untuk menyimpan peminjaman multiple books $bukuIds = $request->input('buku_ids'); // Contoh logic penyimpanan: foreach ($bukuIds as $bukuId) { // Simpan ke database peminjaman // Peminjaman::create([ // 'user_id' => auth()->id(), // 'book_id' => $bukuId, // 'tanggal_pinjam' => now(), // 'tanggal_kembali' => now()->addDays(7), // 'status' => 'dipinjam' // ]); } return redirect()->route('dashboard') ->with('success', 'Berhasil meminjam ' . count($bukuIds) . ' buku!'); } }