Files
Sistem_Kehadiran_Taklimat_SPR/app/Http/Controllers/PengurusController.php
2026-06-14 08:52:33 +08:00

44 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\SesiTaklimat;
use App\Models\Sppm\PetugasPermohonan;
use Illuminate\Http\Request;
class PengurusController extends Controller
{
/**
* Senarai petugas hadir dan tidak/belum hadir bagi satu sesi taklimat.
*/
public function senarai(Request $request, SesiTaklimat $sesi)
{
$user = $request->user();
if ($user->isPengurus() && (int) $sesi->dun_id !== (int) $user->dun_id) {
abort(403, 'Sesi ini bukan untuk DUN anda.');
}
$sesi->load('dun');
// Semua petugas 'assigned' untuk DUN sesi ini
$semuaPetugas = PetugasPermohonan::assignedUntukDun($sesi->dun_id)
->with(['assignments' => fn ($q) => $q->orderBy('urutan')->with(['pusatMengundi', 'saluran', 'jawatan'])])
->orderBy('nama_ic')
->get();
$kehadiran = $sesi->kehadiran()->get()->keyBy('permohonan_id');
[$hadir, $tidakHadir] = $semuaPetugas->partition(
fn (PetugasPermohonan $p) => $kehadiran->has($p->id)
);
return view('pengurus.senarai', [
'sesi' => $sesi,
'hadir' => $hadir->values(),
'tidakHadir' => $tidakHadir->values(),
'kehadiran' => $kehadiran,
]);
}
}