{{-- Header --}}
My Attendance
@foreach(['January','February','March','April','May','June','July','August','September','October','November','December'] as $i => $m)
{{ $m }}
@endforeach
@for($y = now()->year; $y >= now()->year - 3; $y--)
{{ $y }}
@endfor
{{-- Shift Info Card --}} @if($shiftType)
âī¸
Your Assigned Shift
{{ $shiftType->name }}
đ
Check In
{{ \Carbon\Carbon::parse($shiftType->start_time)->format('h:i A') }}
đ
Check Out
{{ \Carbon\Carbon::parse($shiftType->end_time)->format('h:i A') }}
đŊī¸
Lunch Break
@if($shiftType->lunch_start_time && $shiftType->lunch_end_time) {{ \Carbon\Carbon::parse($shiftType->lunch_start_time)->format('h:i') }} - {{ \Carbon\Carbon::parse($shiftType->lunch_end_time)->format('h:i') }} @else 01:00 - 02:00 @endif
âąī¸
Working Hours
{{ $shiftType->working_hours ?? 8 }} hrs
@php $daysOff = $shiftType->days_off ?? ['saturday', 'sunday']; if (is_string($daysOff)) $daysOff = json_decode($daysOff, true) ?? ['saturday', 'sunday']; @endphp
@else
â ī¸
Shift Status
No Shift Assigned
@endif {{-- Attendance Ring + Stats --}} @php $totalWorkingDays = $stats['working_days'] > 0 ? $stats['working_days'] : 1; $attendancePercent = $stats['present'] > 0 ? round(($stats['present'] / $totalWorkingDays) * 100) : 0; $circumference = 2 * 3.14159 * 42; $offset = $circumference - ($attendancePercent / 100) * $circumference; @endphp
{{ $attendancePercent }}%
Rate
Attendance Rate for {{ \Carbon\Carbon::create($year, $month, 1)->format('F Y') }}
{{ $stats['present'] }} present out of {{ $stats['working_days'] }} working days
{{-- Stats Grid --}}
â
{{ $stats['present'] }}
Present
â
{{ $stats['absent'] }}
Absent
â°
{{ $stats['late'] }}
Late
đ
{{ $stats['leave'] }}
On Leave
đ
{{ $stats['holiday'] }}
Holidays
âąī¸
{{ number_format($stats['total_hours'], 1) }}
Total Hours
đ
{{ number_format($stats['overtime_hours'], 1) }}
Overtime
{{-- Calendar --}}
{{ \Carbon\Carbon::create($year, $month, 1)->format('F Y') }}
{{ $stats['working_days'] }} working days
Mon
Tue
Wed
Thu
Fri
Sat
Sun
@for($i = 1; $i < $firstDayOfWeek; $i++)
@endfor @foreach($calendarData as $day => $data) @php $statusClass = $data['status']; $statusLabel = match($data['status']) { 'present' => 'â Present', 'late' => 'â° Late', 'early_leave' => '⊠Early', 'half_day' => 'ÂŊ Half', 'absent' => 'â Absent', 'leave' => 'đ ' . ($data['leave']?->leaveType?->name ?? 'Leave'), 'holiday' => 'đ Holiday', 'weekend' => 'đ Off', 'no_shift' => 'â No Shift', default => '' }; $extraInfo = ''; if ($data['holiday']) $extraInfo = $data['holiday']->name ?? ''; elseif ($data['leave']) $extraInfo = $data['leave']->leaveType?->name ?? ''; @endphp
{{ $day }}
@if($data['isToday'])
Today
@endif
@if($data['status'] != 'none' && !$data['isFuture'])
{{ $statusLabel }}
@if($data['hours'] > 0)
{{ number_format($data['hours'], 1) }}h @if(($data['attendance']?->overtime_hours ?? 0) > 0)
+{{ number_format($data['attendance']->overtime_hours, 1) }}
@endif
@endif @if($extraInfo)
{{ $extraInfo }}
@endif @endif
@endforeach
Present
Late
Absent
On Leave
Holiday
Weekend
No Shift
{{-- Day Detail Panel --}}
đ
January 1, 2026
â
Present
Check In
-
â
Check Out
-
âąī¸
-
Hours Worked
đ
-
Overtime
â°
-
Late By