@if($appSettings->favicon_url) @endif

Roll number slip {{ $application->roll_number }}

Back
{{-- ── Header ────────────────────────────────────────────────── --}}

{{ $appSettings->app_name ?? config('app.name') }}

{{ $appSettings->app_tagline ?: 'Recruitment & Examination Portal' }}

Examination Admit Card · Roll Number Slip
Application #{{ $application->id }}
Issued
{{ now()->format('d M Y') }}
{{-- ── Post title ────────────────────────────────────────────── --}}

{{ $application->post?->title }}

Post Code: {{ $application->post?->code }} @if($application->post?->bps) · {{ $application->post->bps }} @endif @if($application->post?->total_seats) · {{ number_format($application->post->total_seats) }} seat(s) @endif

{{-- ── Candidate info + photo ───────────────────────────────── --}}
Candidate name {{ $application->candidateProfile?->full_name ?: $application->user?->name }}
Father's name {{ $application->candidateProfile?->father_name ?? '—' }}
CNIC {{ $application->candidateProfile?->cnic ?? '—' }}
Date of birth {{ $application->candidateProfile?->formatted_dob ?? '—' }}
Gender {{ $application->candidateProfile?->gender_label ?? '—' }}
Phone {{ $application->candidateProfile?->phone ?? '—' }}
Application date {{ $application->created_at->format('d M Y') }}
Approved on {{ optional($application->approved_at)->format('d M Y, h:i A') ?? '—' }}
@if($application->candidateProfile?->profile_image_url) Candidate photo @else Affix recent
passport-size
photograph
here
@endif
Candidate's photograph
{{-- QR code for proctor verification. Encodes a signed payload (roll number + app id + issue date + HMAC) so a future proctor app can confirm the slip is genuine offline. The SVG is server-rendered (no JS required) and prints crisply at any zoom. --}} @isset($qrSvg)
{!! $qrSvg !!}
Scan to verify · Proctor use
@endisset
{{-- ── Credentials block (prominent) ───────────────────────────── --}}
Roll number
{{ $application->roll_number }}
Exam password
{{ $application->exam_password ?? '—' }}
System-generated · Confidential Required to enter the examination
{{-- ── Quick exam facts (small infographic strip) ──────────────── --}} @php $secs = (int) config('exam.seconds_per_question', 60); $perQ = $secs >= 60 ? floor($secs/60) . ' min' . ($secs % 60 ? ' ' . ($secs%60) . 's' : '') : $secs . ' sec'; $reviewMin = floor((int) config('exam.review_duration_seconds', 600) / 60); @endphp
Total questions
{{ config('exam.questions_per_exam', 50) }} MCQs
Per question
{{ $perQ }}
Review window
{{ $reviewMin }} min
{{-- ── Instructions (admin-editable; falls back to defaults) ────── --}} @php // Render `**phrase**` markers in admin-supplied notes as . // We e() first so any HTML in the source is escaped, then promote // the marker pairs back into the only allowed tag. This keeps the // surface small enough that admins can't inject scripts via the // settings UI but still get the bold emphasis that the previous // hard-coded copy used. $renderSlipNote = function (string $text): string { return preg_replace('/\*\*(.+?)\*\*/s', '$1', e($text)); }; @endphp

Important — please read carefully

    @foreach($appSettings->roll_slip_notes_effective as $note)
  1. {!! $renderSlipNote($note) !!}
  2. @endforeach
{{-- ── Footer ─────────────────────────────────────────────────── --}}
Generated {{ now()->format('d M Y, h:i A') }} · This slip is system-generated and does not require a signature. Verified Admit Card