From 5b8f8ee81857bf9a726654e46fac293e5c47e116 Mon Sep 17 00:00:00 2001 From: NoBody313 Date: Wed, 26 Mar 2025 18:14:46 +0700 Subject: [PATCH] Update LetterController to handle nullable fields and set boolean flags for acceptance and completion letters --- app/Http/Controllers/LetterController.php | 25 ++++++++++++++----- ...142237_create_acceptance_letters_table.php | 2 +- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/LetterController.php b/app/Http/Controllers/LetterController.php index a6bf665..fa614d3 100644 --- a/app/Http/Controllers/LetterController.php +++ b/app/Http/Controllers/LetterController.php @@ -103,18 +103,22 @@ class LetterController extends Controller 'program_studi_mahasiswa' => 'required|string', 'tahun_ajaran' => 'required|string', 'start_date' => 'required|date', - 'completion_date' => 'required|date', + 'completion_date' => 'nullable|date', + 'nomor_surat_acceptance' => 'nullable|string', + 'nomor_surat_completion' => 'nullable|string', 'lampiran' => 'nullable|file|mimes:pdf,jpg,png|max:2048', ]); - // Create letter with UUID and optional fields + // Automatically set boolean flags based on letter numbers + $is_acceptance = !empty($request->nomor_surat_acceptance); + $is_completion = !empty($request->nomor_surat_completion); + + // Create letter with UUID and modified fields $letter = Letter::create([ 'id' => Str::uuid()->toString(), ...$validated, - 'is_acceptance' => $request->is_acceptance ?? false, - 'nomor_surat_acceptance' => $request->nomor_surat_acceptance, - 'is_completion' => $request->is_completion ?? false, - 'nomor_surat_completion' => $request->nomor_surat_completion, + 'is_acceptance' => $is_acceptance, + 'is_completion' => $is_completion, ]); // Handle file upload if present @@ -201,6 +205,15 @@ class LetterController extends Controller 'lampiran' => 'nullable|file|mimes:pdf,jpg,png|max:2048', ]); + // Update boolean flags if letter numbers are provided + if ($request->has('nomor_surat_acceptance')) { + $validated['is_acceptance'] = !empty($request->nomor_surat_acceptance); + } + + if ($request->has('nomor_surat_completion')) { + $validated['is_completion'] = !empty($request->nomor_surat_completion); + } + $letter->update($validated); if ($request->hasFile('lampiran')) { diff --git a/database/migrations/2025_03_08_142237_create_acceptance_letters_table.php b/database/migrations/2025_03_08_142237_create_acceptance_letters_table.php index 55dad7a..6051736 100644 --- a/database/migrations/2025_03_08_142237_create_acceptance_letters_table.php +++ b/database/migrations/2025_03_08_142237_create_acceptance_letters_table.php @@ -19,7 +19,7 @@ return new class extends Migration $table->string('program_studi_mahasiswa'); $table->string('tahun_ajaran'); $table->date('start_date'); - $table->date('completion_date'); + $table->date('completion_date')->nullable(); $table->string('lampiran')->nullable(); $table->boolean('is_acceptance')->default(false); $table->string('nomor_surat_acceptance')->nullable();