feat: snapshot class_name di setiap presensi & pelanggaran
Migration: tambah kolom: - attendances.class_name (varchar 100) - violations.student_class (varchar 100) - Backfill data existing dari students.class_name Controller manual: simpan class_name dari form Sync E-Jurnal: simpan class_name dari lookup student ViolationService: ambil class_name dari student saat buat Model: tambah ke fillable Ini menjamin data historis tetap akurat meskipun siswa naik kelas (X→XI→XII) di tahun ajaran baru.
This commit is contained in:
@@ -19,6 +19,7 @@ class ViolationService
|
||||
$violation = DB::transaction(function () use ($data, $userId) {
|
||||
$violation = Violation::create([
|
||||
'student_id' => $data['student_id'],
|
||||
'student_class' => \App\Models\Student::where('id', $data['student_id'])->value('class_name'),
|
||||
'violation_type_id' => $data['violation_type_id'],
|
||||
'recorded_by' => $userId,
|
||||
'description' => $data['description'] ?? null,
|
||||
|
||||
Reference in New Issue
Block a user