tambah fungsi upload peserta sebagai hadir

This commit is contained in:
Saufi
2026-05-20 20:10:43 +08:00
parent 154b2c650e
commit 7e4bbca2db
9 changed files with 1109 additions and 34 deletions

View File

@@ -17,6 +17,30 @@
{{-- Import Result --}}
@if(session('import_result'))
@php $r = session('import_result'); @endphp
{{-- All IC empty offer delete --}}
@if(!empty($r['all_empty_ic']))
<div class="card border-0 shadow-sm mb-4 border-start border-4 border-warning">
<div class="card-body">
<h6 class="fw-semibold mb-2 text-warning">
<i class="bi bi-exclamation-triangle me-2"></i>Semua No. K/P Kosong
</h6>
<p class="small text-muted mb-3">
Fail CSV yang dimuat naik tidak mengandungi sebarang No. K/P yang sah.
Tiada rekod diimport. Adakah anda ingin <strong>memadam semua peserta belum hadir</strong> dalam program ini?
</p>
<form method="POST" action="{{ route('admin.programs.participants.clear', $program) }}">
@csrf @method('DELETE')
<button type="submit" class="btn btn-danger btn-sm"
onclick="return confirm('Padam semua peserta yang belum hadir? Tindakan ini tidak boleh dibatalkan.')">
<i class="bi bi-trash me-1"></i> Padam Peserta Belum Hadir
</button>
<a href="{{ route('admin.programs.participants.import.form', $program) }}"
class="btn btn-outline-secondary btn-sm ms-2">Batal</a>
</form>
</div>
</div>
@else
<div class="card border-0 shadow-sm mb-4 border-start border-4
{{ $r['failed'] > 0 ? 'border-warning' : 'border-success' }}">
<div class="card-body">
@@ -59,6 +83,7 @@
</div>
</div>
@endif
@endif
{{-- Upload Form --}}
<div class="card border-0 shadow-sm">
@@ -79,7 +104,7 @@
@error('csv_file')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="mb-4">
<div class="mb-3">
<label class="form-label fw-medium">Sesi Default</label>
<select name="session" class="form-select">
<option value=""> Ikut Tetapan Program </option>
@@ -90,6 +115,24 @@
<div class="form-text">Sesi yang akan digunakan untuk semua peserta dalam fail ini.</div>
</div>
@if($programEnded)
<div class="mb-4 p-3 bg-warning bg-opacity-10 rounded border border-warning-subtle">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="mark_attendance"
value="1" id="markAttendance">
<label class="form-check-label fw-medium" for="markAttendance">
Tandakan sebagai Data Kehadiran
</label>
</div>
<div class="small text-muted mt-1 ms-4">
<i class="bi bi-info-circle me-1"></i>
Tempoh check-in telah tamat pada <strong>{{ ($program->checkin_end_at ?? $program->end_date->endOfDay())->format('d M Y, H:i') }}</strong>.
Jika ditanda, semua peserta dalam fail ini akan direkodkan sebagai <strong>hadir</strong>.
Peserta sedia ada dalam program akan dikemaskini status kehadirannya.
</div>
</div>
@endif
<button type="submit" class="btn btn-primary w-100">
<i class="bi bi-upload me-2"></i>Mula Import
</button>