first commit
This commit is contained in:
43
app/Http/Controllers/PengurusController.php
Normal file
43
app/Http/Controllers/PengurusController.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user