diff --git a/app/Http/Controllers/API/v1/Admin/Penyta/GetController.php b/app/Http/Controllers/API/v1/Admin/Penyta/GetController.php new file mode 100644 index 0000000..43a7a1c --- /dev/null +++ b/app/Http/Controllers/API/v1/Admin/Penyta/GetController.php @@ -0,0 +1,34 @@ +orderBy('no_anggota') + ->get(); + } + + public function search(Request $request) + { + $query = Voter::query(); + + if ($request->no_anggota) { + $query->where('no_anggota', 'like', '%' . $request->no_anggota . '%'); + } + + return $query->paginate(10); + } +} diff --git a/app/Http/Controllers/API/v1/Voter/PenyataController.php b/app/Http/Controllers/API/v1/Voter/PenyataController.php new file mode 100644 index 0000000..56530c1 --- /dev/null +++ b/app/Http/Controllers/API/v1/Voter/PenyataController.php @@ -0,0 +1,72 @@ +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"); + } + + + + + + +}