Hidupkan CRUD level-user: store/show/update/destroy + inline form + cegah hapus level terpakai
This commit is contained in:
@@ -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.']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user