@extends('layout.mainlayout') @section('content')
@can('biometric-view-all')
@csrf
@endcan
📊 Daily Attendance Summary
@can('biometric-view-all') Admin View ⬇ Download Excel @else My Attendance ⬇ Download Excel @endcan
{{-- 🔍 FILTERS (ADMIN ONLY) --}} @if(Gate::allows('biometric-view-all') || Gate::allows('biometric-view-own'))
@can('biometric-view-all') {{-- ✅ LOCATION FILTER --}} @endcan
@endif {{-- 📋 TABLE --}}
@forelse($attendance as $row) @empty @endforelse
Employee Date First IN Last OUT Working Hours Location Status
{{ $row['employee_code'] }}
{{ $row['employee_name'] }}
{{ \Carbon\Carbon::parse($row['date'])->format('d M Y') }} {{ optional($row['first_in'])->format('h:i A') ?? '—' }} {{ optional($row['last_out'])->format('h:i A') ?? '—' }} {{ gmdate('H:i', $row['minutes']*60) }} {{ $row['location_name'] ?? '—' }} @if($row['missing']) Missing OUT @elseif(!empty($row['less_working'])) Less Working Hour @if(!empty($row['required_minutes'])) ({{ gmdate('H:i', $row['required_minutes'] * 60) }}) @endif @else Complete @endif @if(!empty($row['late_in'])) Late In @endif @if(!empty($row['late_policy_enabled']) && !empty($row['auto_attendance_blocked'])) Auto attendance off (late limit) @endif @if(!empty($row['late_policy_enabled']) && empty($row['auto_attendance_blocked']) && !empty($row['late_limit_reached'])) Late {{ $row['late_limit'] }} crossed, auto attendance stops only if late again @endif @if(!empty($row['overtime'])) Overtime @endif
No attendance data
{{ $attendance->links('pagination::bootstrap-5') }}
@endsection