Files
E-Vote/app/Http/Controllers/API/v1/Voter/PenyataController.php
T
2026-02-24 15:41:18 +08:00

73 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\API\v1\Voter;
use PDF;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Voter;
class PenyataController extends Controller
{
// GET PENYATA BERDASARKAN NO ANGGOTA
public function getPenyata($no_anggota)
{
return Voter::where('no_anggota', $no_anggota)->firstOrFail();
}
// SAHKAN PENYATA BERDASARKAN NO ANGGOTA
public function sahkan(Request $request, $no_anggota)
{
$request->validate([
'persetujuan' => 'required|in:Bersetuju,Tidak Bersetuju',
'no_kp' => 'nullable'
]);
$voter = Voter::where('no_anggota', $no_anggota)->first();
if (!$voter) {
return response()->json([
'message' => 'Voter tidak dijumpai'
], 404);
}
if ($voter->status_penyata === 'DISAHKAN') {
return response()->json([
'message' => 'Penyata ini telah DISAHKAN sebelum ini'
], 409); // Conflict
}
$voter->update([
'persetujuan' => $request->persetujuan,
'status_penyata' => $request->persetujuan === 'Bersetuju'
? 'DISAHKAN'
: 'PERLU_SEMAK',
'no_kp' => $request->nokp,
'tarikh_sah' => now()
]);
return response()->json([
'success' => true,
'status' => $voter->status_penyata
]);
}
public function pdf($no_anggota)
{
$penyata = Voter::where('no_anggota', $no_anggota)->first();
$pdf = Pdf::loadView('pdf.penyata-anggota', [
'p' => $penyata
])->setPaper('A4', 'portrait');
return $pdf->download("Penyata_$no_anggota.pdf");
}
}