diff --git a/app/Http/Controllers/AdminBukuController.php b/app/Http/Controllers/AdminBukuController.php index fa8aa99..5613eca 100644 --- a/app/Http/Controllers/AdminBukuController.php +++ b/app/Http/Controllers/AdminBukuController.php @@ -20,11 +20,11 @@ public function store(Request $request) 'bibid' => 'required|string|max:30|unique:buku,bibid', 'judul' => 'required|string', 'pengarang' => 'required|string|max:100', - 'penerbit' => 'nullable|string', - 'tahun_terbit' => 'nullable|digits:4', - 'edisi' => 'nullable|string|max:50', - 'deskripsi_fisik' => 'nullable|string|max:100', - 'nomor_panggil' => 'required|string|max:50', + 'penerbit' => 'required|string', + 'tahun_terbit' => 'required|digits:4', + 'edisi' => 'required|digits:4', + 'deskripsi_fisik' => 'required|string|max:100', + 'nomor_panggil' => 'required|string|max:50|unique:buku,nomor_panggil', 'eksemplar' => 'required|integer|min:1', 'id_kategori' => 'required|exists:kategori,id_kategori', 'cover' => 'image|mimes:jpeg,png,jpg,webp|max:2048', @@ -71,11 +71,11 @@ public function update(Request $request, $id) 'bibid' => 'required|string|max:30|unique:buku,bibid,' . $id . ',id_buku', 'judul' => 'required|string', 'pengarang' => 'required|string|max:100', - 'penerbit' => 'nullable|string', - 'tahun_terbit' => 'nullable|digits:4', - 'edisi' => 'nullable|string|max:50', - 'deskripsi_fisik' => 'nullable|string|max:100', - 'nomor_panggil' => 'required|string|max:50', + 'penerbit' => 'required|string', + 'tahun_terbit' => 'required|digits:4', + 'edisi' => 'required|digits:4', + 'deskripsi_fisik' => 'required|string|max:100', + 'nomor_panggil' => 'required|string|max:50|unique:buku,nomor_panggil,' . $id . ',id_buku', 'eksemplar' => 'required|integer|min:1', 'id_kategori' => 'required|exists:kategori,id_kategori', 'cover' => 'image|mimes:jpeg,png,jpg,webp|max:2048' diff --git a/app/Http/Controllers/AdminPeminjamanController.php b/app/Http/Controllers/AdminPeminjamanController.php index bb55361..9743d57 100644 --- a/app/Http/Controllers/AdminPeminjamanController.php +++ b/app/Http/Controllers/AdminPeminjamanController.php @@ -58,8 +58,8 @@ public function store(Request $request) $validated = $request->validate([ 'id_anggota' => 'required|exists:anggotas,id', 'id_buku' => 'required|exists:buku,id_buku', - 'tanggal_pinjam' => 'required|date', - 'tanggal_kembali' => 'required|date|after_or_equal:tanggal_pinjam', + 'tanggal_pinjam' => 'required|date_format:Y-m-d|after_or_equal:2000-01-01|before_or_equal:2100-12-31', + 'tanggal_kembali' => 'required|date_format:Y-m-d|after_or_equal:tanggal_pinjam|before_or_equal:2100-12-31', ]); $validated['status_peminjaman'] = 'Dipinjam'; @@ -240,8 +240,8 @@ public function update(Request $request, $id) $validated = $request->validate([ 'id_anggota' => 'required|exists:anggotas,id', 'id_buku' => 'required|exists:buku,id_buku', - 'tanggal_pinjam' => 'required|date', - 'tanggal_kembali' => 'required|date|after_or_equal:tanggal_pinjam', + 'tanggal_pinjam' => 'required|date_format:Y-m-d|after_or_equal:2000-01-01|before_or_equal:2100-12-31', + 'tanggal_kembali' => 'required|date_format:Y-m-d|after_or_equal:tanggal_pinjam|before_or_equal:2100-12-31', ]); $peminjaman = Peminjaman::findOrFail($id); diff --git a/app/Http/Controllers/AnggotaController.php b/app/Http/Controllers/AnggotaController.php index 0c94bdd..b4d189b 100644 --- a/app/Http/Controllers/AnggotaController.php +++ b/app/Http/Controllers/AnggotaController.php @@ -33,12 +33,12 @@ public function store(Request $request) 'nama' => 'required|string|max:255', 'jenis_anggota' => 'required|in:Mahasiswa,Siswa,Dosen,Umum', 'no_identitas' => 'required|unique:anggotas,no_identitas', - 'no_ktp' => 'nullable|numeric|digits_between:1,16', - 'prodi' => 'nullable|string|max:255', - 'no_hp' => 'required|string|max:20', + 'no_ktp' => 'required|numeric|digits_between:1,16|unique:anggotas,no_ktp', + 'prodi' => 'required_unless:jenis_anggota,Umum|nullable|string|max:255', + 'no_hp' => 'required|numeric|digits_between:10,13', 'alamat' => 'required|string', 'nama_wali' => 'required|string|max:255', - 'no_hp_wali' => 'required|string|max:20', + 'no_hp_wali' => 'required|numeric|digits_between:10,13', 'hubungan_wali' => 'required|in:Orang Tua,Saudara,Dosen Wali,Lainnya', ]); @@ -60,12 +60,12 @@ public function update(Request $request, Anggota $member) 'nama' => 'required|string|max:255', 'jenis_anggota' => 'required|in:Mahasiswa,Siswa,Dosen,Umum', 'no_identitas' => 'required|unique:anggotas,no_identitas,' . $member->id, - 'no_ktp' => 'nullable|numeric|digits_between:1,16', - 'prodi' => 'nullable|string|max:255', - 'no_hp' => 'required|string|max:20', + 'no_ktp' => 'required|numeric|digits_between:1,16|unique:anggotas,no_ktp,' . $member->id, + 'prodi' => 'required_unless:jenis_anggota,Umum|nullable|string|max:255', + 'no_hp' => 'required|numeric|digits_between:10,13', 'alamat' => 'required|string', 'nama_wali' => 'required|string|max:255', - 'no_hp_wali' => 'required|string|max:20', + 'no_hp_wali' => 'required|numeric|digits_between:10,13', 'hubungan_wali' => 'required|in:Orang Tua,Saudara,Dosen Wali,Lainnya', ]); diff --git a/app/Http/Controllers/BukuTamuController.php b/app/Http/Controllers/BukuTamuController.php index 4a0c9c8..5f9b6ce 100644 --- a/app/Http/Controllers/BukuTamuController.php +++ b/app/Http/Controllers/BukuTamuController.php @@ -23,10 +23,10 @@ public function store(Request $request) 'keperluan' => 'required', ]); - $anggota = Anggota::where('no_identitas', $request->no_anggota)->first(); + $anggota = Anggota::where('no_ktp', $request->no_anggota)->orWhere('no_identitas', $request->no_anggota)->first(); if (!$anggota) { - return back()->withErrors(['no_anggota' => 'Nomor Anggota tidak ditemukan dalam sistem kami.'])->withInput(); + return back()->withErrors(['no_anggota' => 'Nomor KTP / NIK tidak ditemukan dalam sistem kami.'])->withInput(); } // Cari user terkait untuk id_user @@ -47,10 +47,10 @@ public function store(Request $request) // Jalur tamu: isi manual $request->validate([ 'nama_tamu' => 'required|string|max:255', - 'email' => 'nullable|email|max:255', - 'no_hp' => 'nullable|string|max:20', + 'email' => 'required|email|max:255', + 'no_hp' => 'required|digits_between:10,13', 'asal_instansi' => 'required|string|max:255', - 'status' => 'nullable|string|max:255', + 'status' => 'required|string|max:255', 'keperluan' => 'required', ]); diff --git a/app/Models/BukuTamu.php b/app/Models/BukuTamu.php index 2afe761..72a144b 100644 --- a/app/Models/BukuTamu.php +++ b/app/Models/BukuTamu.php @@ -10,6 +10,7 @@ class BukuTamu extends Model use HasFactory; protected $table = 'buku_tamu'; + protected $primaryKey = 'id_tamu'; public $timestamps = false; protected $fillable = [ diff --git a/database/migrations/2026_05_04_072333_change_id_tamu_to_auto_increment_in_buku_tamu_table.php b/database/migrations/2026_05_04_072333_change_id_tamu_to_auto_increment_in_buku_tamu_table.php new file mode 100644 index 0000000..36137b2 --- /dev/null +++ b/database/migrations/2026_05_04_072333_change_id_tamu_to_auto_increment_in_buku_tamu_table.php @@ -0,0 +1,24 @@ +
Isi data kunjungan Anda hari ini.