From 41c0dcfb20a7c463dcd7b9d402d958f248e89385 Mon Sep 17 00:00:00 2001 From: reihanrere Date: Tue, 24 Jun 2025 08:14:22 +0700 Subject: [PATCH] add attedances on raport --- app/Filament/Pages/ReportPreview.php | 21 +++++++++++++++++++ app/Filament/Resources/AssessmentResource.php | 1 + .../Resources/AttendancesResource.php | 1 + .../Pages/ListLearningObjectives.php | 20 ++++++++++++++++-- 4 files changed, 41 insertions(+), 2 deletions(-) diff --git a/app/Filament/Pages/ReportPreview.php b/app/Filament/Pages/ReportPreview.php index 481c896..2c75344 100644 --- a/app/Filament/Pages/ReportPreview.php +++ b/app/Filament/Pages/ReportPreview.php @@ -5,6 +5,7 @@ namespace App\Filament\Pages; use App\Models\AcademicYear; use App\Models\Assessment; use App\Models\AssessmentLearningObjective; +use App\Models\Attendances; use App\Models\ClassRoom; use App\Models\ClassSubject; use App\Models\CompetencyAchievement; @@ -77,6 +78,26 @@ class ReportPreview extends Page $this->class_name = $this->toRoman($this->class->class_level) . ' ' . $this->extractClassLetter($this->class->class_name); $this->loadAssessment(); + $this->loadAttendance(); + } + + protected function loadAttendance() + { + $attendances = Attendances::where('student_id', $this->student->id) + ->where('semester', $this->semester) + ->get(); + + $this->sakit = $attendances->filter(function ($item) { + return $item->status === 'sick'; + })->count(); + + $this->izin = $attendances->filter(function ($item) { + return $item->status === 'permission'; + })->count(); + + $this->tanpa_keterangan = $attendances->filter(function ($item) { + return $item->status === 'absent'; + })->count(); } protected function loadAssessment(): void diff --git a/app/Filament/Resources/AssessmentResource.php b/app/Filament/Resources/AssessmentResource.php index b5c0902..d6b7cb0 100644 --- a/app/Filament/Resources/AssessmentResource.php +++ b/app/Filament/Resources/AssessmentResource.php @@ -194,6 +194,7 @@ class AssessmentResource extends Resource ->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) + ->recordUrl(null) ->filters([ Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) diff --git a/app/Filament/Resources/AttendancesResource.php b/app/Filament/Resources/AttendancesResource.php index a19f72e..a415346 100644 --- a/app/Filament/Resources/AttendancesResource.php +++ b/app/Filament/Resources/AttendancesResource.php @@ -246,6 +246,7 @@ class AttendancesResource extends Resource ->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) + ->recordUrl(null) ->filters([ Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) diff --git a/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php b/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php index 0ed5246..1154521 100644 --- a/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php +++ b/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php @@ -25,8 +25,24 @@ class ListLearningObjectives extends ListRecords ->pluck('class_room_id') ->toArray(); - return LearningObjective::with(["subject", "class"]) - ->whereIn('class_room_id', $homeRoomClassIds); + if (!empty($homeRoomClassIds)) { + return LearningObjective::with(["subject", "class"]) + ->whereIn('class_room_id', $homeRoomClassIds); + } else { + $teacherClass = TeacherSubject::with(["subject", "class"]) + ->where('teacher_id',$user->id) + ->firstOrFail(); + + $query = LearningObjective::with(["subject", "class"]); + + if ($teacherClass) { + $query->where('class_room_id', $teacherClass->class_id) + ->where('subject_id', $teacherClass->subject_id); + } + + return $query; + } + } return LearningObjective::query();