diff --git a/app/Http/Controllers/AttendanceController.php b/app/Http/Controllers/AttendanceController.php index f738d7c..9c26d0e 100644 --- a/app/Http/Controllers/AttendanceController.php +++ b/app/Http/Controllers/AttendanceController.php @@ -105,11 +105,30 @@ class AttendanceController extends Controller ->orderBy('class_name') ->pluck('class_name'); + // Cek status presensi per kelas untuk tanggal ini + $classAttendanceStatus = []; + foreach ($classNames as $cn) { + $studentIdsInClass = Student::where('is_active', true) + ->where('class_name', $cn) + ->pluck('id'); + $count = Attendance::where('date', $date) + ->whereIn('student_id', $studentIdsInClass) + ->distinct('student_id') + ->count('student_id'); + $totalStudents = $studentIdsInClass->count(); + $classAttendanceStatus[$cn] = [ + 'has_data' => $count > 0, + 'recorded' => $count, + 'total' => $totalStudents, + ]; + } + $lessonHours = range(1, 10); return view('attendances.create', compact( 'students', 'date', 'className', - 'classNames', 'lessonHours', 'existing' + 'classNames', 'lessonHours', 'existing', + 'classAttendanceStatus' )); } diff --git a/resources/views/attendances/create.blade.php b/resources/views/attendances/create.blade.php index 1d34422..ed7be48 100644 --- a/resources/views/attendances/create.blade.php +++ b/resources/views/attendances/create.blade.php @@ -27,9 +27,19 @@ class="w-full px-4 py-2.5 border border-gray-200 rounded-xl text-sm bg-gray-50/50 focus:bg-white focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition"> @foreach($classNames as $cn) - + @php + $stat = $classAttendanceStatus[$cn] ?? ['has_data' => false, 'recorded' => 0, 'total' => 0]; + $label = $stat['has_data'] + ? '✅ ' . $cn . ' (' . $stat['recorded'] . '/' . $stat['total'] . ')' + : '⬜ ' . $cn; + @endphp + @endforeach +