@extends('simaju.layouts.main') @section('title', 'Absensi Guru') @section('page-title', 'Absensi Guru') @section('page-subtitle', 'Sistem Absensi dengan Kamera & GPS') @section('content')
Absen Masuk @if(auth()->user()->role === 'admin') Input Manual @endif Rekap Absensi

Filter Data

@if($stats && $stats->count() > 0)

{{ $stats['hadir'] ?? 0 }}

Hadir

{{ $stats['terlambat'] ?? 0 }}

Terlambat

{{ $stats['izin'] ?? 0 }}

Izin

{{ $stats['sakit'] ?? 0 }}

Sakit

{{ $stats['alpha'] ?? 0 }}

Alpha

@endif
@forelse($absensis as $a) @empty @endforelse
Guru Tanggal Jam Masuk Jam Pulang Status GPS Foto Aksi
{{ strtoupper(substr($a->guru?->nama ?? 'U', 0, 1)) }}
{{ $a->guru?->nama ?? '-' }}
{{ $a->guru?->nip ?? '-' }}
{{ $a->tanggal?->format('d/m/Y') ?? '-' }}
{{ $a->jam_masuk ?? '-' }}
{{ $a->jam_pulang ?? '-' }}
@php $statusLabel = '-'; $statusClass = 'bg-gray-100 text-gray-700'; // Batas masuk $batasMasuk = '07:30:00'; // Jam mulai dan batas akhir pulang $mulaiPulang = '14:00:00'; $batasPulang = '15:00:00'; $tanggalAbsen = $a->tanggal ? \Carbon\Carbon::parse($a->tanggal) : null; /* |-------------------------------------------------------------------------- | 1. TIDAK ADA JAM MASUK |-------------------------------------------------------------------------- */ if (!$a->jam_masuk) { $statusLabel = 'Tidak Absen Masuk'; $statusClass = 'bg-red-100 text-red-700'; /* |-------------------------------------------------------------------------- | 2. SUDAH ABSEN PULANG |-------------------------------------------------------------------------- */ } elseif ($a->jam_pulang) { // Jika masuk lewat 07:30 if ($a->jam_masuk > $batasMasuk) { $statusLabel = 'Terlambat'; $statusClass = 'bg-yellow-100 text-yellow-700'; } else { $statusLabel = 'Hadir'; $statusClass = 'bg-green-100 text-green-700'; } /* |-------------------------------------------------------------------------- | 3. BELUM ABSEN PULANG |-------------------------------------------------------------------------- */ } else { // Jika data hari sebelumnya dan tidak ada absen pulang if ($tanggalAbsen && !$tanggalAbsen->isToday()) { $statusLabel = 'Bolos'; $statusClass = 'bg-red-100 text-red-700'; } // Jika hari ini elseif ($tanggalAbsen && $tanggalAbsen->isToday()) { $batasPulangHariIni = \Carbon\Carbon::createFromFormat( 'Y-m-d H:i:s', $tanggalAbsen->format('Y-m-d') . ' ' . $batasPulang ); /* | Sudah lewat jam 15:00 dan tidak absen pulang | = BOLOS */ if (now()->gt($batasPulangHariIni)) { $statusLabel = 'Bolos'; $statusClass = 'bg-red-100 text-red-700'; } else { /* | Belum lewat jam 15:00 | Status mengikuti jam masuk */ if ($a->jam_masuk > $batasMasuk) { $statusLabel = 'Terlambat'; $statusClass = 'bg-yellow-100 text-yellow-700'; } else { $statusLabel = 'Hadir'; $statusClass = 'bg-green-100 text-green-700'; } } } } @endphp {{ $statusLabel }} @if($a->lat_masuk && $a->lng_masuk)
Valid
@else Tidak ada @endif
@if($a->foto_masuk)
@php $fotoMasukUrl = asset('storage/' . ltrim($a->foto_masuk, '/')); @endphp Masuk
Masuk
@else
No Photo
@endif @if($a->foto_pulang)
@php $fotoPulangUrl = asset('storage/' . ltrim($a->foto_pulang, '/')); @endphp Pulang
Pulang
@else
Belum
@endif
@php $jamSekarang = now()->format('H:i:s'); $bolehPulang = $a->tanggal && \Carbon\Carbon::parse($a->tanggal)->isToday() && $jamSekarang >= '14:00:00' && $jamSekarang <= '15:00:00'; @endphp @if(!$a->jam_pulang && $bolehPulang) @endif
@csrf @method('DELETE')

Tidak ada data absensi

@if($absensis->hasPages())
{{ $absensis->withQueryString()->links() }}
@endif @endsection @push('scripts') @endpush