get(); // Mengambil data jenis dokumen izin lingkungan $jenisKegiatan = JenisKegiatan::all(); $jenisDokIL = JenisDokIL::all(); return Inertia::render('admin/perizinan_lingkungan/index_perizinan_lingkungan', [ 'perusahaan' => $perusahaan, 'jenisKegiatan' => $jenisKegiatan, 'jenisDokIL' => $jenisDokIL, ]); } // public function update(PerusahaanRequest $request, Perusahaan $perusahaan) // { // try { // DB::beginTransaction(); // $data = $request->validated(); // // Jika tidak ada file ILDokumen yang di-upload, hapus key tersebut agar tidak mengubah nilai sebelumnya // if (!$request->hasFile('ILDokumen')) { // unset($data['ILDokumen']); // } else { // // Jika sudah ada file sebelumnya, hapus file lama terlebih dahulu // if ($perusahaan->ILDokumen && Storage::disk('public')->exists($perusahaan->ILDokumen)) { // Storage::disk('public')->delete($perusahaan->ILDokumen); // } // // Buat nama file baru berdasarkan waktu upload dan nama file asli // $fileName = time() . '_' . $request->file('ILDokumen')->getClientOriginalName(); // $path = $request->file('ILDokumen')->storeAs('files/il', $fileName, 'public'); // $data['ILDokumen'] = $path; // } // // Update data perusahaan (termasuk data perizinan lingkungan) // $perusahaan->update($data); // DB::commit(); // return redirect()->route('admin.perizinan_lingkungan.index') // ->with('success', 'Data perizinan lingkungan berhasil diperbarui'); // } catch (\Exception $e) { // DB::rollBack(); // Log::error('Error updating perizinan lingkungan: ' . $e->getMessage()); // return response()->json(['message' => 'Error: ' . $e->getMessage()], 500); // } // } // public function update(PerizinanLingkunganRequest $request, Perusahaan $perusahaan) // { // try { // DB::beginTransaction(); // $data = $request->validated(); // $perusahaan->ILNomor = $data['ILNomor'] ?? $perusahaan->ILNomor; // $perusahaan->ILTanggal = $data['ILTanggal'] ?? $perusahaan->ILTanggal; // $perusahaan->JenisKegiatanId = $data['JenisKegiatanId'] ?? $perusahaan->JenisKegiatanId; // if ($request->hasFile('ILDokumen')) { // if ($perusahaan->ILDokumen && Storage::disk('public')->exists($perusahaan->ILDokumen)) { // Storage::disk('public')->delete($perusahaan->ILDokumen); // } // $file = $request->file('ILDokumen'); // $filename = time() . '_' . $file->getClientOriginalName(); // $path = $file->storeAs('files/il', $filename, 'public'); // $perusahaan->ILDokumen = $path; // } // $perusahaan->save(); // DB::commit(); // return redirect()->route('admin.perizinan_lingkungan.index') // ->with('success', 'Data perizinan lingkungan berhasil diperbarui'); // } catch (\Exception $e) { // DB::rollBack(); // Log::error('Error updating perizinan lingkungan: ' . $e->getMessage()); // return back()->withErrors(['error' => $e->getMessage()]); // } // } public function update(PerizinanLingkunganRequest $request, Perusahaan $perusahaan) { try { DB::beginTransaction(); // Ambil data lengkap dari model (pastikan semua field termasuk yang wajib ada) $existingData = $perusahaan->getAttributes(); // Ambil data baru hanya dari field perizinan $newData = $request->only(['ILNomor', 'ILTanggal', 'JenisKegiatanId']); if ($request->hasFile('ILDokumen')) { if ($perusahaan->ILDokumen && Storage::disk('public')->exists($perusahaan->ILDokumen)) { Storage::disk('public')->delete($perusahaan->ILDokumen); } $file = $request->file('ILDokumen'); $filename = time() . '_' . $file->getClientOriginalName(); $path = $file->storeAs('files/il', $filename, 'public'); $newData['ILDokumen'] = $path; } // Gabungkan data lama dengan data baru (field baru akan override data lama) $data = array_merge($existingData, $newData); $perusahaan->update($data); DB::commit(); return redirect()->route('admin.perizinan_lingkungan.index') ->with('success', 'Data perizinan lingkungan berhasil diperbarui'); } catch (\Exception $e) { DB::rollBack(); Log::error('Error updating perizinan lingkungan: ' . $e->getMessage()); return back()->withErrors(['error' => $e->getMessage()]); } } }