orderBy('tanggal_kunjungan', 'desc'); // Filter Bulan & Tahun if ($request->filled('bulan')) { $query->whereMonth('tanggal_kunjungan', $request->input('bulan')); } if ($request->filled('tahun')) { $query->whereYear('tanggal_kunjungan', $request->input('tahun')); } $bukuTamu = $query->get(); // Slice data berdasarkan rentang baris (Limit Cetak) if ($request->filled('limit_start') || $request->filled('limit_end')) { $start = $request->filled('limit_start') ? (int)$request->input('limit_start') : 1; $offset = max(0, $start - 1); if ($request->filled('limit_end')) { $end = (int)$request->input('limit_end'); $length = max(0, $end - $offset); $bukuTamu = $bukuTamu->slice($offset, $length); } else { $bukuTamu = $bukuTamu->slice($offset); } } return view('laporan.kehadiran', compact('bukuTamu')); } public function peminjaman(Request $request) { $query = Peminjaman::with(['anggota', 'user', 'buku.kategori'])->orderBy('tanggal_pinjam', 'desc'); // 1. Filter Bulan & Tahun if ($request->filled('bulan')) { $query->whereMonth('tanggal_pinjam', $request->input('bulan')); } if ($request->filled('tahun')) { $query->whereYear('tanggal_pinjam', $request->input('tahun')); } // 2. Filter Kategori Buku (Berdasarkan DDC / Nomor Panggil) if ($request->filled('id_kategori')) { $classDigit = $request->input('id_kategori'); // '0', '1', ..., '9' $query->whereHas('buku', function ($q) use ($classDigit) { $q->where('nomor_panggil', 'like', "{$classDigit}%"); }); } $peminjaman = $query->get(); // Slice data berdasarkan rentang baris (Limit Cetak) if ($request->filled('limit_start') || $request->filled('limit_end')) { $start = $request->filled('limit_start') ? (int)$request->input('limit_start') : 1; $offset = max(0, $start - 1); if ($request->filled('limit_end')) { $end = (int)$request->input('limit_end'); $length = max(0, $end - $offset); $peminjaman = $peminjaman->slice($offset, $length); } else { $peminjaman = $peminjaman->slice($offset); } } // Kategori berdasarkan DDC & Lokasi Rak sesuai permintaan user $categories = [ '0' => '000-099 : Karya Umum (Rak 01-05)', '1' => '100-199 : Filsafat & Psikologi (Rak 06-14)', '2' => '200-299 : Agama (Rak 15-32)', '3' => '300-399 : Ilmu Sosial (Rak 33-44)', '4' => '400-499 : Bahasa (Rak 45)', '5' => '500-599 : Ilmu Murni / Sains (Rak 46-48)', '6' => '600-699 : Ilmu Terapan (Rak 49-68)', '7' => '700-799 : Kesenian & Olahraga (Rak 71-74)', '8' => '800-899 : Sastra (Rak 77-79)', '9' => '900-999 : Geografi & Sejarah (Rak 69-70, Rak 80-84)' ]; return view('laporan.peminjaman', compact('peminjaman', 'categories')); } }