@foreach ($subjects as $subj) @endforeach @php $uniqueStudents = []; $subjectTotals = array_fill_keys($subjects->pluck('id')->toArray(), 0); @endphp @foreach ($results as $result) @php $studentId = $result->student->id; $subjectId = $result->subject->id; @endphp @if (!in_array($studentId, $uniqueStudents)) @php array_push($uniqueStudents, $studentId); @endphp @foreach ($subjects as $subj) @if ($subj) @php $resultsForSubject = $results ->where('subject_id', $subj->id) ->where('student_id', $result->student_id) ->where('term', $term); $ca1Score = $resultsForSubject->sum('ca_score'); $ca2Score = $resultsForSubject->sum('ca2_score'); $examScore = $resultsForSubject->sum('exam_score'); $weightedAverage = $ca1Score + $ca2Score + $examScore; @endphp @else @endif @endforeach @php $studentResults = $results ->where('student_id', $result->student_id) ->where('term', $term); $passesCount = $studentResults->filter(function ($studentResult) { $weightedAverage = $studentResult->ca_score + $studentResult->ca2_score + $studentResult->exam_score; return $weightedAverage >= 45; })->count(); if (!function_exists('calculateGrade')) { function calculateGrade($marks_to_obtain) { $grades = [ [ 'score_from' => 70, 'score_to' => 100, 'grade' => 'A', 'remark' => 'DISTINCTION', ], [ 'score_from' => 60, 'score_to' => 69, 'grade' => 'B', 'remark' => 'VERY GOOD', ], [ 'score_from' => 50, 'score_to' => 59, 'grade' => 'C', 'remark' => 'AVERAGE', ], [ 'score_from' => 40, 'score_to' => 49, 'grade' => 'D', 'remark' => 'POOR', ], [ 'score_from' => 0, 'score_to' => 39, 'grade' => 'E', 'remark' => 'FAIL', ], ]; foreach ($grades as $grade) { if ( $marks_to_obtain >= $grade['score_from'] && $marks_to_obtain <= $grade['score_to'] ) { return $grade['grade']; } } return null; } } $resultsForStudentSumall = $results->where('student_id', $result->student_id); $sumallWeightedAverage = 0; $studentSubjectCount = 0; foreach ($subjects as $subj) { $resultsForSubject = $resultsForStudentSumall ->where('subject_id', $subj->id) ->where('term', $term); $ca1Score = $resultsForSubject->sum('ca_score'); $ca2Score = $resultsForSubject->sum('ca2_score'); $examScore = $resultsForSubject->sum('exam_score'); $sumallWeightedAverage += ($ca1Score + $ca2Score + $examScore); if ($resultsForSubject->isNotEmpty()) { $studentSubjectCount++; } } $marks_to_obtain = $sumallWeightedAverage; $average = $studentSubjectCount > 0 ? number_format($marks_to_obtain / $studentSubjectCount, 0) : 0; $grade = calculateGrade($average); @endphp @endif @endforeach
MINISTRY OF EDUCATION ONDO STATE
BROADSHEET FOR PRIMARY SCHOOL
SCHOOL: {{ strtoupper($school_name) }}
SCHOOL LGA: {{ strtoupper($school_lga) }}
CLASS: {{ $classname }} {{ $armname }}
@if ($term == 1) {{ strtoupper('First') }} @elseif($term == 2) {{ strtoupper('Second') }} @elseif($term == 3) {{ strtoupper('Third') }} @endif TERM {{ $session }}/{{ $session + 1 }} ACADEMIC SESSION
S/N Name DOB{{ $subj->code }}CumAvg Passes Grade
{{ count($uniqueStudents) }} {{ $result->student->surname }} {{ $result->student->firstname }} {{ $result->student->middlename }} {{ $result->student->dob }} {{ $weightedAverage }} {{ $average }} {{ $passesCount }} {{ $grade }}