diff --git a/app/Http/Controllers/Parking/Setup/UserLevel/LevelUserController.php b/app/Http/Controllers/Parking/Setup/UserLevel/LevelUserController.php index 387cc82..26a686a 100644 --- a/app/Http/Controllers/Parking/Setup/UserLevel/LevelUserController.php +++ b/app/Http/Controllers/Parking/Setup/UserLevel/LevelUserController.php @@ -7,6 +7,7 @@ use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; class LevelUserController extends Controller @@ -43,7 +44,24 @@ public function create() */ public function store(Request $request) { - // + $data = $request->validate( + [ + 'level_code' => 'required|string|max:10|unique:level_user,level_code', + 'level_name' => 'required|string|max:30', + ], + [ + 'level_code.unique' => 'Kode level sudah dipakai, ganti dengan yang unik.', + ] + ); + + $level = LevelPegawai::create([ + 'level_code' => $data['level_code'], + 'level_name' => $data['level_name'], + 'create_by' => Auth::user()->nomer ?? Auth::user()->username ?? 'system', + 'create_date' => now(), + ]); + + return response()->json(['success' => true, 'message' => 'Level pengguna berhasil ditambahkan.', 'data' => $level], 201); } /** @@ -54,7 +72,7 @@ public function store(Request $request) */ public function show($id) { - Log::info($id); + return response()->json(['success' => true, 'data' => LevelPegawai::findOrFail($id)]); } /** @@ -65,7 +83,7 @@ public function show($id) */ public function edit($id) { - // + return response()->json(['success' => true, 'data' => LevelPegawai::findOrFail($id)]); } /** @@ -77,7 +95,17 @@ public function edit($id) */ public function update(Request $request, $id) { - // + // level_code tidak bisa diubah (dipakai relasi pegawai.level_pegawai) + $data = $request->validate(['level_name' => 'required|string|max:30']); + + $level = LevelPegawai::findOrFail($id); + $level->update([ + 'level_name' => $data['level_name'], + 'update_by' => Auth::id(), + 'update_date' => now(), + ]); + + return response()->json(['success' => true, 'message' => 'Level pengguna berhasil diperbarui.', 'data' => $level]); } /** @@ -88,6 +116,18 @@ public function update(Request $request, $id) */ public function destroy($id) { - // + $level = LevelPegawai::findOrFail($id); + + $dipakai = DB::table('pegawai')->where('level_pegawai', $level->level_code)->count(); + if ($dipakai > 0) { + return response()->json([ + 'success' => false, + 'message' => "Level {$level->level_code} dipakai {$dipakai} pegawai, tidak bisa dihapus.", + ], 409); + } + + $level->delete(); + + return response()->json(['success' => true, 'message' => 'Level pengguna berhasil dihapus.']); } } diff --git a/app/Models/LevelPegawai.php b/app/Models/LevelPegawai.php index 5f2054a..3ccf6a3 100644 --- a/app/Models/LevelPegawai.php +++ b/app/Models/LevelPegawai.php @@ -10,6 +10,8 @@ class LevelPegawai extends Model use HasFactory; protected $table = 'level_user'; + protected $primaryKey = 'level_id'; + public $timestamps = false; // pakai create_date / update_date manual protected $fillable = [ 'level_code', 'level_name','create_by','create_date','update_date','update_by' diff --git a/resources/views/setup/UserLevel/level-user.blade.php b/resources/views/setup/UserLevel/level-user.blade.php index 5409067..3c2a10d 100644 --- a/resources/views/setup/UserLevel/level-user.blade.php +++ b/resources/views/setup/UserLevel/level-user.blade.php @@ -56,9 +56,9 @@
| No. | @@ -73,9 +73,9 @@|||||||
|---|---|---|---|---|---|---|---|
| {{ $loop->iteration }} | {{ $level->level_id }} | -{{ $level->level_code }} | +{{ $level->level_code }} | {{ $level->level_name }} | -{{ \Carbon\Carbon::parse($level->create_date)->format('Y-m-d')}} | +{{ $level->create_date ? \Carbon\Carbon::parse($level->create_date)->format('Y-m-d') : '-' }} | @@ -86,11 +86,11 @@ |