@extends('layouts.admin') @section('title', 'Pusat Rekap & Laporan — SMKN 1 BOYOLANGU') @section('header_title', 'Pusat Laporan & Rekapitulasi') @section('header_subtitle', 'Pusat rekap data historis absensi, jurnal mengajar, dispensasi, & kehadiran guru') @section('styles') @endsection @section('content') {{-- Tab Navigation --}}
Absensi Siswa Jurnal Mengajar Dispensasi Siswa Kehadiran & Izin Guru Ringkasan Semester
{{-- Filter & Action Bar --}}
@if(in_array($activeTab, ['absensi_siswa', 'jurnal_mengajar', 'dispensasi_siswa']))
@endif @if(in_array($activeTab, ['jurnal_mengajar', 'izin_guru']))
@endif
{{-- ═══════════════════════════════════════ TAB CONTENT ═══════════════════════════════════════ --}} @if($activeTab === 'absensi_siswa') {{-- KPI Summary Cards --}}
{{ $absensiSiswaData->count() }}
Total Siswa Direkap
Periode ini
{{ $absensiSiswaData->where('persentase', '>=', 90)->count() }}
Kehadiran Baik ≥90%
Persentase tinggi
{{ $absensiSiswaData->where('persentase', '<', 90)->where('persentase', '>=', 75)->count() }}
Perlu Perhatian 75–89%
Perlu monitoring
{{ $absensiSiswaData->where('persentase', '<', 75)->count() }}
Kritis <75%
Perlu tindak lanjut
Rekapitulasi Kehadiran Siswa
{{ $absensiSiswaData->count() }} Siswa Direkap
@forelse($absensiSiswaData as $row) @php $pctClass = $row['persentase'] >= 90 ? 'pct-high' : ($row['persentase'] >= 75 ? 'pct-mid' : 'pct-low'); @endphp @empty @endforelse
NIS Nama Siswa Kelas Hadir Sakit Izin Alpa Dispen Total % Kehadiran
{{ $row['nis'] }} {{ $row['nama_lengkap'] }} {{ $row['nama_kelas'] }} {{ $row['hadir'] }} {{ $row['sakit'] }} {{ $row['izin'] }} {{ $row['alpa'] }} {{ $row['dispen'] }} {{ $row['total_sesi'] }} {{ $row['persentase'] }}%

Tidak ada data rekapitulasi absensi siswa pada periode ini.

@elseif($activeTab === 'jurnal_mengajar') {{-- KPI Summary Cards --}}
{{ $jurnalData->count() }}
Total Sesi Jurnal
Periode ini
{{ $jurnalData->unique('id_guru')->count() }}
Guru Mengajar
Aktif di periode ini
{{ $jurnalData->unique('id_kelas')->count() }}
Kelas Tercakup
Rombel aktif
{{ $jurnalData->unique('id_mapel')->count() }}
Mata Pelajaran
Mapel direkap
Rekapitulasi Jurnal Mengajar
{{ $jurnalData->count() }} Sesi Tercatat
@forelse($jurnalData as $j) @empty @endforelse
Tanggal Jam Kelas Guru Pengajar Mata Pelajaran Materi Diajarkan Hadir Status
{{ $j->tanggal->format('d/m/Y') }} {{ $j->jam_ke }} {{ $j->kelas->nama_kelas ?? '-' }} {{ $j->guru->nama_lengkap ?? '-' }} {{ $j->mapel->nama_mapel ?? '-' }} {{ Str::limit($j->materi, 60) }} {{ $j->jumlah_siswa_hadir }} {{ $j->status_guru }}

Tidak ada data jurnal mengajar pada periode ini.

@elseif($activeTab === 'dispensasi_siswa') {{-- KPI Summary Cards --}}
{{ $dispensasiData->count() }}
Total Dispensasi
Periode ini
{{ $dispensasiData->whereIn('status', ['Disetujui_KS', 'Disetujui_Waka'])->count() }}
Disetujui
Sudah terverifikasi
{{ $dispensasiData->where('status', 'Menunggu')->count() }}
Menunggu
Belum disetujui
{{ $dispensasiData->unique('id_siswa')->count() }}
Siswa Berbeda
Yang mengajukan dispen
Riwayat Dispensasi Siswa
{{ $dispensasiData->count() }} Data Dispen
@forelse($dispensasiData as $d) @empty @endforelse
Tanggal Siswa Kelas Jam Keluar – Kembali Alasan Diinput Oleh Status
{{ \Carbon\Carbon::parse($d->tanggal)->format('d/m/Y') }} {{ $d->siswa->nama_lengkap ?? '-' }} {{ $d->siswa->kelas->nama_kelas ?? '-' }} {{ substr($d->jam_keluar, 0, 5) }} – {{ $d->jam_kembali ? substr($d->jam_kembali, 0, 5) : 'Belum Kembali' }} {{ $d->alasan }} {{ $d->diinputOlehUser->name ?? 'Guru Piket' }} @php $st = $d->status; @endphp @if(str_contains($st, 'Disetujui')) {{ str_replace('_', ' ', $st) }} @elseif($st === 'Menunggu') Menunggu @else {{ $st }} @endif

Belum ada riwayat dispensasi siswa pada periode ini.

@elseif($activeTab === 'izin_guru') {{-- KPI Summary Cards --}}
{{ $izinGuruData->count() }}
Total Pengajuan Izin
Periode ini
{{ $izinGuruData->where('status', 'Disetujui')->count() }}
Disetujui
Sudah diverifikasi
{{ $izinGuruData->where('status', 'Menunggu')->count() }}
Menunggu Persetujuan
Perlu ditindaklanjuti
{{ $izinGuruData->unique('id_guru')->count() }}
Guru Berbeda
Yang mengajukan izin
Rekapitulasi Kehadiran & Izin Guru
{{ $izinGuruData->count() }} Data Izin
@forelse($izinGuruData as $ig) @empty @endforelse
Guru Tanggal Mulai – Selesai Jenis Izin Alasan Disetujui Oleh Status
{{ $ig->guru->nama_lengkap ?? '-' }} {{ \Carbon\Carbon::parse($ig->tanggal_mulai)->format('d/m/Y') }} – {{ \Carbon\Carbon::parse($ig->tanggal_selesai)->format('d/m/Y') }} {{ $ig->jenis_izin }} {{ $ig->alasan }} {{ $ig->disetujuiOlehUser->name ?? 'Kepsek / Waka' }} @if($ig->status === 'Disetujui') Disetujui @elseif($ig->status === 'Menunggu') Menunggu @else {{ $ig->status }} @endif

Tidak ada rekapitulasi izin guru pada periode ini.

@elseif($activeTab === 'ringkasan_semester')
Ringkasan Semester & Arsip Resmi Sekolah
Periode {{ \Carbon\Carbon::parse($startDate)->format('d/m/Y') }} – {{ \Carbon\Carbon::parse($endDate)->format('d/m/Y') }}

Gabungan data eksekutif untuk keperluan rapat dinas, evaluasi kurikulum, dan arsip semesteran SMKN 1 Boyolangu.

{{ $ringkasanSemester['total_siswa'] ?? 0 }}
Total Siswa Aktif
{{ $ringkasanSemester['total_guru'] ?? 0 }}
Total Guru Pengajar
{{ $ringkasanSemester['pct_kehadiran'] ?? 100 }}%
Tingkat Kehadiran Siswa
{{ $ringkasanSemester['total_jurnal'] ?? 0 }}
Sesi Jurnal Mengajar
@endif @endsection