{{ strtoupper($school['name']) }}
{{ $school['address'] }}
KARTU PELANGGARAN SISWA
Identitas Siswa
Nama Lengkap : {{ strtoupper($student->full_name) }} NIS : {{ $student->student_number ?? '-' }}
NISN : {{ $student->nisn ?? '-' }} Kelas : {{ $student->class_name ?? '-' }}
Jurusan : {{ $student->department_name ?? $student->department_code ?? '-' }} Tahun Akademik : {{ $student->academic_year_name ?? '-' }}
Rekap Poin Pelanggaran
{{ $totalPoints }}
Total Poin
{{ $violations->count() }}x
Jumlah Pelanggaran
@if($currentSpLevel) {{ $currentSpLevel->name }}
Level SP
@else
Aman
Belum Ada SP
@endif
Riwayat Pelanggaran
@if($violations->isEmpty())
Siswa tidak memiliki catatan pelanggaran.
@else @php $tlMembolos = $violations->filter(fn ($v) => str_contains(strtolower($v->violationType?->name ?? ''), 'terlambat') || str_contains(strtolower($v->violationType?->name ?? ''), 'membolos'))->values(); $lainnya = $violations->filter(fn ($v) => ! str_contains(strtolower($v->violationType?->name ?? ''), 'terlambat') && ! str_contains(strtolower($v->violationType?->name ?? ''), 'membolos'))->values(); @endphp @if($tlMembolos->isNotEmpty()) @include('students._riwayat', ['title' => 'Terlambat & Membolos', 'items' => $tlMembolos]) @endif @if($lainnya->isNotEmpty()) @include('students._riwayat', ['title' => 'Pelanggaran Lainnya', 'items' => $lainnya]) @endif @endif @if($nextSpThreshold)
* Poin menuju SP berikutnya ({{ $nextSpThreshold->name }}) : {{ $nextSpThreshold->min_points - $totalPoints }} poin lagi.
@endif
Wonorejo, {{ \Carbon\Carbon::now()->locale('id')->translatedFormat('d F Y') }}
Mengetahui,
Ketua Tatib SMKN 1 Wonorejo


{{ strtoupper($ketuaTim?->name ?? ' ') }}
{{ $ketuaTim?->username ?? '' }}