TIF_NGANJUK_E41220778/app/Http/Controllers/PeminjamanController.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!');
}
}