From d851ab58bc322e68c6bae2ac4fcf0df949ab237c Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 15 Sep 2025 13:58:40 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix(noc):=20Perbaiki=20validasi?= =?UTF-8?q?=20dan=20logika=20NOC=20untuk=20mendukung=20pembayaran=20tanpa?= =?UTF-8?q?=20permohonan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ubah validasi permohonan_id dari required menjadi nullable di NocRequest - Hapus pesan error required untuk permohonan_id di validation messages - Tambahkan logika kondisional di NocController->store() untuk updateOrCreate berdasarkan keberadaan permohonan_id - Perbaiki null safety dengan operator ?-> di form.blade.php untuk akses nested properties - Update logika status pembayar untuk mendukung pembayaran dengan nomor_tiket - Tambahkan kondisi khusus untuk menentukan status bayar berdasarkan nomor_tiket - Perbaiki formatting dan spacing di controller untuk readability --- app/Http/Controllers/NocController.php | 13 ++++++++++++- app/Http/Requests/NocRequest.php | 3 +-- resources/views/noc/form.blade.php | 13 ++++++++++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/NocController.php b/app/Http/Controllers/NocController.php index b99c7b3..da0a192 100644 --- a/app/Http/Controllers/NocController.php +++ b/app/Http/Controllers/NocController.php @@ -45,6 +45,7 @@ public function store(NocRequest $request) { $validated = $request->validated(); + $validated['updated_by'] = Auth::id(); if (request()->get('status_bayar') == "sudah_bayar") { $validated['status'] = '1'; @@ -66,13 +67,23 @@ 'nominal_lebih_bayar' => $validated['nominal_lebih_bayar'] ?? '0', 'bukti_pengembalian' => $validated['bukti_pengembalian'] ?? '', ]; - $noc = Noc::updateOrCreate( + + if($validated['permohonan_id']){ + $noc = Noc::updateOrCreate( [ 'permohonan_id' => $validated['permohonan_id'], 'persetujuan_penawaran_id' => $validated['persetujuan_penawaran_id'], ], $dataNoc, ); + } else { + $noc = Noc::updateOrCreate( + [ + 'persetujuan_penawaran_id' => $validated['persetujuan_penawaran_id'], + ], + $dataNoc, + ); + } $folderPath = 'noc/' . request()->get('persetujuan_penawaran_id') . '/bukti_ksl/'; diff --git a/app/Http/Requests/NocRequest.php b/app/Http/Requests/NocRequest.php index db11c4e..dddec8f 100644 --- a/app/Http/Requests/NocRequest.php +++ b/app/Http/Requests/NocRequest.php @@ -52,7 +52,7 @@ private function getBasicInfoRules() { return [ - 'permohonan_id' => 'required|exists:permohonan,id', + 'permohonan_id' => 'nullable|exists:permohonan,id', 'persetujuan_penawaran_id' => 'required|exists:persetujuan_penawaran,id', 'status' => 'nullable|boolean', 'created_by' => 'nullable|exists:users,id', @@ -130,7 +130,6 @@ public function messages() { return [ - 'permohonan_id.required' => 'ID Permohonan harus diisi', 'permohonan_id.exists' => 'ID Permohonan tidak valid', 'persetujuan_penawaran_id.required' => 'ID Persetujuan Penawaran harus diisi', 'persetujuan_penawaran_id.exists' => 'ID Persetujuan Penawaran tidak valid', diff --git a/resources/views/noc/form.blade.php b/resources/views/noc/form.blade.php index 85b41e8..cf952e7 100644 --- a/resources/views/noc/form.blade.php +++ b/resources/views/noc/form.blade.php @@ -38,7 +38,7 @@ + value="{{ $persetujuanPenawaran?->penawaran?->permohonan?->id ?? $persetujuanPenawaran?->permohonan?->id }}">