diff --git a/app/Http/Controllers/Admin/KelasController.php b/app/Http/Controllers/Admin/KelasController.php index c3f9ee7..c4b3846 100644 --- a/app/Http/Controllers/Admin/KelasController.php +++ b/app/Http/Controllers/Admin/KelasController.php @@ -45,32 +45,10 @@ public function store(Request $request) 'nama_kelas.unique' => 'Nama kelas sudah ada di tingkat ini!', ]); - - // Tentukan prefix berdasarkan tingkat - if ($validated['tingkat'] == 'X') { - $prefix = '10'; - } elseif ($validated['tingkat'] == 'XI') { - $prefix = '11'; - } else { - $prefix = '12'; - } - - // Cari id terakhir berdasarkan prefix - $last = Kelas::where('id_kelas', 'like', $prefix.'%') - ->orderBy('id_kelas', 'desc') - ->first(); - - if ($last) { - $newId = $last->id_kelas + 1; - } else { - $newId = $prefix . '01'; - } - - Kelas::create([ - 'id_kelas' => $newId, - 'nama_kelas' => $validated['nama_kelas'], - 'tingkat' => $validated['tingkat'], - ]); +Kelas::create([ + 'nama_kelas' => $validated['nama_kelas'], + 'tingkat' => $validated['tingkat'], +]); return redirect()->route('admin.kelas.index') ->with('success', 'Data kelas berhasil ditambahkan!'); diff --git a/app/Http/Controllers/Admin/MapelController.php b/app/Http/Controllers/Admin/MapelController.php index b9ea6f7..ad755a7 100644 --- a/app/Http/Controllers/Admin/MapelController.php +++ b/app/Http/Controllers/Admin/MapelController.php @@ -42,50 +42,58 @@ public function index(Request $request) } public function store(Request $request) - { - $validated = $request->validate([ - 'nama_mapel' => 'required|string|max:100', - ], [ - 'nama_mapel.required' => 'Nama mata pelajaran wajib diisi', - ]); +{ + $validated = $request->validate([ + 'nama_mapel' => 'required|string|max:100', + 'kelas' => 'nullable|array' + ]); - // Auto-generate id_mapel - $lastMapel = Mapel::orderBy('id_mapel', 'desc')->first(); - - if ($lastMapel) { - $lastNumber = (int) substr($lastMapel->id_mapel, 2); // Ambil angka setelah "MP" - $newNumber = $lastNumber + 1; - } else { - $newNumber = 1; + $mapel = Mapel::create([ + 'nama_mapel' => $validated['nama_mapel'], + ]); + + if($request->kelas){ + foreach($request->kelas as $kelas){ + $mapel->mengajars()->create([ + 'id_kelas' => $kelas + ]); } - - $newIdMapel = 'MP' . str_pad($newNumber, 3, '0', STR_PAD_LEFT); // MP001, MP002, dst - - Mapel::create([ - 'id_mapel' => $newIdMapel, - 'nama_mapel' => $validated['nama_mapel'], - ]); - - return redirect()->route('admin.mapel.index') - ->with('success', 'Data mata pelajaran berhasil ditambahkan!'); } + return redirect()->route('admin.mapel.index') + ->with('success','Data mata pelajaran berhasil ditambahkan!'); +} + + public function update(Request $request, $id_mapel) - { - $mapel = Mapel::findOrFail($id_mapel); +{ + $mapel = Mapel::findOrFail($id_mapel); - $validated = $request->validate([ - 'nama_mapel' => 'required|string|max:100', - ], [ - 'nama_mapel.required' => 'Nama mata pelajaran wajib diisi', - ]); + $validated = $request->validate([ + 'nama_mapel' => 'required|string|max:100', + 'kelas' => 'nullable|array' + ]); - $mapel->update($validated); + $mapel->update([ + 'nama_mapel' => $validated['nama_mapel'] + ]); - return redirect()->route('admin.mapel.index') - ->with('success', 'Data mata pelajaran berhasil diupdate!'); + // hapus relasi lama + $mapel->mengajars()->delete(); + + // buat relasi baru + if($request->kelas){ + foreach($request->kelas as $kelas){ + $mapel->mengajars()->create([ + 'id_kelas' => $kelas + ]); + } } + return redirect()->route('admin.mapel.index') + ->with('success','Data mata pelajaran berhasil diupdate!'); +} + public function destroy($id_mapel) { $mapel = Mapel::findOrFail($id_mapel); diff --git a/app/Models/Mapel.php b/app/Models/Mapel.php index db20e5f..c65cf9e 100644 --- a/app/Models/Mapel.php +++ b/app/Models/Mapel.php @@ -15,7 +15,6 @@ class Mapel extends Model protected $keyType = 'int'; protected $fillable = [ - 'id_mapel', 'nama_mapel', ]; diff --git a/resources/views/admin/mapel/index.blade.php b/resources/views/admin/mapel/index.blade.php index ee2f50a..84aa211 100644 --- a/resources/views/admin/mapel/index.blade.php +++ b/resources/views/admin/mapel/index.blade.php @@ -225,11 +225,26 @@ @error('nama_mapel') {{ $message }} @enderror - ID Mapel akan dibuat otomatis (MP001, MP002, ...) + ID Mapel akan dibuat secara otomatis +
+ + + + + Bisa pilih lebih dari satu kelas +
+ +