@php use Illuminate\Support\Carbon; $m = Carbon::parse($month); $showUserDetail = !$month || $week || $date; // is week or day filter $isPerDayFilter = isset($date); @endphp
@pushOnce('styles') @endpushOnce

Data Absensi

Filter:
@foreach (App\Models\Division::all() as $_division) @endforeach @foreach (App\Models\JobTitle::all() as $_jobTitle) @endforeach
{{ __('Search') }} @if ($search) {{ __('Reset') }} @endif
Cetak Laporan
@if ($showUserDetail) @if ($isPerDayFilter) @endif @endif @foreach ($dates as $date) @php if (!$isPerDayFilter && $date->isSunday()) { // Minggu merah $textClass = 'text-red-500 dark:text-red-300'; } elseif (!$isPerDayFilter && $date->isFriday()) { // Jumat hijau $textClass = 'text-green-500 dark:text-green-300'; } else { $textClass = 'text-gray-500 dark:text-gray-300'; } @endphp @endforeach @if ($isPerDayFilter) @endif @if (!$isPerDayFilter) @foreach (['H', 'T', 'I', 'S', 'A'] as $_st) @endforeach @endif @if ($isPerDayFilter) @endif @php $class = 'cursor-pointer px-4 py-3 text-sm font-medium text-gray-900 dark:text-white'; @endphp @foreach ($employees as $employee) @php $attendances = $employee->attendances; @endphp {{-- Detail karyawan --}} @if ($showUserDetail) @if ($isPerDayFilter) @php $attendance = $employee->attendances->isEmpty() ? null : $employee->attendances->first(); $timeIn = $attendance ? $attendance['time_in'] : null; $timeOut = $attendance ? $attendance['time_out'] : null; @endphp @endif @endif {{-- Absensi --}} @php $presentCount = 0; $lateCount = 0; $excusedCount = 0; $sickCount = 0; $absentCount = 0; @endphp @foreach ($dates as $date) @php $isWeekend = $date->isWeekend(); $attendance = $attendances->firstWhere(fn($v, $k) => $v['date'] === $date->format('Y-m-d')); $status = ($attendance ?? [ 'status' => $isWeekend || !$date->isPast() ? '-' : 'absent', ])['status']; switch ($status) { case 'present': $shortStatus = 'H'; $bgColor = 'bg-green-200 dark:bg-green-800 hover:bg-green-300 dark:hover:bg-green-700 border border-green-300 dark:border-green-600'; $presentCount++; break; case 'late': $shortStatus = 'T'; $bgColor = 'bg-amber-200 dark:bg-amber-800 hover:bg-amber-300 dark:hover:bg-amber-700 border border-amber-300 dark:border-amber-600'; $lateCount++; break; case 'excused': $shortStatus = 'I'; $bgColor = 'bg-blue-200 dark:bg-blue-800 hover:bg-blue-300 dark:hover:bg-blue-700 border border-blue-300 dark:border-blue-600'; $excusedCount++; break; case 'sick': $shortStatus = 'S'; $bgColor = 'hover:bg-gray-100 dark:hover:bg-gray-700 border border-gray-300 dark:border-gray-600'; $sickCount++; break; case 'absent': $shortStatus = 'A'; $bgColor = 'bg-red-200 dark:bg-red-800 hover:bg-red-300 dark:hover:bg-red-700 border border-red-300 dark:border-red-600'; $absentCount++; break; default: $shortStatus = '-'; $bgColor = 'hover:bg-gray-100 dark:hover:bg-gray-700 border border-gray-300 dark:border-gray-600'; break; } @endphp @if (!$isPerDayFilter && $attendance && ($attendance['attachment'] || $attendance['note'] || $attendance['coordinates'])) @else @endif @endforeach {{-- Waktu masuk/keluar --}} @if ($isPerDayFilter) @endif {{-- Total --}} @if (!$isPerDayFilter) @foreach ([$presentCount, $lateCount, $excusedCount, $sickCount, $absentCount] as $statusCount) @endforeach @endif {{-- Action --}} @if ($isPerDayFilter) @php $attendance = $employee->attendances->isEmpty() ? null : $employee->attendances->first(); @endphp @endif @endforeach
{{ $showUserDetail ? __('Name') : __('Name') . '/' . __('Date') }} {{ __('NIP') }} {{ __('Division') }} {{ __('Job Title') }} {{ __('Shift') }} @if ($isPerDayFilter) Status @else {{ $date->format('d/m') }} @endif {{ __('Time In') }} {{ __('Time Out') }} {{ $_st }} Actions
{{ $employee->name }} {{ $employee->nip }} {{ $employee->division?->name ?? '-' }} {{ $employee->jobTitle?->name ?? '-' }} {{ $attendance['shift'] ?? '-' }} {{ $isPerDayFilter ? __($status) : $shortStatus }} {{ $timeIn ?? '-' }} {{ $timeOut ?? '-' }} {{ $statusCount }}
@if ($attendance && ($attendance['attachment'] || $attendance['note'] || $attendance['coordinates'])) {{ __('Detail') }} @else - @endif
@if ($employees->isEmpty())
Tidak ada data
@endif
{{ $employees->links() }}
@stack('attendance-detail-scripts')