@push('styles') @endpush
{{-- ── PAGE HEADER ── --}}

Monitoring Absensi

Kelola & monitor kehadiran teknisi lapangan

{{-- ── STATISTICS CARDS ── --}}
TOTAL ABSENSI
{{ $counts['total'] ?? 0 }}
Semua teknisi terdaftar
HADIR
{{ $counts['hadir'] ?? 0 }}
Teknisi yang sudah masuk
IZIN / SAKIT
{{ $counts['izin'] ?? 0 }}
Izin berhalangan kerja
s/d
{{-- ── PANEL TABLE ── --}}
DAFTAR LIST ABSENSI
Menampilkan {{ $absensis->total() }} data absensi
@forelse($absensis as $index => $abs) @empty @endforelse
# Teknisi Tanggal Jam Masuk Jam Keluar Durasi Status Aksi
{{ str_pad($absensis->firstItem() + $index, 2, '0', STR_PAD_LEFT) }}
{{ strtoupper(substr($abs->teknisi->nama ?? 'T', 0, 1)) }}
{{ $abs->teknisi->nama ?? 'Unknown' }}
{{ $abs->teknisi->email ?? '—' }}
{{ \Carbon\Carbon::parse($abs->tanggal)->format('d/m/Y') }}
{{ \Carbon\Carbon::parse($abs->tanggal)->isoFormat('dddd') }}
@if($abs->jam_masuk)
{{ \Carbon\Carbon::parse($abs->jam_masuk)->format('H:i') }}
@php $kat = $abs->kategori_kerja; $badgeClass = $kat == 'Kerja Urgent' ? 'badge-urgent' : 'badge-normal'; $icon = $kat == 'Kerja Urgent' ? 'exclamation-triangle' : 'sun'; @endphp
{{ $kat }}
@else @endif
{{ $abs->jam_keluar ? \Carbon\Carbon::parse($abs->jam_keluar)->format('H:i') : '—' }} {{ $abs->durasi_kerja_formatted ?? '—' }} @php $s = strtolower($abs->status); $badgeClass = 'pug-badge-green'; $icon = 'check-circle'; if($s == 'izin' || $s == 'sakit') { $badgeClass = 'pug-badge-violet'; $icon = 'info-circle'; } @endphp {{ ucfirst($abs->status) }}
@if(!empty($abs->latitude) && !empty($abs->longitude) && $abs->latitude !== '0' && $abs->longitude !== '0') @endif
Data Absensi Tidak Ditemukan
Gunakan filter untuk mencari data di tanggal lain.
@if($absensis->hasPages())
{{ $absensis->appends(request()->query())->links() }}
@endif
DETAIL ABSENSI TEKNISI
EDIT DATA ABSENSI
@csrf @method('PUT')