{{-- HEADER (No Print) --}}

Pusat Laporan

Manajemen Cetak Leger, Rapor, dan Surat Peringatan Siswa

{{-- TAB NAVIGATION --}}
{{-- CONTROL PANEL (FILTER) --}}
{{-- PILIH KELAS --}}
{{-- FILTER DINAMIS --}}
@if($activeTab == 'akademik')
@endif @if($activeTab == 'kedisiplinan')
-
@endif
{{-- TOMBOL DOWNLOAD --}}
{{-- DROPDOWN CHECKBOX MAPEL --}} @if($activeTab == 'akademik' && $showMapelFilter)

Pilih Mata Pelajaran:

@foreach($allMapels as $m) @endforeach
@endif
{{-- ================================================= --}} {{-- TABEL AKADEMIK --}} {{-- ================================================= --}} @if($activeTab == 'akademik')
@foreach($mapels as $m) @endforeach @forelse($legerData as $index => $row) @foreach($mapels as $m) @php $val = $row['nilai_per_mapel'][$m->id] ?? 0; @endphp @endforeach @empty @endforelse
Rank Nama Siswa
{{ $m->nama_mapel }}
KKM: {{ $m->kkm }}
Rata2 Opsi
@if($index < 3)
{{ $index + 1 }}
@else {{ $index + 1 }} @endif
{{ $row['siswa']->nama }} @if($val > 0) {{ $val }} @else - @endif {{ number_format($row['rata_rata_total'], 1) }}
Belum ada data nilai di kelas ini.
@endif {{-- ================================================= --}} {{-- TABEL KEDISIPLINAN (UPDATE STATUS DARI DB) --}} {{-- ================================================= --}} @if($activeTab == 'kedisiplinan')
@forelse($dataLaporan as $row) {{-- LOGIC HITUNG ULANG DI VIEW AGAR TAMPIL AKUMULASI --}} @php // 1. Hitung Total Akumulasi dari List Pelanggaran (Bukan dari total_poin aktif) // collect() mengubah array jadi collection agar bisa di-sum dengan mudah $poinAkumulasi = collect($row['list_pelanggaran'])->sum('poin'); // 2. Logic Status Sanksi (Bersihkan kata 'Direset') $statusRaw = $row['status_sanksi'] ?? '-'; $statusTampil = str_replace('Direset ', '', $statusRaw); // Hapus kata Direset // Cek apakah statusnya adalah status reset/selesai $isReset = Str::contains($statusRaw, 'Direset'); @endphp {{-- Nama Siswa --}} {{-- Pelanggaran (List) --}} {{-- Akumulasi Poin (YANG DIUBAH) --}} {{-- Status Sanksi (YANG DIUBAH) --}} {{-- Opsi --}} @empty @endforelse
Siswa PELANGGARAN Akumulasi Poin Status Sanksi Opsi
{{ substr($row['nama'], 0, 1) }}
{{ $row['nama'] }}
@if($row['jumlah_kasus'] == 0) Nihil @elseif($row['jumlah_kasus'] == 1) @php $p = $row['list_pelanggaran'][0]; @endphp
{{ $p['tanggal'] }} {{ $p['jenis'] }}
@else
@endif
@if($poinAkumulasi > 0) {{-- Tampilkan Poin Akumulasi (Sejarah), bukan Poin Aktif --}} {{ $poinAkumulasi }} {{-- Opsional: Info kecil jika poin aktif sebenarnya 0 (sudah reset) --}} @if($row['total_poin'] == 0 && $poinAkumulasi > 0)
(Sudah Direset)
@endif @else 0 @endif
@if(!empty($row['status_sanksi'])) @php $style = 'bg-slate-100 text-slate-600 border-slate-300'; // Cek Warna if ($isReset) { $style = 'bg-emerald-100 text-emerald-700 border-emerald-200'; // Hijau jika reset } elseif (Str::contains($statusRaw, ['SP', 'Peringatan', 'Skorsing', 'Tindakan', 'Orang Tua'])) { $style = 'bg-rose-100 text-rose-700 border-rose-200'; } elseif (Str::contains($statusRaw, ['Piket', 'Pembinaan', 'Bersih'])) { $style = 'bg-orange-100 text-orange-700 border-orange-200'; } elseif (Str::contains($statusRaw, ['Teguran', 'Lisan', 'Nasihat'])) { $style = 'bg-blue-100 text-blue-700 border-blue-200'; } @endphp {{ $statusTampil }} @if($isReset) @endif @else @if($poinAkumulasi > 0) Belum Ditindak @else Aman @endif @endif @if($poinAkumulasi > 0) @else - @endif
Tidak ada pelanggaran di periode ini.
@endif {{-- MODAL PREVIEW (UPDATE LOGIKA SANKSI DATABASE) --}} @if($showModal && $selectedSiswa)
{{-- Modal Header --}}

