@php
$dates = is_array($dashSeries['dates'] ?? null) ? $dashSeries['dates'] : [];
$areaPayload = is_array($dashAreaSeries ?? null) ? $dashAreaSeries : [];
$morningSeries = is_array($dashSeriesMorning ?? null) ? $dashSeriesMorning : [];
$hireCounts = is_array(data_get($areaPayload, 'chart.employee_counts_by_date')) ? data_get($areaPayload, 'chart.employee_counts_by_date') : [];
$mOnTime = is_array($morningSeries['checkin_ontime'] ?? null) ? $morningSeries['checkin_ontime'] : [];
$mLatePre = is_array($morningSeries['checkin_late_precheck'] ?? null) ? $morningSeries['checkin_late_precheck'] : [];
$mLateGrace = is_array($morningSeries['checkin_late_grace'] ?? null) ? $morningSeries['checkin_late_grace'] : [];
$mNonShift = is_array($morningSeries['checkin_nonshift'] ?? null) ? $morningSeries['checkin_nonshift'] : [];
$mLembur = is_array($morningSeries['checkin_lembur'] ?? null) ? $morningSeries['checkin_lembur'] : [];
$mCuti = is_array($morningSeries['cuti'] ?? null) ? $morningSeries['cuti'] : [];
$mSick = is_array($morningSeries['sick'] ?? null) ? $morningSeries['sick'] : [];
$mAlpha = is_array($morningSeries['missing_checkin_due'] ?? null) ? $morningSeries['missing_checkin_due'] : [];
$mWaitingShift = is_array($morningSeries['waiting_shift'] ?? null) ? $morningSeries['waiting_shift'] : [];
$dayCount = max(1, count($dates));
$sumArray = fn ($arr) => array_sum(array_map(fn ($v) => (float) $v, is_array($arr) ? $arr : []));
$avgHire = round($sumArray($hireCounts) / $dayCount);
$avgHadir = round(($sumArray($mOnTime) + $sumArray($mLatePre) + $sumArray($mLateGrace) + $sumArray($mNonShift) + $sumArray($mLembur)) / $dayCount);
$avgLeave = round(($sumArray($mCuti) + $sumArray($mSick)) / $dayCount);
$avgAlpha = round($sumArray($mAlpha) / $dayCount);
$avgWaitingShift = round($sumArray($mWaitingShift) / $dayCount);
$rateBase = max(1, $avgHire);
$avgHadirPct = round(($avgHadir / $rateBase) * 100, 1);
$avgLeavePct = round(($avgLeave / $rateBase) * 100, 1);
$avgAlphaPct = round(($avgAlpha / $rateBase) * 100, 1);
$workdayCount = (int) ($areaPayload['workday_count'] ?? 0);
$weekendCount = (int) ($areaPayload['weekend_count'] ?? 0);
$holidayCount = (int) ($areaPayload['holiday_count'] ?? 0);
$holidaySpecialCount = (int) ($areaPayload['holiday_special_count'] ?? 0);
@endphp
Attendance Overview
Daily Attendance Summary
-
-
Rata-rata Total Hire / Day
{{ number_format($avgHire) }}
Rata-rata Total Hadir / Day
{{ number_format($avgHadir) }} {{ number_format($avgHadirPct, 1) }}%
Rata-rata Leave / Day
{{ number_format($avgLeave) }} {{ number_format($avgLeavePct, 1) }}%
Rata-rata Tidak Hadir / Day
{{ number_format($avgAlpha) }} {{ number_format($avgAlphaPct, 1) }}%
Per Tanggal - klik grafik untuk detail
LEGENDA
Summary
Total Hire
Hadir
Hadir Weekend/Holiday
Leave
Waiting Shift
Shift Belum Selesai
Belum Mulai Kerja
Alpha
Perlu Verifikasi
Tanggal
Weekend
Holiday
Special Holiday
Drilldown
Klik grafik untuk melihat Shift, Non Shift, Cuti, Sakit, Tidak ada log valid, dan Perlu Verifikasi.
{{ $dates[0] ?? '-' }}
{{ $dates[count($dates) - 1] ?? '-' }}