@extends('layouts.app') @section('title', 'Data Kehadiran') @section('page-title', 'Data Kehadiran Karyawan') @section('page-subtitle', 'Monitoring rekap absensi harian, keterlambatan, selfie, dan lokasi geofencing GPS.') @section('page-actions')
Export Data
@endsection @push('styles') @endpush @section('content') {{-- Stats Row --}}
Total Hadir

{{ $totalPresent }}

Karyawan Masuk
Terlambat

{{ $totalLate }}

Tercatat Keterlambatan
Izin / Sakit / Cuti

{{ $totalPermit }}

Disetujui HR
Tanpa Keterangan

{{ $totalAlpha }}

Alpha / Belum Absen
{{-- Filter Card --}}
@if(request()->hasAny(['date', 'start_date', 'department_id', 'employee_id', 'status'])) @endif
{{-- Attendance Table Card --}}
@forelse($attendances as $att) {{-- Modal Detail Selfie & GPS --}} {{-- Modal Edit Attendance --}} @empty @endforelse
Karyawan Tanggal Jam Masuk Jam Pulang Status Keterlambatan Lokasi & Radius Aksi
@if($att->photo_in) Foto Masuk @elseif($att->employee?->photo) Avatar @else {{ strtoupper(substr($att->employee?->name ?? 'K', 0, 2)) }} @endif
{{ $att->employee?->name ?? 'Karyawan Dihapus' }}
{{ $att->employee?->department?->name ?? '-' }} • {{ $att->employee?->nik }}
{{ \Carbon\Carbon::parse($att->attendance_date)->translatedFormat('d M Y') }}
{{ $att->shift?->name ?? 'Shift Reguler' }}
@if($att->check_in) {{ \Carbon\Carbon::parse($att->check_in)->format('H:i') }} @else - @endif @if($att->check_out) {{ \Carbon\Carbon::parse($att->check_out)->format('H:i') }} @else - @endif {{ $att->status_label }} @if($att->late_minutes > 0) +{{ $att->late_minutes }} Menit @else Tepat Waktu @endif @if($att->distance_in !== null) {{ round($att->distance_in) }} Meter @else - @endif
@csrf @method('DELETE')
Tidak ada data absensi yang ditemukan untuk filter yang dipilih.
@if($attendances->hasPages())
{{ $attendances->links('pagination::bootstrap-5') }}
@endif
{{-- Modal Input Manual --}} @endsection @push('scripts') @endpush