Files

81 lines
2.0 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)
{
$voter = Voter::where('no_anggota', $no_anggota)->firstOrFail();
return response()->json([
'user' => $voter,
]);
}
// SAHKAN PENYATA BERDASARKAN NO ANGGOTA
public function sahkan(Request $request, $no_anggota)
{
$request->validate([
'persetujuan' => 'required|in:Bersetuju,Tidak Bersetuju',
'no_kp' => 'nullable',
'nokp' => '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
}
$noKp = $request->input('no_kp', $request->input('nokp'));
$voter->update([
'persetujuan' => $request->persetujuan,
'status_penyata' => $request->persetujuan === 'Bersetuju'
? 'DISAHKAN'
: 'PERLU_SEMAK',
'no_kp' => $noKp,
'tarikh_sah' => now()
]);
return response()->json([
'success' => true,
'status' => $voter->status_penyata,
'user' => $voter->fresh(),
]);
}
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");
}
}