diff --git a/app/Http/Controllers/Admin/KelasController.php b/app/Http/Controllers/Admin/KelasController.php index e69de29..c3f9ee7 100644 --- a/app/Http/Controllers/Admin/KelasController.php +++ b/app/Http/Controllers/Admin/KelasController.php @@ -0,0 +1,113 @@ +has('search')) { + $search = $request->search; + $query->where('nama_kelas', 'like', "%$search%") + ->orWhere('id_kelas', 'like', "%$search%"); + } + + // SHOW PER PAGE + $perPage = $request->get('perPage', 10); + + $kelass = $query->paginate($perPage)->appends($request->all()); + + return view('admin.kelas.index', compact('kelass')); + } + + public function store(Request $request) +{ + $validated = $request->validate([ + 'nama_kelas' => [ + 'required', + 'string', + 'max:50', + Rule::unique('kelas')->where(function ($query) use ($request) { + return $query->where('tingkat', $request->tingkat); + }), + ], + 'tingkat' => 'required|in:X,XI,XII', +], [ + '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'], + ]); + + return redirect()->route('admin.kelas.index') + ->with('success', 'Data kelas berhasil ditambahkan!'); +} + + + public function update(Request $request, $id_kelas) + { + $kelas = Kelas::findOrFail($id_kelas); + + $validated = $request->validate([ + 'nama_kelas' => [ + 'required', + 'string', + 'max:50', + Rule::unique('kelas')->where(function ($query) use ($request) { + return $query->where('tingkat', $request->tingkat); + })->ignore($id, 'id_kelas'), + ], + 'tingkat' => 'required|in:X,XI,XII', +], [ + 'nama_kelas.unique' => 'Nama kelas sudah ada di tingkat ini!', +]); + + + $kelas->update($validated); + + return redirect()->route('admin.kelas.index') + ->with('success', 'Data kelas berhasil diupdate!'); + } + + public function destroy($id_kelas) + { + $kelas = Kelas::findOrFail($id_kelas); + $kelas->delete(); + + return redirect()->route('admin.kelas.index') + ->with('success', 'Data kelas berhasil dihapus!'); + } +} diff --git a/resources/views/admin/kelas/index.blade.php b/resources/views/admin/kelas/index.blade.php index e69de29..419df4f 100644 --- a/resources/views/admin/kelas/index.blade.php +++ b/resources/views/admin/kelas/index.blade.php @@ -0,0 +1,325 @@ +@extends('admin.layouts.app') + +@section('title', 'Daftar Kelas') + +@section('content') + + + +
| No | +ID Kelas | +Nama Kelas | +Tingkat | +Aksi | +
|---|---|---|---|---|
| {{ $kelass->firstItem() + $index }} | +{{ $kelas->id_kelas }} | +{{ $kelas->nama_kelas }} | +{{ $kelas->tingkat }} | + ++ + + + | +
| Belum ada data kelas | +||||