@php use Carbon\Carbon; use Illuminate\Support\Str; $monthName = Carbon::createFromDate($year, $month, 1)->format('F Y'); $isMonthly = $employee->employee_type === 'monthly'; $isDailyRoz = $employee->employee_type === 'daily_roz'; $leftDays = array_slice($days, 0, 16); $rightDays = array_slice($days, 16); @endphp
Back

Employee Attendance Sheet

Monthly attendance and advance statement
Month
{{ $monthName }}
Days
{{ count($days) }}
Generated
{{ now()->format('d M Y') }}
Employee Information

{{ $employee->name }}

Code: {{ $employee->employee_code ?: 'No Code' }}
Type: {{ $isDailyRoz ? 'Daily Roz Employee' : 'Monthly Employee' }}
@if(!empty($employee->phone))
Phone: {{ $employee->phone }}
@endif
Statement Info

{{ $monthName }}

Document: Attendance Statement
Total Days: {{ count($days) }}
Generated: {{ now()->format('d M Y') }}
Present
{{ $summary['present'] ?? 0 }}
Absent
{{ $summary['absent'] ?? 0 }}
@if($isMonthly)
Leave
{{ $summary['leave'] ?? 0 }}
@else
Roz
{{ number_format((float) ($summary['total_roz'] ?? 0), 1) }}
@endif
Holiday
{{ $summary['holiday'] ?? 0 }}
@if($isMonthly)
Overtime
{{ number_format((float) ($summary['overtime_hours'] ?? 0), 1) }}
@else
Type
Daily
@endif
Advance
{{ number_format((float) $totalMonthlyAdvance, 0) }}

Attendance Line Items

{{ $employee->name }} · {{ $monthName }}
Days 01 - 16
@if($isMonthly) @endif @if($isDailyRoz) @endif @foreach($leftDays as $day) @php $row = $attendanceRows[$day] ?? null; $advanceItems = collect($advanceRowsByDate[$day] ?? []); $advanceTotal = (float) $advanceItems->sum('amount'); $referenceText = $advanceItems->pluck('reference_no')->filter()->implode(' | '); @endphp @if($isMonthly) @endif @if($isDailyRoz) @endif @endforeach
Date StatusOTRozAdv Ref
{{ Carbon::parse($day)->format('d M') }}
{{ Carbon::parse($day)->format('D') }}
@if($row) {{ ucfirst($row->day_status) }} @else @endif {{ $row ? number_format((float) $row->overtime_hours, 1) : '—' }}{{ $row ? number_format((float) $row->roz_value, 1) : '—' }} @if($advanceTotal > 0) {{ number_format($advanceTotal, 0) }} @else @endif {{ $referenceText !== '' ? Str::limit($referenceText, 10) : '—' }}
Days 17 - {{ str_pad(count($days), 2, '0', STR_PAD_LEFT) }}
@if($isMonthly) @endif @if($isDailyRoz) @endif @foreach($rightDays as $day) @php $row = $attendanceRows[$day] ?? null; $advanceItems = collect($advanceRowsByDate[$day] ?? []); $advanceTotal = (float) $advanceItems->sum('amount'); $referenceText = $advanceItems->pluck('reference_no')->filter()->implode(' | '); @endphp @if($isMonthly) @endif @if($isDailyRoz) @endif @endforeach
Date StatusOTRozAdv Ref
{{ Carbon::parse($day)->format('d M') }}
{{ Carbon::parse($day)->format('D') }}
@if($row) {{ ucfirst($row->day_status) }} @else @endif {{ $row ? number_format((float) $row->overtime_hours, 1) : '—' }}{{ $row ? number_format((float) $row->roz_value, 1) : '—' }} @if($advanceTotal > 0) {{ number_format($advanceTotal, 0) }} @else @endif {{ $referenceText !== '' ? Str::limit($referenceText, 10) : '—' }}