{{-- AMBIL DATA PENGATURAN LEMBAGA --}} @php // Menggunakan cms_settings sebagai patokan utama $school = $sekolahInfo ?? \App\Models\CmsSetting::first(); @endphp {{-- KOP SURAT DINAMIS --}}
@if(!empty($school->kop_surat)) {!! $school->kop_surat !!} @else

[Kop Surat Belum Diatur di Pengaturan Format Surat]

@endif
REKAPITULASI ABSENSI GLOBAL
PERIODE: {{ \Carbon\Carbon::parse($startDate)->translatedFormat('d M Y') }} - {{ \Carbon\Carbon::parse($endDate)->translatedFormat('d M Y') }}
{{-- INFO FILTER --}}
Kelas / Unit : @if(request('kelas_id') && isset($data[0]) && $data[0]->siswa && $data[0]->siswa->kelas) {{ $data[0]->siswa->kelas->nama_kelas }} @elseif(request('kategori') == 'guru') Semua Guru @elseif(request('kategori') == 'staff') Semua Staff @else Semua Kelas / Gabungan @endif Dicetak Oleh : {{ auth()->user()->name ?? 'Administrator' }}
{{-- TABEL DATA UTAMA --}} @forelse ($data as $row) @php // 1. Logic Identitas if ($row->siswa) { $nama = $row->siswa->nama_lengkap ?? $row->siswa->nama ?? '-'; $subNama = 'NIS: ' . ($row->siswa->nisn ?? $row->siswa->nis ?? '-'); $kelasJabatan = $row->siswa->kelas->nama_kelas ?? '-'; } elseif ($row->user) { $nama = $row->user->name; $subNama = 'NIP: ' . ($row->user->guru->nip ?? $row->user->nip ?? '-'); $roleRaw = $row->user->role instanceof \App\Enums\UserRole ? $row->user->role->value : ($row->user->role ?? 'Staff'); $kelasJabatan = ucwords(str_replace('_', ' ', $roleRaw)); } else { $nama = 'Data Terhapus'; $subNama = '-'; $kelasJabatan = '-'; } // 2. Logic Waktu $masuk = $row->waktu_masuk ? \Carbon\Carbon::parse($row->waktu_masuk) : null; $pulang = $row->waktu_pulang ? \Carbon\Carbon::parse($row->waktu_pulang) : null; // 3. Logic Durasi (Tanpa Desimal) $durasiTeks = '-'; if ($masuk && $pulang) { $j = intval($masuk->diffInHours($pulang)); $m = intval($masuk->diffInMinutes($pulang) % 60); $durasiTeks = ($j > 0 ? $j.'J ' : '') . $m . 'M'; } elseif ($masuk && !$pulang && !in_array($row->status_kehadiran, ['Alpa', 'Sakit', 'Izin'])) { $durasiTeks = 'Aktif'; } // 4. Logic Warna Status $statusColor = ''; if ($row->status_kehadiran == 'Hadir') $statusColor = 'text-success'; elseif ($row->status_kehadiran == 'Terlambat') $statusColor = 'text-warning'; elseif (in_array($row->status_kehadiran, ['Izin', 'Sakit'])) $statusColor = 'text-info'; elseif ($row->status_kehadiran == 'Alpa') $statusColor = 'text-danger'; @endphp {{-- Waktu & Tanggal --}} {{-- Nama & Sub-identitas --}} {{-- Kelas / Jabatan --}} {{-- Jam Masuk --}} {{-- Jam Pulang --}} {{-- Durasi --}} {{-- Status --}} @empty @endforelse
No Waktu Nama Lengkap Kelas / Jabatan Masuk Pulang Durasi Status
{{ $loop->iteration }} @if($masuk) {{ $masuk->format('d/m/Y') }}
{{ $masuk->translatedFormat('l') }} @else - @endif
{{ $nama }}
{{ $subNama }}
{{ $kelasJabatan }} @if(in_array($row->status_kehadiran, ['Alpa', 'Sakit', 'Izin']) && !$masuk) - @else {{ $masuk ? $masuk->format('H:i') : '-' }} @endif {{ $pulang ? $pulang->format('H:i') : '-' }} @if($durasiTeks == 'Aktif') Di Sekolah @else {{ $durasiTeks }} @endif {{ strtoupper($row->status_kehadiran) }}
Data absensi tidak ditemukan untuk periode/filter yang dipilih.
{{-- FOOTER TANDA TANGAN (KOTA DINAMIS) --}}

{{-- Mengambil Kota Surat dari Pengaturan, jika kosong fallback ke Kota Biasa, lalu Makassar --}} {{ $school->kota_surat ?? $school->kota ?? 'Makassar' }}, {{ \Carbon\Carbon::now()->translatedFormat('d F Y') }}
Mengetahui,
@php $jabatanKepala = 'Kepala Sekolah'; if (isset($school) && isset($school->jenjang)) { if (!in_array(strtoupper(trim($school->jenjang)), ['SD', 'SMP', 'SMA', 'SMK', 'TK', 'PAUD', 'KB'])) { $jabatanKepala = 'Kepala Madrasah'; } } @endphp {{ $jabatanKepala }}

( {{ $school->kepala_sekolah ?? $school->kepsek ?? '......................................' }} )

NIP. {{ $school->nip_kepala_sekolah ?? $school->nip_kepsek ?? '...........................' }}