@extends('layouts.app') @section('title', 'Riwayat Presensi') @section('content') @php $totalPertemuan = $totalPertemuan ?? 0; $totalHadir = $totalHadir ?? 0; $totalIzinSakit = $totalIzinSakit ?? 0; $totalAlpha = $totalAlpha ?? 0; $persenKehadiran = $totalPertemuan > 0 ? round(($totalHadir / $totalPertemuan) * 100) : 0; @endphp
DATA AKADEMIK

Riwayat Presensi

Pantau dan saring histori kehadiran Anda secara terperinci.

{{-- FILTER --}}
FILTER PENCARIAN
@if(($filterMatkulId ?? '') || ($filterStatus ?? '')) RESET @endif
{{-- STATISTIK DENGAN CHART --}}
Statistik Hasil Filter
@if($totalPertemuan > 0)
{{ $totalPertemuan }}
Data Ditemukan
Hadir
{{ $totalHadir }}
Izin/Sakit
{{ $totalIzinSakit }}
Alpha
{{ $totalAlpha }}
Rasio Kehadiran (Hanya Hadir Murni)
{{ $persenKehadiran }}%
@else

KOSONG

Tidak ada data riwayat yang sesuai dengan filter Anda.

@endif
{{-- TABEL DETAIL --}}
Detail Presensi
Mengurutkan data dari yang paling terbaru
@forelse($pertemuans as $i => $p) @php $status = $p->status_absensi ?? 'alpha'; $bg = ['hadir' => '#f0fdfa', 'izin' => '#eff6ff', 'sakit' => '#fefce8', 'alpha' => '#fef2f2'][$status] ?? '#f8fafc'; $clr = ['hadir' => '#0d9488', 'izin' => '#3b82f6', 'sakit' => '#ca8a04', 'alpha' => '#ef4444'][$status] ?? '#64748b'; $statusText = ['hadir' => 'โœ… Hadir', 'izin' => '๐Ÿ“ Izin', 'sakit' => '๐Ÿค’ Sakit', 'alpha' => 'โŒ Alpha'][$status] ?? ucfirst($status); $waktuAbsen = $p->absensis->first() ? $p->absensis->first()->waktu_absen : null; @endphp @empty @endforelse
No Mata Kuliah & Info Pertemuan Hari & Jam Sesi Tanggal Waktu Scan Status
{{ $pertemuans->firstItem() + $i }}
{{ $p->jadwal->mataKuliah->nama ?? '-' }}
{{ $p->jadwal->mataKuliah->kode ?? '-' }}
#{{ $p->pertemuan_ke }}
{{ strtoupper($p->jadwal->hari ?? '-') }}
{{ substr($p->jam_mulai, 0, 5) }} - {{ substr($p->jam_selesai, 0, 5) }} WIB
{{ \Carbon\Carbon::parse($p->tanggal)->format('d/m/Y') }} @if($waktuAbsen) {{ $waktuAbsen->format('d/m/Y H:i:s') }} @else - @endif {{ $statusText }}
Tidak ada data pertemuan yang ditemukan.
{{-- PAGINATION RAPI --}} @if($pertemuans->hasPages())
Menampilkan {{ $pertemuans->firstItem() }} sampai {{ $pertemuans->lastItem() }} dari {{ $pertemuans->total() }} hasil
    @if ($pertemuans->onFirstPage())
  • ยซ Sebelumnya
  • @else
  • @endif @foreach ($pertemuans->getUrlRange(1, $pertemuans->lastPage()) as $page => $url) @if ($page == $pertemuans->currentPage())
  • {{ $page }}
  • @else
  • {{ $page }}
  • @endif @endforeach @if ($pertemuans->hasMorePages())
  • @else
  • Selanjutnya ยป
  • @endif
@endif
@if($totalPertemuan > 0) @endif @endsection