89 lines
2.7 KiB
PHP
89 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\DummyDataService;
|
|
use Illuminate\Http\Request;
|
|
|
|
class PeminjamanController extends Controller
|
|
{
|
|
/**
|
|
* Menampilkan daftar buku yang bisa dipinjam offline,
|
|
* dengan memanfaatkan filter dari getKatalogBuku.
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$filters = $request->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!');
|
|
}
|
|
} |