{{-- resources/views/admin/kegiatan/riwayat/index.blade.php --}} @extends('layouts.app') @section('content') @php $mode = $mode ?? 'hari_ini'; $dari = $dari ?? now()->format('Y-m-d'); $sampai = $sampai ?? now()->format('Y-m-d'); $tanggal = $tanggal ?? now()->format('Y-m-d'); $kategoriId = $kategoriId ?? ''; $passParams = ['mode' => $mode, 'dari' => $dari, 'sampai' => $sampai, 'tanggal' => $tanggal]; $totalAbsensi = $summary['total_absensi'] ?? 0; $totalHadir = $summary['hadir'] ?? 0; $pctHadirGlbl = $totalAbsensi > 0 ? round($totalHadir / $totalAbsensi * 100, 1) : 0; @endphp {{-- PAGE HEADER --}}

Riwayat Kegiatan & Absensi

{{-- FILTER --}}
Hari Ini Minggu Ini Rentang Tanggal
@if($mode === 'hari_ini')
Reset
@elseif($mode === 'minggu_ini')
Reset
@else
Reset
@endif
{{-- PERIODE LABEL --}}
Menampilkan: {{ $periodeLabel }} @if($mode !== 'hari_ini' && ($summary['jumlah_hari'] ?? 0) > 0) · {{ $summary['jumlah_hari'] }} hari aktif · {{ $summary['jumlah_kegiatan'] }} sesi @endif
{{-- KPI STRIP --}} @if($totalAbsensi > 0)
{{ $summary['hadir'] }}
Hadir Efektif
@if($summary['terlambat'] > 0)
+{{ $summary['terlambat'] }} terlambat
@endif
{{ $summary['terlambat'] }}
Terlambat
{{ $summary['izin'] }}
Izin
{{ $summary['sakit'] }}
Sakit
{{ $summary['alpa'] }}
Alpa
{{ $pctHadirGlbl }}%
Rata-rata
dari {{ $totalAbsensi }} tercatat @if($mode !== 'hari_ini' && ($summary['jumlah_kegiatan']??0) > 0) · {{ $summary['jumlah_kegiatan'] }} sesi @endif
@endif {{-- ════════════════════════════════════════════════════ MODE HARI INI → Cards ════════════════════════════════════════════════════ --}} @if($mode === 'hari_ini') @if($kegiatans && $kegiatans->count() > 0) @foreach($kegiatans as $kegiatan) @include('admin.kegiatan.riwayat._card', ['kegiatan' => $kegiatan, 'passParams' => $passParams]) @endforeach
{!! $kegiatans->appends(request()->query())->links('pagination::simple-bootstrap-4') !!}
@else

Tidak Ada Kegiatan

Tidak ada kegiatan pada {{ $periodeLabel }}.

Coba tanggal lain atau lihat riwayat minggu ini.

@endif {{-- ════════════════════════════════════════════════════ MODE MULTI-HARI → Tabel per Tanggal ════════════════════════════════════════════════════ --}} @else @if($kegiatanPerTanggal && $kegiatanPerTanggal->count() > 0) @foreach($kegiatanPerTanggal as $tgl => $items) @php $tglCarbon = \Carbon\Carbon::parse($tgl); $isHariIni = ($tgl === now()->format('Y-m-d')); $hariLabel = $tglCarbon->locale('id')->isoFormat('dddd'); $tglLabel = $tglCarbon->locale('id')->isoFormat('D MMMM Y'); $tglHadir = $items->sum('hadir') + $items->sum('terlambat'); $tglTotal = $items->sum('total_absensi'); $tglPct = $tglTotal > 0 ? round($tglHadir / $tglTotal * 100) : 0; @endphp
{{ $tglLabel }} {{ $hariLabel }}{{ $isHariIni ? ' · Hari Ini' : '' }} {{ $items->count() }} kegiatan  ·  {{ $tglHadir }}/{{ $tglTotal }} hadir @if($tglTotal > 0) {{ $tglPct }}% @endif
@foreach($items as $idx => $kegiatan) @php $hadirEfektif = $kegiatan->hadir + $kegiatan->terlambat; $totalKeg = $kegiatan->total_absensi; $kelasNames = $kegiatan->kelasKegiatan->pluck('nama_kelas'); $isUmum = $kelasNames->isEmpty(); @endphp @endforeach @if($items->count() > 1) @endif
No Nama Kegiatan Waktu Kategori Kelas Hadir Tlbt Izin Skt Alpa Progress Aksi
{{ $idx + 1 }}
{{ $kegiatan->nama_kegiatan }}
{{ date('H:i', strtotime($kegiatan->waktu_mulai)) }}
s/d {{ date('H:i', strtotime($kegiatan->waktu_selesai)) }}
@if($kegiatan->kategori) {{ $kegiatan->kategori->nama_kategori }} @endif @if($isUmum) Umum @else @foreach($kelasNames->take(2) as $kn) {{ $kn }} @endforeach @if($kelasNames->count() > 2) +{{ $kelasNames->count()-2 }} @endif @endif {{ $hadirEfektif ?: '–' }} {{ $kegiatan->terlambat ?: '–' }} {{ $kegiatan->izin ?: '–' }} {{ $kegiatan->sakit ?: '–' }} {{ $kegiatan->alpa ?: '–' }} @if($totalKeg > 0) @php $segs = [ ['w'=>round($kegiatan->hadir/$totalKeg*100), 'c'=>'#22c55e'], ['w'=>round($kegiatan->terlambat/$totalKeg*100), 'c'=>'#FF9800'], ['w'=>round($kegiatan->izin/$totalKeg*100), 'c'=>'#f59e0b'], ['w'=>round($kegiatan->sakit/$totalKeg*100), 'c'=>'#3b82f6'], ['w'=>round($kegiatan->alpa/$totalKeg*100), 'c'=>'#ef4444'], ]; @endphp
@foreach($segs as $s) @if($s['w'] > 0)
@endif @endforeach
{{ $hadirEfektif }}/{{ $totalKeg }}
@else @endif
Santri
Total {{ $tglLabel }} {{ $tglHadir }} {{ $items->sum('terlambat') }} {{ $items->sum('izin') }} {{ $items->sum('sakit') }} {{ $items->sum('alpa') }} {{ $tglTotal }} tercatat  ·  {{ $tglPct }}% hadir
@endforeach @else

Tidak Ada Data Absensi

Tidak ada absensi yang tercatat pada periode {{ $periodeLabel }}.

@if($mode === 'custom')

Pastikan rentang tanggal sudah benar dan ada data absensi di periode tersebut.

@endif
@endif @endif @endsection