{{-- AMBIL DATA PENGATURAN CERDAS (SMART SETTINGS) --}} @php $school = $school ?? \App\Models\CmsSetting::first(); $lembagaId = $school->id ?? null; // Ambil setting khusus sekolah ini, jika tidak ada, ambil setting yayasan $schoolSetting = \App\Models\CmsSetting::where('lembaga_id', $lembagaId)->first(); if(!$schoolSetting) { $schoolSetting = \App\Models\CmsSetting::first(); } @endphp {{-- 1. KOP SURAT DINAMIS --}}
@if(!empty($schoolSetting->kop_surat)) {!! $schoolSetting->kop_surat !!} @else

[Kop Surat Belum Diatur di Pengaturan Format Surat]

@endif
LAPORAN REKAPITULASI KINERJA GURU
PERIODE: {{ strtoupper($periode) }}
@forelse($data as $row) @php // 1. IDENTIFIKASI VARIABEL DASAR $isAlpa = $row->status_sesi == 'alpa_mengajar'; $tglReferensi = $row->waktu_mulai ? \Carbon\Carbon::parse($row->waktu_mulai)->format('Y-m-d') : $row->created_at->format('Y-m-d'); // 2. PARSING WAKTU JADWAL $jadwalMulai = \Carbon\Carbon::parse($tglReferensi . ' ' . $row->jadwal->jam_mulai); $jadwalSelesai = \Carbon\Carbon::parse($tglReferensi . ' ' . $row->jadwal->jam_selesai); // 3. PARSING WAKTU AKTUAL JURNAL $aktualMulai = $isAlpa ? null : \Carbon\Carbon::parse($row->waktu_mulai); $aktualSelesai = ($isAlpa || !$row->waktu_selesai) ? null : \Carbon\Carbon::parse($row->waktu_selesai); // 4. ANALISIS KETERLAMBATAN (Dibulatkan tanpa desimal) $statusMasuk = ''; $telatMenit = 0; if (!$isAlpa && $aktualMulai) { $batasMasuk = $jadwalMulai->copy()->addMinutes(10); if ($aktualMulai->gt($batasMasuk)) { $telatMenit = intval(round($aktualMulai->diffInMinutes($jadwalMulai))); $statusMasuk = "Telat {$telatMenit} Mnt"; } else { $statusMasuk = "Tepat Waktu"; } } // 5. ANALISIS CEPAT PULANG (Dibulatkan tanpa desimal) $statusKeluar = ''; $cepatMenit = 0; if (!$isAlpa && $aktualSelesai) { if ($aktualSelesai->lt($jadwalSelesai)) { $cepatMenit = intval(round($jadwalSelesai->diffInMinutes($aktualSelesai))); $statusKeluar = "Cepat Plg {$cepatMenit} Mnt"; } else { $statusKeluar = "Tuntas Waktu"; } } elseif (!$isAlpa && !$aktualSelesai) { $statusKeluar = "Berjalan"; } // 6. KALKULASI DURASI $durasiTeks = '-'; if (!$isAlpa && $aktualMulai && $aktualSelesai) { $durasiJam = intval($aktualMulai->diffInHours($aktualSelesai)); $durasiMenit = intval($aktualMulai->diffInMinutes($aktualSelesai) % 60); $durasiTeks = ($durasiJam > 0 ? $durasiJam . 'J ' : '') . $durasiMenit . 'M'; } elseif (!$isAlpa && $aktualMulai && !$aktualSelesai) { $durasiTeks = 'Berjalan...'; } @endphp {{-- Tanggal --}} {{-- Guru & Kelas --}} {{-- Jadwal Rencana --}} {{-- Aktual Realisasi --}} {{-- Durasi --}} {{-- Status Kinerja --}} @empty @endforelse
No Tanggal Guru & Kelas Jadwal (Rencana) Aktual (Realisasi) Durasi Status Kinerja
{{ $loop->iteration }} {{ \Carbon\Carbon::parse($tglReferensi)->format('d/m/Y') }} {{ $row->user->name }}
{{ $row->jadwal->mataPelajaran->nama_mapel ?? '-' }}
Kelas: {{ $row->kelas->nama_kelas ?? '-' }}
{{ $jadwalMulai->format('H:i') }} - {{ $jadwalSelesai->format('H:i') }} @if($isAlpa) - @else {{ $aktualMulai->format('H:i') }}
s/d
@if($aktualSelesai) {{ $aktualSelesai->format('H:i') }} @else - @endif @endif
@if($isAlpa) Kosong @else {{ $durasiTeks }} @endif @if($isAlpa) ALPA (Tidak Mengajar) @else Masuk: {!! $statusMasuk !!}
Keluar: {!! $statusKeluar !!} @endif
Data tidak ditemukan pada periode tersebut.
{{-- KOTA SURAT & TANDA TANGAN DINAMIS --}}

{{ $schoolSetting->kota_surat ?? $school->kota ?? 'Tempat' }}, {{ now()->translatedFormat('d F Y') }}
Mengetahui,
Kepala Sekolah

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

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