@php($displayTimezone=$punchState['timezone']??\App\Domain\Operations\Operations::timezone()) @php($displayShift=$punchState['shift']??null)

MY WORKDAY · {{ $today }}

Hello, {{ $employee->first_name }}

{{ $displayShift['name']??'No shift assigned' }} · {{ \App\Domain\Operations\AttendancePresentation::shiftTime($displayShift['starts_at']??null) }} – {{ \App\Domain\Operations\AttendancePresentation::shiftTime($displayShift['ends_at']??null) }}

{{ $punchState['state']??'Not checked in' }}
{{ \App\Domain\Operations\AttendanceRegister::hours((int)($todayMetrics['net_minutes']??0)) }}Net working time@include('attendance.clock', ['clockTimezone'=>$displayTimezone])

Punch your attendance

@if($punchState['actions']??[])
@csrf @if($gpsAutoCapture)@endif @if(isset($punchState['actions']['break_out']))@endif
@foreach($punchState['actions'] as $action=>$label)@endforeach

{{ $gpsAutoCapture?'Location is requested only when you punch. Allow access if your browser asks.':'Ready to record attendance.' }}

@else

{{ $punchState['state']??'Attendance unavailable' }}. {{ $punchState['state']==='No shift assigned'?'Ask HR to assign your shift.':'' }}

@endif @if($punchState['lastLocation']??null)

{{ $punchState['lastLocation']['name'] }} · {{ $punchState['lastLocation']['time'] }} · Approximate location @if($punchState['lastLocation']['attribution']??null){{ $punchState['lastLocation']['attribution'] }}@endif @if($punchState['lastLocation']['source']==='geonames_offline')GeoNames · CC BY 4.0@endif

@endif @php($visibleFlags=\App\Domain\Operations\AttendancePresentation::flags($todayMetrics['flags']??[])) @if($visibleFlags)

{{ implode(' · ',$visibleFlags) }}

@endif

My attendance history

Request a correction
@forelse($ownEntries as $entry)@empty@endforelse
DateCheck in / outNet hoursStatusAction
{{ $entry->work_date->toDateString() }}{{ \App\Domain\Operations\AttendancePresentation::time($entry->clock_in,$entry->metrics['timezone']??$displayTimezone) }} / {{ \App\Domain\Operations\AttendancePresentation::time($entry->clock_out,$entry->metrics['timezone']??$displayTimezone) }}{{ \App\Domain\Operations\AttendanceRegister::hours($entry->worked_minutes) }}{{ \App\Domain\Operations\AttendanceRegister::CODES[$entry->attendance_code]??ucfirst($entry->status) }}Details
No attendance in this period.
{{ $ownEntries->links() }}

My shift schedule

@foreach($ownRosters as $roster)@php($schedule=app(\App\Domain\Operations\AttendancePolicy::class)->shift($roster->shift,$roster->work_date->toDateString()))@endforeach
WorkdayShiftHours
{{ $roster->work_date->toDateString() }}{{ $roster->shift->name }}{{ \App\Domain\Operations\AttendancePresentation::shiftTime($schedule['starts_at']) }} – {{ \App\Domain\Operations\AttendancePresentation::shiftTime($schedule['ends_at']) }}
{{ $ownRosters->links() }}

Request a shift swap

@csrf

Your partner must be in the same branch and department. Independent approval is required before rosters change.

@foreach(['recorded_days'=>'Recorded days','minutes'=>'Net hours','overtime'=>'Recorded overtime','pending'=>'Pending requests'] as $key=>$label)
{{ $label }}{{ in_array($key,['minutes','overtime'])?\App\Domain\Operations\AttendanceRegister::hours((int)$ownSummary[$key]):$ownSummary[$key] }}{{ $key==='pending'?'Open requests':$filters['from'].' – '.$filters['to'] }}
@endforeach
@if($todayMetrics)

Today's work details

{{ $todayMetrics['active_break']?'Break active':($todayMetrics['open_session']?'Checked in':'No active session') }}
@foreach(['clock_in'=>'Check in','clock_out'=>'Check out','geofence_status'=>'Location status'] as $key=>$label)
{{ $label }}
{{ $key==='geofence_status'?\App\Domain\Operations\AttendancePresentation::location($todayMetrics[$key]??null):\App\Domain\Operations\AttendancePresentation::time($todayMetrics[$key]??null,$displayTimezone) }}
@endforeach
@foreach(['gross_minutes'=>'Gross minutes','break_minutes'=>'Break minutes','late_minutes'=>'Late minutes','early_minutes'=>'Early minutes'] as $key=>$label)
{{ $label }}
{{ $todayMetrics[$key]??0 }}
@endforeach
@endif

My requests

All requests
@forelse($ownRequests as $item)@empty@endforelse
ReferenceDateTypeStatus
#{{ $item->id }}{{ $item->effective_on->toDateString() }}{{ str_replace('_',' ',$item->data['type']??$item->kind) }}{{ str_replace('_',' ',$item->status) }}
No attendance requests submitted.
{{ $ownRequests->links() }}