@foreach ($datapresensi as $d)
@php
$namahari = ['Sun'=>'Minggu','Mon'=>'Senin','Tue'=>'Selasa','Wed'=>'Rabu','Thu'=>'Kamis','Fri'=>'Jumat','Sat'=>'Sabtu'];
$day_eng = date('D', strtotime($d->tanggal));
$day_indo = $namahari[$day_eng] ?? $day_eng;
$day_short = strtoupper(substr($day_indo, 0, 3));
$tgl = date('d', strtotime($d->tanggal));
$text_color = $d->status == 'h' ? ($t['primary'] ?? '#2d5a4c') : ($d->status == 'i' ? '#1e90ff' : ($d->status == 's' ? '#ff6384' : ($d->status == 'c' ? '#ff9f40' : '#e74c3c')));
$bg_color = $d->status == 'h' ? (($t['primary'] ?? '#2d5a4c') . '18') : ($d->status == 'i' ? '#1e90ff18' : ($d->status == 's' ? '#ff638418' : ($d->status == 'c' ? '#ff9f4018' : '#e74c3c18')));
@endphp
{{-- Day Badge --}}
{{ $day_short }}
{{ $tgl }}
{{-- Details --}}
{{ DateToIndo($d->tanggal) }}
{{ $d->nama_jam_kerja }} ({{ date('H:i', strtotime($d->jam_masuk)) }} - {{ date('H:i', strtotime($d->jam_pulang)) }})
@if ($d->status == 'h')
@php
$jam_in_ts = strtotime($d->jam_in);
$jam_masuk_ts = strtotime($d->tanggal . ' ' . $d->jam_masuk);
$is_late = $jam_in_ts > $jam_masuk_ts;
$jam_telat = 0; $menit_telat = 0; $desimal_terlambat = 0;
if ($is_late) {
$terlambat_selisih = $jam_in_ts - $jam_masuk_ts;
$jam_telat = floor($terlambat_selisih / 3600);
$sisa = $terlambat_selisih % 3600;
$menit_telat = floor($sisa / 60);
$desimal_terlambat = $jam_telat + round($menit_telat / 60, 2);
}
$denda_display = 0; $potongan_jam = 0; $potongan_jam_terlambat = 0; $pulangcepat = 0; $potongan_tidak_scan = 0;
$denda_dari_db = !empty($d->denda) ? $d->denda : null;
if ($denda_dari_db !== null) {
$denda_display = $denda_dari_db;
if ($is_late && $desimal_terlambat >= 1) { $potongan_jam_terlambat = $desimal_terlambat > $d->total_jam ? $d->total_jam : $desimal_terlambat; }
} else {
if ($is_late) {
if ($desimal_terlambat < 1) { $denda_display = hitungdenda($denda_list, $menit_telat); } else { $potongan_jam_terlambat = $desimal_terlambat > $d->total_jam ? $d->total_jam : $desimal_terlambat; }
}
}
$pulangcepat = hitungpulangcepat($d->tanggal, $d->jam_out, $d->jam_pulang, $d->istirahat, $d->jam_awal_istirahat, $d->jam_akhir_istirahat, $d->lintashari);
$pulangcepat = $pulangcepat > $d->total_jam ? $d->total_jam : $pulangcepat;
if ($d->tanggal != date('Y-m-d') && (empty($d->jam_out) || empty($d->jam_in))) { $potongan_tidak_scan = $d->total_jam; }
$potongan_jam = $potongan_tidak_scan > 0 ? $potongan_tidak_scan : ($pulangcepat + $potongan_jam_terlambat);
$status_potongan_row = isset($d->status_potongan) ? $d->status_potongan : $namasettings->status_potongan_jam;
if ($status_potongan_row == 0) { $potongan_jam = 0; $denda_display = 0; }
@endphp
{{ $d->jam_in != null ? date('H:i', strtotime($d->jam_in)) : '__:__' }}
-
{{ $d->jam_out != null ? date('H:i', strtotime($d->jam_out)) : '__:__' }}
@if ($is_late)
Telat {{ $jam_telat > 0 ? $jam_telat . 'j ' : '' }}{{ $menit_telat }}m
@else
Tepat Waktu
@endif
@if ($d->jam_in != null)
@if ($denda_display > 0)
Denda Rp. {{ number_format($denda_display) }}
@endif
@if ($pulangcepat > 0)
Pulang Cepat
@endif
@if ($potongan_jam > 0 && ($d->jam_out != null || $d->tanggal != date('Y-m-d')))
@if ($namasettings->status_potongan_jam == 1 || (isset($d->status_potongan) && $d->status_potongan == 1))
PJ: {{ number_format($potongan_jam, 2) }} Jam
@endif
@endif
@endif
@elseif ($d->status == 'i')
Izin: {{ $d->keterangan_izin }}
@elseif ($d->status == 's')
Sakit: {{ $d->keterangan_izin_sakit }}
@elseif ($d->status == 'c')
Cuti: {{ $d->keterangan_izin_cuti }}
@elseif ($d->status == 'a')
@php
$potongan_jam = $d->total_jam;
$denda_display = !empty($d->denda) ? $d->denda : 0;
$status_potongan_row = isset($d->status_potongan) ? $d->status_potongan : $namasettings->status_potongan_jam;
if ($status_potongan_row == 0) { $potongan_jam = 0; }
@endphp
Alpha: Tanpa Keterangan
@endif
@endforeach