{{-- resources/views/admin/kepulangan/index.blade.php --}} @extends('layouts.app') @section('title', 'Data Kepulangan Santri') @section('content') {{-- Banner Notifikasi Pengajuan Pending --}} @php $pendingPengajuan = \App\Models\PengajuanKepulangan::where('status', 'Menunggu')->count(); @endphp @if($pendingPengajuan > 0)
Ada {{ $pendingPengajuan }} pengajuan kepulangan dari mobile yang menunggu review!

Klik tombol di bawah untuk melihat dan meninjau pengajuan.

Lihat Pengajuan
@endif {{-- Info Periode Kuota --}}

Periode Kuota

{{ $settings->periode_mulai->format('d M Y') }} - {{ $settings->periode_akhir->format('d M Y') }}

Kuota Maksimal

{{ $settings->kuota_maksimal }} Hari / Tahun

Terakhir Reset

{{ $settings->terakhir_reset ? $settings->terakhir_reset->format('d M Y') : 'Belum Pernah' }}

Kelola Pengaturan
{{-- Dashboard Cards --}}

Total Data

{{ $stats['total_data'] }}

Menunggu Approval

{{ $stats['menunggu_approval'] }}

Sedang Izin

{{ $stats['sedang_izin'] }}

Over Limit (>{{ $settings->kuota_maksimal }} Hari)

{{ $stats['over_limit_santri'] }}
@if($stats['over_limit_santri'] > 0) Lihat Detail @endif
{{-- Flash Messages --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif {{-- Main Content --}}
{{-- Header Actions --}}
Tambah Izin Kepulangan {{-- TOMBOL PENGAJUAN MOBILE (BARU) --}} Pengajuan izin @if($pendingPengajuan > 0) {{ $pendingPengajuan }} @endif
{{-- Filter Section --}}
Reset
{{-- Data Table (SAMA SEPERTI SEBELUMNYA) --}}
@forelse($kepulangan as $item) @php $isOverLimit = isset($santriOverLimit[$item->id_santri]); $totalHariTerpakai = $isOverLimit ? $santriOverLimit[$item->id_santri] : 0; @endphp @empty @endforelse
ID Santri Tanggal Pulang Tanggal Kembali Durasi Total Kuota Terpakai Alasan Status Aksi
{{ $item->id_kepulangan }} @if($isOverLimit) @endif
{{ $item->santri->nama_lengkap ?? 'N/A' }}
{{ $item->santri->id_santri ?? '' }} | {{ $item->santri->kelas ?? '' }}
{{ $item->tanggal_pulang_formatted }} {{ $item->tanggal_kembali_formatted }} {{ $item->durasi_izin }} hari @php $kuotaSantri = \App\Models\Kepulangan::getSisaKuotaSantri($item->id_santri); $badgeColor = $kuotaSantri['badge_color']; $badgeColors = [ 'success' => '#28a745', 'warning' => '#ffc107', 'danger' => '#dc3545' ]; $bgColor = $badgeColors[$badgeColor] ?? '#6c757d'; $textColor = $badgeColor == 'warning' ? '#000' : '#fff'; @endphp
{{ $kuotaSantri['total_terpakai'] }} / {{ $kuotaSantri['kuota_maksimal'] }} hari
@if($kuotaSantri['status'] === 'melebihi') OVER LIMIT @else Sisa: {{ $kuotaSantri['sisa_kuota'] }} hari ({{ $kuotaSantri['persentase'] }}%) @endif
{{ $item->alasan }} {{ $item->status }} @if($item->is_aktif)
Sedang Izin @elseif($item->is_terlambat)
Terlambat @endif
@if($item->status == 'Menunggu') @endif @if($item->status == 'Disetujui') @endif @if(in_array($item->status, ['Menunggu', 'Ditolak', 'Selesai'])) @endif

Tidak ada data kepulangan ditemukan

{{-- Pagination --}} @if($kepulangan->hasPages())
Menampilkan {{ $kepulangan->firstItem() ?? 0 }} - {{ $kepulangan->lastItem() ?? 0 }} dari {{ $kepulangan->total() }} data
{{ $kepulangan->appends(request()->query())->links() }}
@endif
{{-- Modal Approve --}} {{-- Modal Reject --}} {{-- Modal Delete --}} {{-- Modal Complete (Selesaikan Kepulangan) --}} @endsection