@php $mainGradeScales = \App\Models\GradeScale::orderBy('min_mark', 'asc') ->get(['grade', 'min_mark', 'max_mark', 'grade_point']); @endphp @forelse($cards as $card) @php $registration = $card['registration']; $student = $registration->student; $merit = $card['merit']; $weightedExams = $card['weighted_exams']; $results = $card['results']; $schoolInfo = $card['schoolInfo']; $totalSubjects = count($results); $pairedCount = collect($results)->where('is_paired', true)->count(); $fourthSubjectsCount = collect($results)->where('is_fourth', true)->count(); // Count actual tbody rows (for verification) $actualRowCount = 0; foreach ($results as $r) { if ($r['is_fourth']) $actualRowCount++; // Header row with colspan $actualRowCount++; // Main subject data row if ($r['is_paired']) $actualRowCount++; // Second paper row } // CORRECT: Rowspan covers all tbody rows including Grand Total // - Subject data rows have GPA/Position cells: $totalSubjects // - Paired subject 2nd paper rows share GPA via rowspan: $pairedCount // - Fourth subject HEADER rows (colspan): $fourthSubjectsCount (rowspan passes through) // - Grand Total row: +1 (now in tbody, no cells for GPA/Position columns) $rowspanCount = $totalSubjects + $pairedCount + $fourthSubjectsCount + 1; $isMT = strtolower($exam->examType->name ?? '') === 'mt'; $isTerm = strtolower($exam->examType->name ?? '') === 'term'; $checkMT = null; $checkTerm = null; $termTotalOb = 0; $termTotalFull = 0; $termTotalMCQOb = 0; $termTotalMCQFull = 0; $termTotalCQOb = 0; $termTotalCQFull = 0; $termTotalPatOb = 0; $termTotalPatFull = 0; $termTotalConOb = 0; $optionOb = 0; $totalGPAPoint = 0; $mtTotalTotalFull = 0; $mtTotalTotalOb = 0; foreach ($weightedExams as $wExam) { if (in_array(strtolower($wExam->componentExam->examType->name), ['term'])) { $checkTerm = 1; } else { $checkMT = 1; } } // Grade table full marks should come from exam model full mark column. $gradeTableFullMarks = (float) ($exam->full_mark ?? $exam->full_marks ?? 0); if ($gradeTableFullMarks <= 0) { $gradeTableFullMarks = ($checkMT == 1 && $checkTerm == null) ? 20 : 100; } $formatScaleMark = function ($value) { $formatted = number_format((float) $value, 2, '.', ''); return rtrim(rtrim($formatted, '0'), '.'); }; @endphp
@php $displayGradeRows = []; $sortedScales = $mainGradeScales->sortBy('min_mark')->values(); $previousDisplayMax = null; $totalScaleCount = $sortedScales->count(); foreach ($sortedScales as $idx => $scale) { $rawMin = ($gradeTableFullMarks * (float) ($scale->min_mark ?? 0)) / 100; $rawMax = ($gradeTableFullMarks * (float) ($scale->max_mark ?? 0)) / 100; if ((float) ($scale->max_mark ?? 0) >= 100) { $rawMax = $gradeTableFullMarks; } $displayMin = ($idx === 0) ? round((float) $rawMin, 2) : round(((float) $previousDisplayMax + 0.01), 2); if ($idx < $totalScaleCount - 1) { $nextScale = $sortedScales[$idx + 1]; $nextRawMin = ($gradeTableFullMarks * (float) ($nextScale->min_mark ?? 0)) / 100; $displayMax = round(((float) $nextRawMin - 0.01), 2); } else { $displayMax = round((float) $rawMax, 2); } if ($displayMax < $displayMin) { $displayMax = $displayMin; } $displayGradeRows[] = [ 'min' => $displayMin, 'max' => $displayMax, 'grade' => $scale->grade, 'point' => (float) ($scale->grade_point ?? 0), ]; $previousDisplayMax = $displayMax; } @endphp @forelse(collect($displayGradeRows) as $row) @empty @endforelse
IntervalLetterGPA
{{ rtrim(rtrim(number_format($row['min'], 2, '.', ''), '0'), '.') }}–{{ rtrim(rtrim(number_format($row['max'], 2, '.', ''), '0'), '.') }} {{ $row['grade'] }} {{ number_format($row['point'], 2) }}
0.00–{{ number_format(round((float) $gradeTableFullMarks, 2), 2, '.', '') }}N/A0.00