Pratinjau Dokumen

{{ $modalType == 'rapor' ? 'Rapor Akademik Siswa' : 'Surat Peringatan & Laporan' }}

{{-- Kertas Dokumen (A4 Style) --}}
@if($modalType == 'rapor')

LAPORAN HASIL BELAJAR

Tahun Ajaran {{ date('Y') }}/{{ date('Y')+1 }}

Nama Siswa: {{ $selectedSiswa->nama }}Kelas: {{ $selectedSiswa->kelas->nama_kelas }}
NIS: {{ $selectedSiswa->nis }}Semester: Ganjil
@foreach($dataModal as $index => $n) @endforeach
NoMata PelajaranKKMNilaiPredikatKeterangan
{{ $index+1 }}{{ $n->nama_mapel }}{{ $n->kkm }}{{ round($n->nilai_akhir) }}@if($n->nilai_akhir >= 90) A @elseif($n->nilai_akhir >= 80) B @elseif($n->nilai_akhir >= 70) C @else D @endif{{ $n->nilai_akhir >= $n->kkm ? 'Tuntas.' : 'Perlu Remedial.' }}
@endif @if($modalType == 'sp')

{{ Str::contains($selectedSiswa->status_sanksi ?? '', 'SP') ? 'SURAT PERINGATAN' : 'LAPORAN KEDISIPLINAN' }}

Nomor: {{ rand(100,999) }}/BK/{{ date('m') }}/{{ date('Y') }}

Kepada Yth,
Orang Tua / Wali Murid
di Tempat

Assalamu'alaikum Warahmatullahi Wabarakatuh,
Berdasarkan data kedisiplinan sekolah, kami sampaikan rekapitulasi pelanggaran siswa sebagai berikut:

Nama Siswa: {{ $selectedSiswa->nama }}
Kelas: {{ $selectedSiswa->kelas->nama_kelas }}
Total Poin: {{ $totalPoinSiswa }} Poin
Status Sanksi: @if($selectedSiswa->status_sanksi) {{ $selectedSiswa->status_sanksi }} @else {{-- Fallback jika belum ditindak tapi mau cetak laporan --}} @if($totalPoinSiswa > 0) BELUM DITENTUKAN @else AMAN @endif @endif

Rincian Pelanggaran:

@foreach($dataModal as $idx => $p) @endforeach
NoTanggalJenis PelanggaranPoin
{{ $idx+1 }}{{ date('d/m/Y', strtotime($p->tanggal)) }}{{ $p->masterPelanggaran->jenis_pelanggaran }}+{{ $p->masterPelanggaran->poin }}

@if(Str::contains($selectedSiswa->status_sanksi ?? '', ['Tindakan', 'SP', 'Panggilan'])) Mengingat poin pelanggaran telah mencapai tingkat yang memerlukan perhatian khusus, kami memohon kehadiran Bapak/Ibu di sekolah untuk pembahasan tindak lanjut bersama Kepala Sekolah dan Tim Kedisiplinan. @elseif($totalPoinSiswa > 0) Laporan ini disampaikan sebagai bahan evaluasi bersama untuk meningkatkan kedisiplinan siswa di masa mendatang. @else Alhamdulillah, siswa tidak memiliki catatan pelanggaran. @endif

@endif
@endif