Update LetterController to handle nullable fields and set boolean flags for acceptance and completion letters

This commit is contained in:
NoBody313
2025-03-26 18:14:46 +07:00
parent e7477e204f
commit 5b8f8ee818
2 changed files with 20 additions and 7 deletions
+19 -6
View File
@@ -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')) {
@@ -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();