{{ strtoupper($schoolSettings['school_name'] ?? 'SCHOOL') }}
{{-- Header --}}
{{ $schoolSettings['school_name'] ?? 'School Portal' }}
@if(!empty($schoolSettings['school_tagline']))
{{ $schoolSettings['school_tagline'] }}
@endif @if(!empty($schoolSettings['school_address']) || !empty($schoolSettings['school_phone']) || !empty($schoolSettings['school_email']))
{{ $schoolSettings['school_address'] ?? '' }} @if(!empty($schoolSettings['school_phone'])) | Tel: {{ $schoolSettings['school_phone'] }} @endif @if(!empty($schoolSettings['school_email'])) | {{ $schoolSettings['school_email'] }} @endif
@endif
Student Report Card {{ $academicYear->name ?? '' }}
{{-- Student Info --}}
Student Name: {{ $student->name }} Class: {{ $class->full_name }}
Roll Number: {{ $student->studentProfile?->roll_number ?? '—' }} Admission No: {{ $student->studentProfile?->admission_number ?? '—' }}
{{-- Marks Matrix: Subjects × Exams --}} @php $examCount = count($examColumns); @endphp @foreach($examColumns as $examName => $maxMarks) @endforeach @php $grandObtained = 0; $grandMax = 0; @endphp @foreach($matrix as $subject => $examMarks) @php $st = $subjectTotals[$subject] ?? ['obtained' => 0, 'max' => 0, 'percentage' => 0, 'grade' => '—']; $grandObtained += $st['obtained']; $grandMax += $st['max']; @endphp @foreach($examColumns as $examName => $maxMarks) @endforeach @endforeach
Subjects {{ $examName }} ({{ number_format($maxMarks, 0) }}) Total % Grade
{{ $subject }} @if(isset($examMarks[$examName])) @if($examMarks[$examName]['is_absent']) AB @else {{ number_format($examMarks[$examName]['obtained'], 1) }} @endif @else @endif {{ number_format($st['obtained'], 1) }} {{ $st['percentage'] }} @php $gc = match(true) { in_array($st['grade'], ['A+','A']) => 'grade-a', in_array($st['grade'], ['B+','B']) => 'grade-b', in_array($st['grade'], ['C+','C']) => 'grade-c', $st['grade'] === 'D' => 'grade-d', default => 'grade-f', }; @endphp {{ $st['grade'] }}
{{-- Overall Summary --}}
@if($reportCard->rank) @endif
Total Marks
{{ number_format($reportCard->total_marks, 0) }} / {{ number_format($grandMax, 0) }}
Percentage
{{ $reportCard->percentage }}%
Overall Grade
@php $ogc = match(true) { in_array($reportCard->overall_grade, ['A+','A']) => 'grade-a', in_array($reportCard->overall_grade, ['B+','B']) => 'grade-b', in_array($reportCard->overall_grade, ['C+','C']) => 'grade-c', $reportCard->overall_grade === 'D' => 'grade-d', default => 'grade-f', }; @endphp
{{ $reportCard->overall_grade }}
Class Rank
{{ $reportCard->rank }}
{{-- Grade Scale --}}
Grading Scale: A+ (90–100) · A (80–89) · B+ (70–79) · B (60–69) · C+ (50–59) · C (40–49) · D (33–39) · F (Below 33)
{{-- Remarks --}} @if($reportCard->teacher_remarks)
Class Teacher's Remarks
{{ $reportCard->teacher_remarks }}
@endif @if($reportCard->principal_remarks)
Principal's Remarks
{{ $reportCard->principal_remarks }}
@endif {{-- Signatures --}}