{{ $schoolInfo->school_name ?? '--' }}

{{ $schoolInfo->address ?? '--' }}

Logo
Progress Report
Student's Name: {{ $student->student_name_english ?? 'N/A' }} Class: {{ $registration->class_model->name ?? 'N/A' }} Group: {{ $registration->group->name ?? 'N/A' }} Session: {{ $registration->session->name ?? 'N/A' }}
Section: {{ $registration->section->name ?? 'N/A' }} Roll: {{ $registration->class_roll ?? 'N/A' }} Shift: {{ $registration->shift->name ?? 'N/A' }} Exam Name: {{ $exam->display_name ?? $exam->exam_name }}
@php $classNum = $registration->class_model->class_code; $isPrimary = 0; $isJunior = 0; $isSecondary = 0; if ($classNum >= 0 && $classNum <= 4) { $isPrimary = 1; } elseif ($classNum >= 5 && $classNum <= 8) { $isJunior = 1; } else { $isSecondary = 1; } @endphp @if ($checkMT == 1 && $checkTerm == null) {{-- @foreach ($weightedExams as $wExam) @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if($isPrimary==1 || $isJunior==1) @if ( $wExam->weightage_percent < 100) @else @endif @elseif ($isJunior==1) @if ( $wExam->weightage_percent < 100) @else @endif @elseif ($isSecondary==1) @if ( $wExam->weightage_percent < 100) @else @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @endif @endforeach --}} @if($isSecondary == 1) @endif @if($isPrimary == 1) @elseif ($isJunior == 1) @elseif($isSecondary == 1) @endif {{-- @foreach ($weightedExams as $wExam) @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if ($isPrimary == 1 || $isJunior==1) @if ( $wExam->weightage_percent <100) @endif @elseif($isJunior == 1) @if ( $wExam->weightage_percent < 100) @endif @elseif($isSecondary==1 ) @if ( $wExam->weightage_percent < 100) @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @endif @endforeach --}} @foreach ($weightedExams as $wExam) @if($wExam->componentExam->examType->name == "Term" || $wExam->componentExam->examType->name == "term") @if($isPrimary == 1 || $isJunior == 1) @elseif ($isJunior == 1) @elseif ($isSecondary == 1) @endif @elseif($wExam->componentExam->examType->name == "MT" || $wExam->componentExam->examType->name == "mt") @endif @endforeach @if($isPrimary == 1) @elseif($isJunior == 1) @elseif($isSecondary == 1) @endif @else @foreach ($weightedExams as $wExam) @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if($isPrimary == 1 || $isJunior == 1) @if ($wExam->weightage_percent < 100) @else @endif @elseif ($isJunior == 1) @if ($wExam->weightage_percent < 100) @else @endif @elseif ($isSecondary == 1) @if ($wExam->weightage_percent < 100) @else @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @endif @endforeach @if($isPrimary == 1) @elseif ($isJunior == 1) @elseif($isSecondary == 1) @endif @foreach ($weightedExams as $wExam) @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if ($isPrimary == 1 || $isJunior == 1) @if ($wExam->weightage_percent < 100) @endif @elseif($isJunior == 1) @if ($wExam->weightage_percent < 100) @endif @elseif($isSecondary == 1) @if ($wExam->weightage_percent < 100) @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @endif @endforeach @foreach ($weightedExams as $wExam) @if($wExam->componentExam->examType->name == "Term" || $wExam->componentExam->examType->name == "term") @if($isPrimary == 1 || $isJunior == 1) @if ($wExam->weightage_percent < 100) @endif @elseif ($isJunior == 1) @elseif ($isSecondary == 1) @endif @elseif($wExam->componentExam->examType->name == "MT" || $wExam->componentExam->examType->name == "mt") @endif @endforeach @if($isPrimary == 1) @elseif($isJunior == 1) @elseif($isSecondary == 1) @endif @endif @php $sl = 1; @endphp @foreach ($results as $subjectKey => $result) @if ($checkMT == 1 && $checkTerm == null) @if ($result['is_fourth']) @endif @if ($result['is_paired']) @php $paper1 = $result['paper1']; $paper2 = $result['paper2']; @endphp @foreach ($weightedExams as $wExam) @php $marks = $paper1['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @if($isSecondary == 1) @endif {{-- --}} @php $totalGPAPoint += floatval(rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.')); @endphp @if ($loop->first) @if($isSecondary == 1) @elseif($isJunior == 1) @else @endif @endif @foreach ($weightedExams as $wExam) @php $marks = $paper2['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @else @if ($result['is_fourth']) @foreach ($weightedExams as $wExam) @php $marks = $result['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @if($isSecondary == 1) @endif @php $totalGPAPoint += floatval(rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.')); @endphp @if ($loop->first) @if($isSecondary == 1) @elseif($isJunior == 1) @else @endif @endif @else @foreach ($weightedExams as $wExam) @php $marks = $result['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @if($isSecondary == 1) @endif @php $totalGPAPoint += floatval(rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.')); @endphp @if ($loop->first) {{-- Secondary (class 9-12) needs TWO GPA cells (w/o 4th + with 4th) --}} @if($isSecondary == 1) @elseif($isJunior == 1) @else @endif @endif @endif @endif @else {{-- START: Combined full marks calculation so that Full Marks column shows MT% + Term% independent of exam selection order --}} @php $combinedFullMarks = 0; foreach ($weightedExams as $wExam) { $examTypeName = strtolower($wExam->componentExam->examType->name ?? ''); $weight = $wExam->weightage_percent ?? 100; if (!empty($result['is_paired']) && $result['is_paired']) { $p1Marks = $result['paper1']['weighted_marks'][$wExam->component_exam_id] ?? null; $p2Marks = $result['paper2']['weighted_marks'][$wExam->component_exam_id] ?? null; if ($examTypeName === 'mt') { $baseFull = ($p1Marks['mt_total_full'] ?? 0) + ($p2Marks['mt_total_full'] ?? 0); } else { $baseFull = ($p1Marks['total_full'] ?? 0) + ($p2Marks['total_full'] ?? 0); } } else { $marksForFull = $result['weighted_marks'][$wExam->component_exam_id] ?? null; if (!$marksForFull) { continue; } if ($examTypeName === 'mt') { $baseFull = $marksForFull['mt_total_full'] ?? 0; } else { $baseFull = $marksForFull['total_full'] ?? 0; } } // এখানে subject-এর জন্য MT + Term weight অনুযায়ী effective full marks বের করছি $combinedFullMarks += $baseFull * min($weight, 100) / 100; } // এই flag দিয়ে নিশ্চিত করছি যে Full Marks cell প্রতি subject-এ একবারই প্রিন্ট হবে $printedFullMarksCell = false; @endphp @if ($result['is_fourth']) @endif @if ($result['is_paired']) @php $paper1 = $result['paper1']; $paper2 = $result['paper2']; @endphp @foreach ($weightedExams as $wExam) @if (!$printedFullMarksCell) {{-- Full Marks (MT% + Term%) একবারই দেখাচ্ছি; paired হলে দুই row জুড়ে rowspan --}} @php $printedFullMarksCell = true; @endphp @endif @php $marks = $paper1['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if($isPrimary == 1 || $isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @elseif ($isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @elseif ($isSecondary == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @if($isSecondary == 1) @endif @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @php $totalGPAPoint += floatval(rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.')); @endphp @if ($loop->first) @if($isSecondary == 1) @elseif($isJunior == 1) @else @endif @endif {{-- @if ($checkMT == 1 && $checkTerm == null) @else @endif --}} @foreach ($weightedExams as $wExam) @if (!$printedFullMarksCell) {{-- Full Marks cell দ্বিতীয় পেপারের লুপে missing থাকলে fallback হিসেবেও এখানে প্রিন্ট হবে --}} @php $printedFullMarksCell = true; @endphp @endif @php $marks = $paper2['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if($isPrimary == 1 || $isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @elseif ($isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @elseif ($isSecondary == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @if($isSecondary == 1) @endif @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @else @if ($result['is_fourth']) {{-- @if ($checkMT == 1 && $checkTerm == null) @else @endif --}} @foreach ($weightedExams as $wExam) @if (!$printedFullMarksCell) {{-- Single subject এর ক্ষেত্রে এখানেই একবারের জন্য Full Marks দেখাচ্ছি --}} @php $printedFullMarksCell = true; @endphp @endif @php $marks = $result['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if($isPrimary == 1 || $isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @elseif ($isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @elseif ($isSecondary == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @if($isSecondary == 1) @endif @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @php $totalGPAPoint += floatval(rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.')); @endphp @if ($loop->first) @if($isSecondary == 1) @elseif($isJunior == 1) @else @endif @endif @else {{-- @if ($checkMT == 1 && $checkTerm == null) @else @endif --}} @foreach ($weightedExams as $wExam) @if (!$printedFullMarksCell) {{-- Single/Additional subject এর Full Marks cell (MT + Term weight সহ) --}} @php $printedFullMarksCell = true; @endphp @endif @php $marks = $result['weighted_marks'][$wExam->component_exam_id] ?? null; @endphp @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if($isPrimary == 1 || $isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif {{-- END: Combined full marks calculation and single-cell rendering for MT + Term merged exams --}} @elseif ($isJunior == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @elseif ($isSecondary == 1) @php $termTotalOb += is_numeric($marks['total_obt'] ?? null) ? (float) $marks['total_obt'] : 0; $termTotalFull += is_numeric($marks['total_full'] ?? null) ? (float) $marks['total_full'] : 0; $termTotalMCQOb += is_numeric($marks['mcq_obt'] ?? null) ? (float) $marks['mcq_obt'] : 0; $termTotalMCQFull += is_numeric($marks['mcq_full'] ?? null) ? (float) $marks['mcq_full'] : 0; $termTotalCQOb += is_numeric($marks['cq_obt'] ?? null) ? (float) $marks['cq_obt'] : 0; $termTotalCQFull += is_numeric($marks['cq_full'] ?? null) ? (float) $marks['cq_full'] : 0; $termTotalPatOb += is_numeric($marks['prac_obt'] ?? null) ? (float) $marks['prac_obt'] : 0; $termTotalPatFull += is_numeric($marks['prac_full'] ?? null) ? (float) $marks['prac_full'] : 0; @endphp @if ($wExam->weightage_percent < 100) @php $weightedCon = is_numeric($marks['total_obt'] ?? null) ? round(((float) $marks['total_obt'] * $wExam->weightage_percent) / 100) : 'AB'; @endphp @php $termTotalConOb += is_numeric($weightedCon) ? (float) $weightedCon : 0; @endphp @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @if($isSecondary == 1) @endif @php $mtTotalTotalFull += is_numeric($marks['mt_total_full'] ?? null) ? (float) $marks['mt_total_full'] : 0; $mtTotalTotalOb += is_numeric($marks['mt_total_obt'] ?? null) ? (float) $marks['mt_total_obt'] : 0; @endphp @endif @endforeach @php $totalGPAPoint += floatval(rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.')); @endphp @if ($loop->first) {{-- Secondary (class 9-12) needs TWO GPA cells (w/o 4th + with 4th) --}} @if($isSecondary == 1) @elseif($isJunior == 1) @else @endif @endif @endif @endif @endif @endforeach {{-- Grand Total Row (moved from tfoot to tbody for rowspan to work) --}} @if ($checkMT == 1 && $checkTerm == null) @if ($isSecondary == 1) @endif @if ($isPrimary == 1) @elseif ($isJunior == 1) @elseif ($isSecondary == 1) @endif @else @php // Grand Total (Full Marks) should reflect counted marks when both MT + Term are enabled. // i.e. (Term Full * Term%) + (MT Full * MT%) instead of only Term Full. $termWeightPercent = 100; $mtWeightPercent = 100; foreach ($weightedExams as $wExam) { $typeName = strtolower($wExam->componentExam->examType->name ?? ''); if ($typeName === 'term') { $termWeightPercent = (float) ($wExam->weightage_percent ?? 100); } if ($typeName === 'mt') { $mtWeightPercent = (float) ($wExam->weightage_percent ?? 100); } } $termWeightPercent = max(0, min(100, $termWeightPercent)); $mtWeightPercent = max(0, min(100, $mtWeightPercent)); $grandTotalFullMarks = 0; if ($checkMT == 1 && $checkTerm == null) { $grandTotalFullMarks = $mtTotalTotalFull; } elseif ($checkMT == null && $checkTerm == 1) { $grandTotalFullMarks = $termTotalFull; } else { // Both MT + Term $grandTotalFullMarks = round(($termTotalFull * $termWeightPercent) / 100) + round(($mtTotalTotalFull * $mtWeightPercent) / 100); } @endphp @foreach ($weightedExams as $wExam) @if(in_array(strtolower($wExam->componentExam->examType->name), ['term'])) @if ($isPrimary == 1 || $isJunior == 1) @if ($wExam->weightage_percent < 100) @endif @elseif ($isJunior == 1) @elseif ($isSecondary == 1) @if ($wExam->weightage_percent < 100) @endif @endif @elseif(in_array(strtolower($wExam->componentExam->examType->name), ['mt'])) @endif @endforeach @if ($isPrimary == 1) @elseif ($isJunior == 1) @elseif ($isSecondary == 1) @endif @endif
SL Subjects Full Marks{{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} ObtainedObtained TotalHighest Marks Letter Grade Grade PointGPA PositionGPA Position GPA
(Without 4th
subject)
GPA Position
Total{{ $wExam->weightage_percent }}% Marks Of TermC.Q M.C.Q Total{{ $wExam->weightage_percent }}% Marks Of TermC.Q M.C.Q Practical Total{{ $wExam->weightage_percent }}% Marks Of TermTotal
Mark ObtMark Obt Mark Obt Mark ObtMark Obt Mark Obt Mark Obt Mark ObtSection Class
SL Subjects Full Marks{{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} {{ $wExam->componentExam->exam_name }} Obtained
Total
Highest
Marks
Letter
Grade
Grade
Point
GPA PositionGPA PositionGPA
(Without
4th subject)
GPA Position
C.Q M.C.Q Total{{ $wExam->weightage_percent }}% Marks
Of Term
C.Q M.C.Q Practical Total{{ $wExam->weightage_percent }}% Marks
Of Term
Mark Obt{{ $wExam->weightage_percent }}% Marks
Of Term
Mark Obt Mark Obt Mark ObtMark Obt Mark Obt Mark Obt Mark ObtMark ObtSection Class
Additional Subject
{{ $sl++ }} {{ $result['subject_name'] }}{{ $marks['mt_total_full'] }} {{ $marks['mt_total_obt'] }} @if($result['final']->total_obtained === 'A' || $result['final']->total_obtained === 'AB') AB @else {{ $result['final']->total_obtained ?? 0 }} @endif @if($result['final']->total_obtained === 'A' || $result['final']->total_obtained === 'AB') AB @else {{ $result['final']->total_obtained ?? 0 }} @endif {{ max($result['paper1']['final']->highest_marks ?? 0, $result['paper2']['final']->highest_marks ?? 0) }} {{ $result['final']->grade ?? '' }} {{ rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.') }}{{ number_format($merit->gpa_without_4th ?? 0, 2) }} {{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_section ?? '' }} {{ $merit->position_class ?? '' }}
{{ $marks['mt_total_full'] }} {{ $marks['mt_total_obt'] }}
{{ $sl++ }} {{ $result['subject_name'] }} {{ $marks['mt_total_full'] }} @if($result['final']->total_obtained === 'A' || $result['final']->total_obtained === 'AB') AB @else {{ $result['final']->total_obtained ?? 0 }} @endif @if($result['final']->total_obtained === 'A' || $result['final']->total_obtained === 'AB') AB @else {{ $result['final']->total_obtained ?? 0 }} @endif {{ $result['final']->highest_marks ?? 0 }} {{ $result['final']->grade ?? '' }} {{ rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.') }}{{ number_format($merit->gpa_without_4th ?? 0) }} {{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_section ?? '' }} {{ $merit->position_class ?? '' }}
{{ $sl++ }} {{ $result['subject_name'] }} @if($result['is_fourth']) (Additional) @endif{{ $marks['mt_total_full'] }} @if($result['final']->total_obtained === 'A' || $result['final']->total_obtained === 'AB') AB @else {{ $result['final']->total_obtained ?? 0 }} @endif @if($result['final']->total_obtained === 'A' || $result['final']->total_obtained === 'AB') AB @else {{ $result['final']->total_obtained ?? 0 }} @endif {{ $result['final']->highest_marks ?? 0 }} {{ $result['final']->grade ?? '' }} {{ rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.') }}{{ number_format($merit->gpa_without_4th ?? 0, 2) }} {{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_section ?? '' }} {{ $merit->position_class ?? '' }}
Additional Subject
{{ $sl++ }} {{ $result['subject_name'] }}{{ (int) round($combinedFullMarks) }}{{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['prac_full'] }} {{ $marks['prac_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['mt_total_full'] }} {{ $marks['mt_total_obt'] }} {{ $result['final']->total_obtained ?? 0 }} {{ $result['final']->total_obtained ?? 0 }} {{ max($result['paper1']['final']->highest_marks ?? 0, $result['paper2']['final']->highest_marks ?? 0) }} {{ $result['final']->grade ?? '' }} {{ rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.') }}{{ number_format($merit->gpa_without_4th ?? 0, 2) }} {{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }} {{ $merit->section_class ?? '' }}
20100{{ (int) round($combinedFullMarks) }}{{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['prac_full'] }} {{ $marks['prac_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['mt_total_full'] }} {{ $marks['mt_total_obt'] }} {{ $result['final']->total_obtained ?? 0 }}
{{ $sl++ }} {{ $result['subject_name'] }} 20100{{ (int) round($combinedFullMarks) }}{{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['prac_full'] }} {{ $marks['prac_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['mt_total_full'] }} {{ $marks['mt_total_obt'] }} {{ $result['final']->total_obtained ?? 0 }} {{ $result['final']->total_obtained ?? 0 }} {{ $result['final']->highest_marks ?? 0 }} {{ $result['final']->grade ?? '' }} {{ rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.') }}{{ number_format($merit->gpa_without_4th ?? 0, 2) }} {{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }} {{ $merit->section_class ?? '' }}
{{ $sl++ }} {{ $result['subject_name'] }} @if($result['is_fourth']) (Additional) @endif20100{{ (int) round($combinedFullMarks) }}{{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['cq_full'] }} {{ $marks['cq_obt'] }} {{ $marks['mcq_full'] }} {{ $marks['mcq_obt'] }} {{ $marks['prac_full'] }} {{ $marks['prac_obt'] }} {{ $marks['total_full'] }} {{ $marks['total_obt'] }}{{ $weightedCon }}{{ $marks['mt_total_full'] }} {{ $marks['mt_total_obt'] }} {{ $result['final']->total_obtained ?? 0 }} {{ $result['final']->total_obtained ?? 0 }} {{ $result['final']->highest_marks ?? 0 }} {{ $result['final']->grade ?? '' }} {{ rtrim(rtrim(number_format($result['final']->grade_point ?? 0, 2), '0'), '.') }}{{ number_format($merit->gpa_without_4th ?? 0, 2) }} {{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_class ?? '' }}{{ number_format($merit->gpa ?? 0, 2) }} {{ $merit->position_section ?? '' }} {{ $merit->position_class ?? '' }}
Grand Total {{$mtTotalTotalFull}} {{ $merit->total_mark ?? '' }}{{ $merit->total_mark ?? '' }}-- {{ $totalGPAPoint }} - {{ $totalGPAPoint }} - {{ $totalGPAPoint }}
Grand Total{{ (int) $grandTotalFullMarks }}{{ $termTotalFull }} {{ $termTotalOb }}{{ $termTotalConOb }} {{ $termTotalCQFull }} {{ $termTotalCQOb }} {{ $termTotalMCQFull }} {{ $termTotalMCQOb }} {{ $termTotalPatFull }} {{ $termTotalPatOb }} {{ $termTotalFull }} {{ $termTotalOb }}{{ $termTotalConOb }} {{$mtTotalTotalFull}} {{$mtTotalTotalOb }}{{ $merit->total_mark ?? '' }} -- {{ $totalGPAPoint }} - {{ $totalGPAPoint }} - {{ $totalGPAPoint }}
@php $perf = \App\Models\StudentPerformance::where('exam_id', $exam->id) ->where('student_id', $registration->student_id) ->first(); @endphp
Categories Excellent Very Good Good Average
Behaviour {{ $perf && $perf->behaviour === 'Ex.' ? '✓' : '' }} {{ $perf && $perf->behaviour === 'V.G' ? '✓' : '' }} {{ $perf && $perf->behaviour === 'Good' ? '✓' : '' }} {{ $perf && $perf->behaviour === 'Avg.' ? '✓' : '' }}
Dress Up {{ $perf && $perf->dress_up === 'Ex.' ? '✓' : '' }} {{ $perf && $perf->dress_up === 'V.G' ? '✓' : '' }} {{ $perf && $perf->dress_up === 'Good' ? '✓' : '' }} {{ $perf && $perf->dress_up === 'Avg.' ? '✓' : '' }}
Performance {{ $perf && $perf->performance === 'Ex.' ? '✓' : '' }} {{ $perf && $perf->performance === 'V.G' ? '✓' : '' }} {{ $perf && $perf->performance === 'Good' ? '✓' : '' }} {{ $perf && $perf->performance === 'Avg.' ? '✓' : '' }}
Co-Curricular {{ $perf && $perf->co_curriculum === 'Ex.' ? '✓' : '' }} {{ $perf && $perf->co_curriculum === 'V.G' ? '✓' : '' }} {{ $perf && $perf->co_curriculum === 'Good' ? '✓' : '' }} {{ $perf && $perf->co_curriculum === 'Avg.' ? '✓' : '' }}
@php $roles = [ 'Form Teacher', 'Assistant Co-Ordinator', 'Co-Ordinator', 'Vice-Principal', ]; @endphp @foreach($roles as $role) @php $comment = $card['facultyComments'][$role][0]->comment ?? '—'; @endphp @endforeach
DesignationComments
{{ $role }} {{ $comment }}
@php $roles = [ 'Principal', ]; @endphp @foreach($roles as $role) @php $comment = $card['facultyComments'][$role][0]->comment ?? '—'; @endphp @endforeach
RemarkPrincipal's Signature
{{ $comment }}
@empty

No student data available for this exam.

@endforelse