startSection('content'); ?> startOfWeek(\Carbon\Carbon::MONDAY)->format('Y-m-d'); $defaultSampai = now()->endOfWeek(\Carbon\Carbon::SUNDAY)->format('Y-m-d'); $filterDari = request('tanggal_dari', $defaultDari); $filterSampai = request('tanggal_sampai', $defaultSampai); $filterBulan = request('bulan', ''); if ($filterBulan) { $periodeLabel = 'Bulan ' . \Carbon\Carbon::parse($filterBulan . '-01')->locale('id')->isoFormat('MMMM Y'); } else { $periodeLabel = \Carbon\Carbon::parse($filterDari)->locale('id')->isoFormat('D MMM Y') . ' – ' . \Carbon\Carbon::parse($filterSampai)->locale('id')->isoFormat('D MMM Y'); } // Hitung KPI dari data yang sudah difilter (semua halaman, bukan hanya halaman ini) // $stats sudah dihitung di controller berdasarkan filter — gunakan langsung // Tapi jika controller belum menghitung per filter, hitung dari koleksi paginator saat ini // Gunakan $stats dari controller jika ada, fallback ke hitung manual $statsHadir = $stats['Hadir'] ?? 0; $statsTerlambat = $stats['Terlambat'] ?? 0; $statsIzin = $stats['Izin'] ?? 0; $statsSakit = $stats['Sakit'] ?? 0; $statsAlpa = $stats['Alpa'] ?? 0; $statsPulang = $stats['Pulang'] ?? 0; ?>

nama_kegiatan); ?>

kategori->nama_kategori); ?> waktu_mulai))); ?> - waktu_selesai))); ?> hari); ?> kelasKegiatan->count() > 0): ?> kelasKegiatan->pluck('nama_kelas')->implode(', ')); ?> Umum

Total Semua Santri:

Sudah absen:  ·  Belum absen:

%
Kehadiran
0 ? round($totalRecorded / $totalSantriEligible * 100, 1) : 0; $pctBelumRiwayat = 100 - $pctSudah; ?>
0): ?>
0 && ($totalSantriEligible - $totalRecorded) > 0): ?>
Hadir
Terlambat
Izin
Sakit
Alpa
Pulang
hasAny(['id_santri', 'id_kelas', 'status', 'tanggal_spesifik'])): ?>
count() > 0): ?> getCollection()->groupBy(function($item) { return $item->tanggal->format('Y-m-d'); })->sortKeysDesc(); ?> addLoop($__currentLoopData); foreach($__currentLoopData as $tanggal => $records): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> locale('id')->isoFormat('dddd'); $tglFormatted = $tglCarbon->locale('id')->isoFormat('D MMMM Y'); $dayHadir = $records->where('status', 'Hadir')->count(); $dayTerlambat = $records->where('status', 'Terlambat')->count(); $dayIzin = $records->where('status', 'Izin')->count(); $daySakit = $records->where('status', 'Sakit')->count(); $dayAlpa = $records->where('status', 'Alpa')->count(); $dayPulang = $records->where('status', 'Pulang')->count(); $dayTotal = $records->count(); // Group per kelas kegiatan (khusus) atau kelas_name santri (umum) $isUmum = $kegiatan->kelasKegiatan->isEmpty(); if ($isUmum) { $recordsPerKelas = $records->groupBy(fn($r) => optional(optional($r->santri->kelasSantri->first())->kelas)->nama_kelas ?? 'Tanpa Kelas' )->sortKeys(); } else { $recordsPerKelas = collect(); $placedIds = []; foreach ($kegiatan->kelasKegiatan as $kls) { $inKelas = $records->filter(function($r) use ($kls, &$placedIds) { if (in_array($r->id, $placedIds)) return false; return $r->santri->kelasSantri->contains('id_kelas', $kls->id); }); foreach ($inKelas as $r) $placedIds[] = $r->id; if ($inKelas->count() > 0) $recordsPerKelas[$kls->nama_kelas] = $inKelas; } $lainnya = $records->filter(fn($r) => !in_array($r->id, $placedIds)); if ($lainnya->count() > 0) $recordsPerKelas['Kelas Lain'] = $lainnya; } ?>
, ( santri)
0): ?> 0): ?> 0): ?> 0): ?> 0): ?> 0): ?>
addLoop($__currentLoopData); foreach($__currentLoopData as $namaKelas => $kelasRecords): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
count()); ?> santri
values(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $index => $riwayat): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> popLoop(); $loop = $__env->getLastLoop(); ?>
No ID Santri Nama Santri Status Waktu Metode
id_santri); ?> santri->nama_lengkap); ?> status_badge; ?> waktu_absen ? \Carbon\Carbon::parse($riwayat->waktu_absen)->format('H:i') : '-'); ?> metode_absen == 'RFID'): ?> RFID metode_absen == 'Import_Mesin'): ?> Mesin Manual
popLoop(); $loop = $__env->getLastLoop(); ?>
popLoop(); $loop = $__env->getLastLoop(); ?>

Tidak Ada Riwayat

Tidak ada data absensi untuk periode .

stopSection(); ?> make('layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>