diff --git a/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php b/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php index dfdcf7a..6834594 100644 --- a/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php +++ b/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php @@ -51,6 +51,32 @@ class SosialEkonomiController extends Controller ->where('petani_id', $petani->id) ->first(); + if ($sosialEkonomi && !$request->expectsJson()) { + return redirect()->route('petani.sosial-ekonomi.edit', [$petani->id, $sosialEkonomi->id]); + } + + return $this->formView($request, $petani, $sosialEkonomi, 'produktivitas.petani.sosial-ekonomi.index'); + } + + public function edit(Request $request, string $petani, string $sosial_ekonomi) + { + $petani = Petani::findOrFail($petani); + $sosialEkonomi = SosialEkonomi::findOrFail($sosial_ekonomi); + + if ($sosialEkonomi->petani_id !== $petani->id) { + abort(404); + } + + $sosialEkonomi->load([ + 'pendapatanKomoditas', + 'pendapatanLuarPertanian', + ]); + + return $this->formView($request, $petani, $sosialEkonomi, 'produktivitas.petani.sosial-ekonomi.edit'); + } + + private function formView(Request $request, Petani $petani, ?SosialEkonomi $sosialEkonomi, string $view) + { $pendapatanKomoditas = $sosialEkonomi?->pendapatanKomoditas ?? collect(); $pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values(); $pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values(); @@ -61,7 +87,7 @@ class SosialEkonomiController extends Controller return response()->json($sosialEkonomi); } - return view('produktivitas.petani.sosial-ekonomi.index', compact( + return view($view, compact( 'petani', 'sosialEkonomi', 'komoditasPetani', @@ -97,7 +123,7 @@ class SosialEkonomiController extends Controller if (!$request->expectsJson()) { return redirect() - ->route('petani.sosial-ekonomi.index', $sosialEkonomi->petani_id) + ->route('petani.sosial-ekonomi.edit', [$sosialEkonomi->petani_id, $sosialEkonomi->id]) ->with('success', 'Data sosial ekonomi berhasil disimpan.'); } @@ -122,9 +148,9 @@ class SosialEkonomiController extends Controller ]); } - public function update(Request $request, Petani|string $petani, ?string $sosialEkonomiId = null): JsonResponse|RedirectResponse + public function update(Request $request, string $petani, string $sosial_ekonomi): JsonResponse|RedirectResponse { - $sosialEkonomi = $this->findSosialEkonomi($petani, $sosialEkonomiId); + $sosialEkonomi = SosialEkonomi::where('petani_id', $petani)->findOrFail($sosial_ekonomi); $validated = $this->validateData($request, $sosialEkonomi->id); $sosialEkonomi = DB::transaction(function () use ($request, $validated, $sosialEkonomi) { @@ -149,7 +175,7 @@ class SosialEkonomiController extends Controller if (!$request->expectsJson()) { return redirect() - ->route('petani.sosial-ekonomi.index', $sosialEkonomi->petani_id) + ->route('petani.sosial-ekonomi.edit', [$sosialEkonomi->petani_id, $sosialEkonomi->id]) ->with('success', 'Data sosial ekonomi berhasil diperbarui.'); } @@ -307,12 +333,4 @@ class SosialEkonomiController extends Controller ->get(); } - private function findSosialEkonomi(Petani|string $petani, ?string $sosialEkonomiId = null): SosialEkonomi - { - if ($petani instanceof Petani) { - return SosialEkonomi::where('petani_id', $petani->id)->findOrFail($sosialEkonomiId); - } - - return SosialEkonomi::findOrFail($petani); - } } diff --git a/resources/views/produktivitas/petani/header.blade.php b/resources/views/produktivitas/petani/header.blade.php index 7a55efd..d8761d2 100644 --- a/resources/views/produktivitas/petani/header.blade.php +++ b/resources/views/produktivitas/petani/header.blade.php @@ -206,7 +206,7 @@
| Komoditas | -Pendapatan (Rp) | +Pendapatan | Periode |
@php($pendapatanValue = old("pendapatan_komoditas.$index.pendapatan", $item?->pendapatan))
-
+
+ Rp
+
+
|
-
+ @php($periodeValue = old("pendapatan_komoditas.$index.periode", $item?->periode))
+
+
+
+
+
+
+
+
+
+ |
@endfor
|---|
| Jenis Pekerjaan | -Estimasi per Bulan (Rp) | +Estimasi per Bulan |
@php($estimasiValue = old("pendapatan_luar_pertanian.$i.estimasi_per_bulan", $item?->estimasi_per_bulan))
-
+
+ Rp
+
+
|
@endfor
|---|