@extends('layouts.app') @section('title', 'NECTA Examination Results - ' . $examType . ' ' . $examYear) @section('content')
{{-- Alert Messages --}} @if(session('success')) @endif @if(session('error')) @endif {{-- Official NECTA Header Banner --}}
OFFICIAL NATIONAL EXAM MODULE
THE NATIONAL EXAMINATIONS COUNCIL OF TANZANIA
{{ $examType }} {{ $examYear }} NATIONAL EXAMINATION RESULTS
{{-- Quick Actions --}}
@if($summary['total'] > 0)
@csrf
@endif
{{-- Centre Details Strip --}}
CENTRE: {{ $centerNumber }}
{{ strtoupper($centerName) }}
•
EXAM: {{ $examType }}
YEAR: {{ $examYear }}
{{-- Filter & Tab Nav Strip --}}
{{-- Exam & Year Selector Form --}}
Exam
Year
@if(!empty($search)) @endif @if(!empty($divisionFilter)) @endif
{{-- Status Pills --}}
Total: {{ $summary['total'] }} Passed: {{ $summary['passed'] }} ({{ $summary['pass_rate'] }}%) Mapped: {{ $summary['mapped_count'] }}
{{-- Official NECTA Division Summary Table (Centre Performance Matrix) --}} @if($summary['total'] > 0)
CENTRE PERFORMANCE SUMMARY (DIVISION MATRIX)
Official NECTA Format
GENDER / SEX DIV I DIV II DIV III DIV IV DIV 0 TOTAL
FEMALE (F) {{ $summary['divisions']['I']['F'] }} {{ $summary['divisions']['II']['F'] }} {{ $summary['divisions']['III']['F'] }} {{ $summary['divisions']['IV']['F'] }} {{ $summary['divisions']['0']['F'] }} {{ $summary['female_total'] }}
MALE (M) {{ $summary['divisions']['I']['M'] }} {{ $summary['divisions']['II']['M'] }} {{ $summary['divisions']['III']['M'] }} {{ $summary['divisions']['IV']['M'] }} {{ $summary['divisions']['0']['M'] }} {{ $summary['male_total'] }}
TOTAL {{ $summary['divisions']['I']['T'] }} {{ $summary['divisions']['II']['T'] }} {{ $summary['divisions']['III']['T'] }} {{ $summary['divisions']['IV']['T'] }} {{ $summary['divisions']['0']['T'] }} {{ $summary['total'] }}
@endif {{-- Main Tabs Navigation: Candidates List vs Regional Comparison --}}
{{-- TAB 1: Candidates Results Table --}}
{{-- Search & Sub-Filter Bar --}}
@if(!empty($search) || !empty($divisionFilter) || !empty($statusFilter)) @endif
{{-- Table of Results --}}
@if($results->count() > 0)
@foreach($results as $res) {{-- Candidate No --}} {{-- Student Name --}} {{-- Sex --}} {{-- Points / AGGT --}} {{-- Division --}} {{-- Detailed Subjects --}} {{-- Actions: WhatsApp Share & Link --}} @endforeach
CAND. NO STUDENT NAME (SYSTEM) SEX AGGT DIV DETAILED SUBJECTS ACTIONS
{{ $res->candidate_no }} @if($res->student)
{{ $res->student_name }}
Adm: {{ $res->student->admission_number }} @elseif(!empty($res->student_name))
{{ $res->student_name }}
NECTA Record @else
Not mapped
@endif
@if(strtoupper($res->gender) === 'F') F @else M @endif {{ $res->points ?: '—' }} @php $div = strtoupper(trim((string)$res->division)); $badgeClass = match($div) { 'I', 'DIV I', 'DIVISION I', 'DISTINCTION', '1' => 'bg-success text-white', 'II', 'DIV II', 'DIVISION II', 'MERIT', '2' => 'bg-primary text-white', 'III', 'DIV III', 'DIVISION III', 'CREDIT', '3' => 'bg-info text-dark', 'IV', 'DIV IV', 'DIVISION IV', 'PASS', '4' => 'bg-warning text-dark', '0', 'DIV 0', 'DIVISION 0', 'FAIL' => 'bg-danger text-white', default => 'bg-secondary text-white', }; @endphp {{ $res->division ?: '—' }} @if(!empty($res->subjects_json) && is_array($res->subjects_json))
@foreach($res->subjects_json as $subCode => $grade) @php $gColor = match(strtoupper($grade)) { 'A' => 'bg-success text-white', 'B' => 'bg-primary text-white', 'C' => 'bg-info text-dark', 'D' => 'bg-warning text-dark', default => 'bg-secondary text-white', }; @endphp {{ $subCode }}: {{ $grade }} @endforeach
@else {{ $res->detailed_subjects }} @endif
{{-- WhatsApp Share URL --}} @php $waService = app(\App\Services\NectaService::class); $waUrl = $waService->buildWhatsAppShareUrl($res, $centerName); @endphp WhatsApp {{-- Link Button --}}
{{-- Pagination --}}
Showing candidates {{ $results->firstItem() ?? 0 }} to {{ $results->lastItem() ?? 0 }} of {{ $results->total() }}
{{ $results->links() }}
@else
No Results Found for {{ $examType }} {{ $examYear }}

Please click the "Import Results" button above to fetch directly from the NECTA web portal or paste HTML content.

@endif
{{-- TAB 2: Regional Comparison (School vs School League Table) --}}
REGIONAL SCHOOL PERFORMANCE COMPARISON - {{ strtoupper($selectedRegion) }}
Rankings and performance metrics of examination centres for {{ $examType }} {{ $examYear }}
@if($regionalSchools->count() > 0)
@foreach($regionalSchools as $sch) @php $isOurCenter = strtoupper(trim($sch->center_number)) === strtoupper(trim($centerNumber)); @endphp @endforeach
RANK CENTRE NO SCHOOL NAME CANDIDATES GPA PASS RATE DIV I DIV II DIV III DIV IV DIV 0
@if($sch->regional_rank == 1) 1 @elseif($sch->regional_rank == 2) 2 @elseif($sch->regional_rank == 3) 3 @else {{ $sch->regional_rank ?? '—' }} @endif {{ $sch->center_number }} {{ $sch->school_name }} @if($isOurCenter) OUR SCHOOL @endif {{ $sch->candidates_count }} {{ number_format($sch->gpa, 4) }} {{ number_format($sch->pass_rate, 1) }}% {{ $sch->division_i }} {{ $sch->division_ii }} {{ $sch->division_iii }} {{ $sch->division_iv }} {{ $sch->division_0 }}
@csrf @method('DELETE')
@else
No Regional Comparison Data Available Yet

You can import the regional performance table by pasting data or adding individual schools manually.

@endif
{{-- TAB 3: Candidate to Student Mapping --}}
MAP NECTA CANDIDATE NUMBERS TO REGISTERED STUDENTS
Link candidate numbers to registered students to allow parents and staff to easily view their national examination records.
@csrf
@foreach($results as $cand) @endforeach
CANDIDATE NO NECTA NAME SELECT REGISTERED STUDENT STATUS
{{ $cand->candidate_no }} {{ $cand->student_name ?: '—' }} @if($cand->student_id) Mapped @else Unmapped @endif
{{-- MODAL 1: Import NECTA Center Results --}} {{-- MODAL 2: Import Regional Table --}} {{-- MODAL 3: Add Single Regional School --}} {{-- MODAL 4: Quick Single Candidate Mapping Modal (AJAX) --}} @push('scripts') @endpush @endsection