@extends('layouts.app')
@section('title', 'Rekap Absensi Lengkap')
@section('content')
DATA ABSENSI
Rekap Absensi Lengkap
Filter berdasarkan mata kuliah, pertemuan, atau nama mahasiswa
Kembali ke Dashboard
{{-- STATISTIK CARD (5 CARD: Hadir, Izin, Sakit, Alpha, Rata-rata) --}}
{{ number_format($statistik['total_hadir']) }}
Hadir
{{ number_format($statistik['total_izin']) }}
Izin
{{ number_format($statistik['total_sakit'] ?? 0) }}
Sakit
{{ number_format($statistik['total_alpha']) }}
Alpha
{{ $statistik['rata_kehadiran'] }}%
Rata-rata Kehadiran
{{-- TABEL DATA --}}
| No |
Mata Kuliah |
Pertemuan |
Tanggal |
Jam |
NIM |
Nama Mahasiswa |
Status |
@forelse($absensis as $i => $item)
@php
// 🔥 Parse tanggal dengan aman
try {
$tanggalPertemuan = \Carbon\Carbon::parse($item->tanggal);
} catch (\Exception $e) {
$tanggalPertemuan = \Carbon\Carbon::now();
}
$isFuture = $tanggalPertemuan->isFuture();
// 🔥 Badge untuk status (4 jenis)
$badgeClasses = [
'hadir' => 'badge-hadir',
'izin' => 'badge-izin',
'sakit' => 'badge-sakit',
'alpha' => 'badge-alpha'
];
$badgeTexts = [
'hadir' => '✅ Hadir',
'izin' => '📝 Izin',
'sakit' => '🤒 Sakit',
'alpha' => '❌ Alpha'
];
$badgeClass = $badgeClasses[$item->status] ?? 'badge-alpha';
$badgeText = $badgeTexts[$item->status] ?? $item->status;
@endphp
| {{ $absensis->firstItem() + $i }} |
{{ $item->matkul_nama }}
{{ $item->matkul_kode }}
|
{{ $item->pertemuan_ke }}
|
{{ $tanggalPertemuan->format('Y-m-d') }} |
{{ substr($item->jam_mulai,0,5) }} - {{ substr($item->jam_selesai,0,5) }} |
{{ $item->nim }} |
{{ $item->nama_mahasiswa }} |
{{ $badgeText }}
|
@empty
| Tidak ada data absensi yang ditemukan. |
@endforelse
@if($absensis->hasPages())
@if($absensis->onFirstPage())
Sebelumnya
@else
Sebelumnya
@endif
@if($absensis->hasMorePages())
Selanjutnya
@else
Selanjutnya
@endif
{{ $absensis->firstItem() }} - {{ $absensis->lastItem() }} dari {{ $absensis->total() }} data
@endif
@endsection