@if (!$shift_karyawan)
Hubungi Admin Untuk Input Shift Anda
@elseif($shift_karyawan->status_absen == 'Libur')
Hari Ini Anda Libur
@elseif($shift_karyawan->status_absen == 'Cuti')
Hari Ini Anda Cuti
@elseif($shift_karyawan->status_absen == 'Izin Tidak Masuk')
Hari Ini Anda Izin
@else
@php
date_default_timezone_set('Asia/Jakarta');
$now = date("Y-m-d H:i");
$mulai = $shift_karyawan->tanggal;
$jam_masuk = $shift_karyawan->Shift->jam_masuk;
$jam_keluar = $shift_karyawan->Shift->jam_keluar;
$masuk = DateTime::createFromFormat('H:i',$jam_masuk);
$keluar = DateTime::createFromFormat('H:i',$jam_keluar);
$mulaiDateTime = DateTime::createFromFormat('Y-m-d H:i',$mulai . ' ' . $jam_masuk);
$akhirDateTime = DateTime::createFromFormat('Y-m-d H:i',$mulai . ' ' . $jam_keluar);
$akhirs = $akhirDateTime;
$nowDateTime = DateTime::createFromFormat('Y-m-d H:i', $now);
if ($keluar <= $masuk) {
$akhirs = $akhirDateTime->modify("+1 day");
}
$limit1 = clone $mulaiDateTime;
$limit2 = clone $akhirs;
$limit3 = clone $akhirs;
$limit1->modify('+1 hour'); // Batas absen masuk
$limit2->modify('-1 hour'); // Batas absen pulang
$limit3->modify('+2 hour'); // Batas absen limit pulang
// Konversi ke timestamp
$nowTimestamp = $nowDateTime ? $nowDateTime->getTimestamp() : null;
$limit1Timestamp = $limit1->getTimestamp();
$limit2Timestamp = $limit2->getTimestamp();
$limit3Timestamp = $limit3->getTimestamp();
// Perbaiki logika Blade
$isAbsenMasuk = $shift_karyawan->jam_absen == null;
$isAbsenKehadiran = $shift_karyawan->jam_absen != null && $nowTimestamp >= $limit1Timestamp && $nowTimestamp <= $limit2Timestamp;
$isAbsenPulang = $shift_karyawan->jam_pulang == null && $nowTimestamp >= $limit2Timestamp && $nowTimestamp < $limit3Timestamp;
@endphp
@if ($isAbsenMasuk)
Absen Masuk
@elseif ($isAbsenKehadiran)
Absen Kehadiran
@elseif ($isAbsenPulang)
Absen Pulang
Maximal : {{$limit3->format("Y-m-d H:i")}} WIB
@else
Anda Sudah Selesai Absen
@endif
@endif
@push('script')
@endpush
@endsection