From 2efcf7d85ce6d012368f0a466f3bc4bf1dc3cc80 Mon Sep 17 00:00:00 2001 From: majid Date: Fri, 28 Feb 2025 15:33:58 +0700 Subject: [PATCH 1/3] fix(so): perbaikkan view laporan di so --- app/Http/Controllers/PenilaianController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 97a95aa..be16958 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -788,6 +788,7 @@ class PenilaianController extends Controller if ($lpj) { $lpjData = json_decode($lpj->lpj, true); $resumeData = json_decode($lpj->resume, true); + $callReport = json_decode($lpj->call_report, true); if (isset($lpj->memo)) { $memo = json_decode($lpj->memo); } @@ -815,7 +816,7 @@ class PenilaianController extends Controller return redirect()->back()->with('error', 'Laporan belum dibuat'); } - return view('lpj::' . $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'resumeData', 'rap', 'memo', 'cities', 'districts', 'villages', 'formFoto', 'formPeta', 'nomorLaporan', 'penilai')); + return view('lpj::' . $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'resumeData', 'rap', 'memo', 'cities', 'districts', 'villages', 'formFoto', 'formPeta', 'nomorLaporan', 'penilai', 'callReport')); } private function getViewLaporan($tipe) From 3c5e4a7df6b0739a2bfb9525a90def8c18762442 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 3 Mar 2025 15:43:39 +0700 Subject: [PATCH 2/3] fix(debiture): tambahkan validasi sebelum menghapus debitur - Periksa apakah pengguna adalah administrator sebelum menghapus debitur. - Pastikan debitur ditemukan sebelum melakukan penghapusan. - Cek apakah debitur memiliki permohonan aktif untuk mencegah penghapusan. - Kembalikan respons JSON yang sesuai untuk setiap kondisi. --- app/Http/Controllers/DebitureController.php | 22 ++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/DebitureController.php b/app/Http/Controllers/DebitureController.php index b429265..94768ac 100644 --- a/app/Http/Controllers/DebitureController.php +++ b/app/Http/Controllers/DebitureController.php @@ -93,13 +93,29 @@ public function destroy($id) { try { - // Delete from database + // Periksa apakah pengguna adalah administrator + if (!auth()->user()->hasRole('administrator')) { + return response()->json(['success' => false, 'message' => 'Hanya administrator yang dapat menghapus debitur'], 403); + } + + // Temukan debitur $debitur = Debiture::find($id); + + if (!$debitur) { + return response()->json(['success' => false, 'message' => 'Debitur tidak ditemukan'], 404); + } + + // Periksa apakah debitur memiliki permohonan aktif + if ($debitur->permohonan()->exists()) { + return response()->json(['success' => false, 'message' => 'Tidak dapat menghapus debitur yang masih memiliki permohonan aktif'], 400); + } + + // Hapus dari database $debitur->delete(); - echo json_encode(['success' => true, 'message' => 'Debitur deleted successfully']); + return response()->json(['success' => true, 'message' => 'Debitur berhasil dihapus']); } catch (Exception $e) { - echo json_encode(['success' => false, 'message' => 'Failed to delete debitur']); + return response()->json(['success' => false, 'message' => 'Gagal menghapus debitur: ' . $e->getMessage()], 500); } } From 97109250c9ba9c266f6ad1c600508d03aa6a5e72 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 3 Mar 2025 15:44:00 +0700 Subject: [PATCH 3/3] fix(dokumen_jaminan): tambahkan validasi sebelum menghapus dokumen jaminan - Memastikan hanya administrator yang dapat menghapus dokumen jaminan. - Menambahkan pengecekan untuk memastikan dokumen jaminan ada sebelum dihapus. - Menambahkan validasi untuk mencegah penghapusan dokumen jaminan yang terkait dengan permohonan aktif. - Menggunakan transaksi database untuk menjaga konsistensi data saat menghapus dokumen dan detailnya. --- .../Controllers/DokumenJaminanController.php | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index f4e86a2..cdfaa22 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -385,16 +385,37 @@ ) { try { + // Periksa apakah pengguna adalah admin + if (!auth()->user()->hasRole('administrator')) { + return response()->json(['success' => false, 'message' => 'Hanya administrator yang dapat menghapus dokumen jaminan'], 403); + } + $jaminan = DokumenJaminan::find($jaminan_id); + + if (!$jaminan) { + return response()->json(['success' => false, 'message' => 'Dokumen Jaminan tidak ditemukan'], 404); + } + + // Periksa apakah dokumen jaminan terkait dengan permohonan aktif + if ($jaminan->permohonan()->exists()) { + return response()->json(['success' => false, 'message' => 'Tidak dapat menghapus dokumen jaminan yang terkait dengan permohonan aktif'], 400); + } + + DB::beginTransaction(); + $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get(); foreach ($details as $detail) { Storage::delete('public/' . $detail->dokumen_jaminan); $detail->delete(); } $jaminan->delete(); - echo json_encode(['success' => true, 'message' => 'Dokumen Jaminan deleted successfully']); + + DB::commit(); + + return response()->json(['success' => true, 'message' => 'Dokumen Jaminan berhasil dihapus']); } catch (Exception $e) { - echo json_encode(['success' => false, 'message' => 'Failed to delete Dokumen Jaminan']); + DB::rollBack(); + return response()->json(['success' => false, 'message' => 'Gagal menghapus Dokumen Jaminan: ' . $e->getMessage()], 500); } }