Laporan Absensi Karyawan

@if (auth()->user()->jabatan == 'manajemen')
@endif
@foreach ($users as $user)

{{ $user->name }}

{{ $user->jabatan }}

@php $no = 0; @endphp
@foreach ($days as $day) @php $no++; $tanggal = \Carbon\Carbon::create($year, $month, $day); $hari = $tanggal->dayOfWeek; $formattedTanggal = $tanggal->format('Y-m-d'); $formattedTanggal2 = $tanggal->format('d F Y'); $shift = $user->allabsen->filter(function ($absen) use ($formattedTanggal) { return \Carbon\Carbon::parse($absen->jam_masuk)->format('Y-m-d') === $formattedTanggal; }); // Menentukan ikon shift $shiftIcons = [ 'pagi' => '🌅', 'siang' => '🌞', 'malam' => '🌙', 'malam-cs' => '🌙', 'pagi-cs' => '🌅', 'malam-satpam' => '🌙', 'pagi-satpam' => '🌅', 'nonshift' => '🌅', 'nonshift-puasa' => '🌅', 'libur' => '❌', ]; $s = $shift->last(); @endphp
{{ $user->name }}
{{ $formattedTanggal2 }}
@if ($s)

{{ $s->status_shift }}
{{ $formattedTanggal2 }}

{{ $s->jam_masuk->format('H:i') }} - {{ $s->jam_pulang ? $s->jam_pulang->format('H:i') : 'Belum' }}

@php $text = $s->telat; // Ambil angka dari teks preg_match('/(\d+)\s*jam/', $text, $jam); preg_match('/(\d+)\s*menit/', $text, $menit); // Konversi ke format TIME $jam = isset($jam[1]) ? (int) $jam[1] : 0; $menit = isset($menit[1]) ? (int) $menit[1] : 0; $telat = sprintf('%02d:%02d', $jam, $menit); $text = $s->pulang_awal; // Ambil angka dari teks preg_match('/(\d+)\s*jam/', $text, $jam); preg_match('/(\d+)\s*menit/', $text, $menit); // Konversi ke format TIME $jam = isset($jam[1]) ? (int) $jam[1] : 0; $menit = isset($menit[1]) ? (int) $menit[1] : 0; $awal = sprintf('%02d:%02d', $jam, $menit); @endphp @if($telat != '00:00') {{ $telat }} @endif @if($awal != '00:00') {{ $awal }} @endif

@else
Libur
@endif
@endforeach
@endforeach