@php use Carbon\Carbon; $filterType = request('type', 'month_wise'); @endphp @extends('employee.layouts.app') @section('title', get_setting('site_name').' | '.__('Attendance Report')) @section('content')

{{ __('Monthly attendance') }}

{{ __('View your attendance report by month or date range.') }}

{{ __('Report filters') }}
@if($staff_details != null)
@if(get_setting('system_logo_white') != null) {{ get_setting('site_name') }} @endif
{{ get_setting('site_name') }}
{{ $staff_details->warehouse->address ?? '' }}
@if($type === 'month_wise')
{{ __('Attendance report') }} — {{ Carbon::create($year, $month, 1)->format('F Y') }}
@else
{{ __('Attendance report') }} — {{ $start_date }} {{ __('to') }} {{ $end_date }}
@endif
{{ __('Employee code') }}
0{{ $staff_details->user->id ?? '' }}
{{ __('Employee name') }}
{{ $staff_details->user->name ?? '—' }}
{{ __('Designation') }}
{{ $staff_details->designation->name ?? '—' }}
{{ __('Branch') }}
{{ $staff_details->warehouse->name ?? '—' }}
P {{ __('Present') }} D {{ __('Delay') }} E {{ __('Extra delay') }} A {{ __('Absent') }} L {{ __('Leave') }} ½ {{ __('Half leave') }} W {{ __('Weekend') }} H {{ __('Holiday') }}
@if(($year != null || $month != null) && $type === 'month_wise') @for($day = 1; $day <= Carbon::create($year, $month, 1)->daysInMonth; $day++) @php $currentDate = Carbon::create($year, $month, $day)->format('Y-m-d'); $displayStatus = null; $badgeClass = 'absent'; $inTime = null; $outTime = null; $remarks = null; foreach ($salesData as $sale) { if ($sale->date == $currentDate) { $displayStatus = $sale->status; $badgeClass = match ($sale->status) { 'P' => 'present', 'D' => 'delay', 'E' => 'extra', default => 'default', }; if ($sale->status != 'L') { $inTime = $sale->signIn ? date('h:i A', strtotime($sale->signIn)) : null; $outTime = $sale->signOut ? date('h:i A', strtotime($sale->signOut)) : null; } $remarks = $sale->remarks; break; } } if ($displayStatus === null) { foreach ($half_leaves ?? [] as $halfItem) { $halfDate = is_object($halfItem) ? $halfItem->date : $halfItem; if ($halfDate == $currentDate) { $displayStatus = __('Half Leave'); $badgeClass = 'half'; break; } } } if ($displayStatus === null) { foreach ($weekend_data as $weekend) { if (date('l', strtotime($currentDate)) == $weekend) { $displayStatus = __('W'); $badgeClass = 'weekend'; break; } } } if ($displayStatus === null) { foreach ($leave_data as $leave) { if ($leave == $currentDate) { $displayStatus = __('L'); $badgeClass = 'leave'; break; } } } if ($displayStatus === null) { $displayStatus = __('A'); $badgeClass = 'absent'; } @endphp @endfor @elseif($start_date && $end_date) @php $startDate = Carbon::parse($start_date); $endDate = Carbon::parse($end_date); @endphp @for ($date = $startDate->copy(); $date->lte($endDate); $date->addDay()) @php $dateStr = $date->format('Y-m-d'); $displayStatus = null; $badgeClass = 'absent'; $inTime = null; $outTime = null; $remarks = null; foreach ($salesData as $sale) { if ($dateStr == $sale->date) { $displayStatus = $sale->status; $badgeClass = match ($sale->status) { 'P' => 'present', 'D' => 'delay', 'E' => 'extra', default => 'default', }; $inTime = $sale->signIn ? date('h:i A', strtotime($sale->signIn)) : null; $outTime = $sale->signOut ? date('h:i A', strtotime($sale->signOut)) : null; $remarks = $sale->remarks; break; } } if ($displayStatus === null) { foreach ($half_leaves ?? [] as $halfItem) { if ($dateStr == $halfItem->date) { $displayStatus = $halfItem->status; $badgeClass = 'half'; break; } } } if ($displayStatus === null) { foreach ($weekend_data as $weekend) { if ($date->format('l') == $weekend) { $displayStatus = __('W'); $badgeClass = 'weekend'; break; } } } if ($displayStatus === null) { foreach ($holiday_data as $holiday) { if ($dateStr == $holiday) { $displayStatus = __('H'); $badgeClass = 'holiday'; break; } } } if ($displayStatus === null) { foreach ($leave_data as $leave) { if ($dateStr == $leave) { $displayStatus = __('L'); $badgeClass = 'leave'; break; } } } if ($displayStatus === null) { $displayStatus = __('A'); $badgeClass = 'absent'; } @endphp @endfor @endif
{{ __('Date') }} {{ __('Status') }} {{ __('In time') }} {{ __('Out time') }} {{ __('Remarks') }}
{{ $currentDate }} ({{ date('l', strtotime($currentDate)) }}) {{ $displayStatus }} {{ $inTime ?? '—' }} {{ $outTime ?? '—' }} {!! $remarks ?: '—' !!}
{{ $date->format('Y-m-d') }} ({{ $date->format('l') }}) {{ $displayStatus }} {{ $inTime ?? '—' }} {{ $outTime ?? '—' }} {!! $remarks ?: '—' !!}
@if($salesData != null)
@endif
@else
{{ __('Select a period and click Generate report to view your attendance.') }}
@endif
@endsection @section('script') @endsection