{{ __('My Schedule') }} {{ __('View your monthly shift schedule and working hours') }}

{{ $monthStats['total_shifts'] }}

{{ __('Shifts This Month') }}

{{ $monthStats['total_hours'] }}{{ __('h') }}

{{ __('Scheduled Hours') }}

{{ $monthStats['coverage_percent'] }}{{ __('%') }}

{{ __('Month Coverage') }}

{{ $monthStats['days_in_month'] }}

{{ __('Days in Month') }}

@if($overtimeStats['tracked_minutes'] > 0 || $overtimeStats['pending_amount'] > 0 || $overtimeStats['paid_amount'] > 0)

{{ __('Overtime Summary') }}

{{ __('Max Weekly Hours') }}

{{ $overtimeStats['max_weekly_hours'] }}h

{{ __('Tracked Overtime') }}

{{ $overtimeStats['tracked_hours'] }}h

{{ __('Pending Payment') }}

${{ number_format($overtimeStats['pending_amount'], 2) }}

{{ __('Paid This Month') }}

${{ number_format($overtimeStats['paid_amount'], 2) }}

@endif @if(count($upcomingShifts) > 0)

{{ __('Upcoming Shifts (Next 7 Days)') }}

@foreach($upcomingShifts as $upcoming)
$upcoming['is_today'], 'border-zinc-200 bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-800' => !$upcoming['is_today'], ])>
$upcoming['is_today'], 'text-zinc-700 dark:text-zinc-300' => !$upcoming['is_today'], ])> {{ $upcoming['day_label'] }} {{ $upcoming['formatted_date'] }}
{{ $upcoming['start_time'] }} - {{ $upcoming['end_time'] }}
{{ $upcoming['shift_name'] }}
@endforeach
@endif @if(count($monthlyShiftsData) > 0)

{{ __('All Shifts This Month') }}

{{ count($monthlyShiftsData) }} {{ __('shifts') }}
@php $sortedShifts = collect($monthlyShiftsData)->sortBy('date')->values(); @endphp @foreach($sortedShifts as $shift) @php $shiftDate = \Carbon\Carbon::parse($shift['date']); $isToday = $shiftDate->isToday(); $isPast = $shiftDate->isPast() && !$isToday; @endphp
$isToday, 'bg-zinc-50/50 dark:bg-zinc-800/30' => $isPast, 'hover:bg-zinc-50 dark:hover:bg-zinc-800/50' => !$isToday && !$isPast, ])>
$isToday, 'bg-zinc-100 dark:bg-zinc-800' => !$isToday, ])> {{ $shiftDate->translatedFormat('d') }} $isToday, 'text-zinc-400 dark:text-zinc-500' => $isPast, 'text-zinc-500 dark:text-zinc-400' => !$isToday && !$isPast, ])>{{ $shiftDate->translatedFormat('D') }}
$isToday, 'text-zinc-400 dark:text-zinc-500' => $isPast, 'text-zinc-900 dark:text-white' => !$isToday && !$isPast, ])>{{ $shiftDate->translatedFormat('l, M d') }} @if($isToday) {{ __('Today') }} @endif

$isToday, 'text-zinc-400 dark:text-zinc-500' => $isPast, 'text-zinc-500 dark:text-zinc-400' => !$isToday && !$isPast, ])>{{ $shift['shift_name'] ?? __('Custom Shift') }}

$isToday, 'text-zinc-400 dark:text-zinc-500' => $isPast, 'text-zinc-900 dark:text-white' => !$isToday && !$isPast, ])> {{ $shift['start_time'] }} - {{ $shift['end_time'] }}
@php $start = \Carbon\Carbon::createFromFormat('H:i', $shift['start_time']); $end = \Carbon\Carbon::createFromFormat('H:i', $shift['end_time']); // Handle night shifts that cross midnight if ($end->lt($start)) { $end->addDay(); } $hours = round($start->diffInMinutes($end) / 60, 1); @endphp

{{ $hours }}h

@endforeach
@else

{{ __('No Shifts Scheduled') }}

{{ __('You have no shifts scheduled for this month.') }}
{{ __('Please contact your manager if you expect shifts to be assigned.') }}

@endif

{{ $monthName }}

{{ __('Today') }}
@if($shiftsByDay->isNotEmpty())

{{ __('Weekly Pattern (Default)') }}

{{ __('Your recurring weekly shift pattern') }}

@foreach($shiftsByDay as $dayGroup)
{{ $dayGroup['name'] }}
@foreach($dayGroup['shifts'] as $shift)
{{ \Carbon\Carbon::parse($shift->start_time)->format('H:i') }} - {{ \Carbon\Carbon::parse($shift->end_time)->format('H:i') }}
@endforeach
@endforeach
@endif