orderBy('created_at', 'desc')->get(); return Inertia::render('admin/hukum/index_hukum', [ 'hukumData' => $hukumData, 'perusahaan' => Perusahaan::all(), 'jenisSanksi' => JenisSanksi::all(), 'penaatan' => Penaatan::all(), ]); } catch (\Exception $e) { Log::error('Error fetching data: ' . $e->getMessage()); return back()->with('error', 'Terjadi kesalahan saat memuat data.'); } } public function store(HukumRequest $request) { try { DB::beginTransaction(); $data = $request->validated(); if ($request->hasFile('SanksiFile')) { $fileName = time() . '_' . $request->file('SanksiFile')->getClientOriginalName(); $path = $request->file('SanksiFile')->storeAs('files/hukum/sanksi', $fileName, 'public'); $data['SanksiFile'] = $path; } if ($request->hasFile('PenaatanFile')) { $fileName = time() . '_' . $request->file('PenaatanFile')->getClientOriginalName(); $path = $request->file('PenaatanFile')->storeAs('files/hukum/penaatan', $fileName, 'public'); $data['PenaatanFile'] = $path; } Hukum::create($data); DB::commit(); return redirect()->route('admin.hukum.index')->with('success', 'Status Hukum berhasil ditambahkan'); } catch (\Exception $e) { DB::rollBack(); Log::error('Error creating hukum: ' . $e->getMessage()); return response()->json(['message' => 'Error: ' . $e->getMessage()], 500); } } public function update(HukumRequest $request, Hukum $hukum) { try { DB::beginTransaction(); $data = $request->validated(); // Preserve existing SanksiFile if no new file is uploaded if (!$request->hasFile('SanksiFile')) { unset($data['SanksiFile']); } else { // Delete old file if exists if ($hukum->SanksiFile && Storage::disk('public')->exists($hukum->SanksiFile)) { Storage::disk('public')->delete($hukum->SanksiFile); } $fileName = time() . '_' . $request->file('SanksiFile')->getClientOriginalName(); $path = $request->file('SanksiFile')->storeAs('files/hukum/sanksi', $fileName, 'public'); $data['SanksiFile'] = $path; } // Preserve existing PenaatanFile if no new file is uploaded if (!$request->hasFile('PenaatanFile')) { unset($data['PenaatanFile']); } else { // Delete old file if exists if ($hukum->PenaatanFile && Storage::disk('public')->exists($hukum->PenaatanFile)) { Storage::disk('public')->delete($hukum->PenaatanFile); } $fileName = time() . '_' . $request->file('PenaatanFile')->getClientOriginalName(); $path = $request->file('PenaatanFile')->storeAs('files/hukum/penaatan', $fileName, 'public'); $data['PenaatanFile'] = $path; } $hukum->update($data); DB::commit(); return redirect()->route('admin.hukum.index')->with('success', 'Status Hukum berhasil diperbarui'); } catch (\Exception $e) { DB::rollBack(); Log::error('Error updating hukum: ' . $e->getMessage()); return response()->json(['message' => 'Error: ' . $e->getMessage()], 500); } } public function destroy(Hukum $hukum) { try { DB::beginTransaction(); // Delete file if exists if ($hukum->SanksiFile && Storage::disk('public')->exists($hukum->SanksiFile)) { Storage::disk('public')->delete($hukum->SanksiFile); } if ($hukum->PenaatanFile && Storage::disk('public')->exists($hukum->PenaatanFile)) { Storage::disk('public')->delete($hukum->PenaatanFile); } $hukum->delete(); DB::commit(); return redirect()->route('admin.hukum.index')->with('success', 'Status Hukum berhasil dihapus'); } catch (\Exception $e) { DB::rollBack(); Log::error('Error deleting hukum: ' . $e->getMessage()); return response()->json(['message' => 'Error: ' . $e->getMessage()], 500); } } }