From 26f6e8332897fbf1eb935dc76a4dc14476c3ed5c Mon Sep 17 00:00:00 2001 From: ahmadafriadi Date: Fri, 10 Jul 2026 02:48:23 +0700 Subject: [PATCH] Update Praktik Budidaya --- .../PraktikBudidayaController.php | 27 ++- .../SurveyProduktivitasController.php | 1 - app/Models/Pertanian/PraktikBudidaya.php | 6 +- .../petani/praktik-budidaya/edit.blade.php | 201 +++++++++++++----- 4 files changed, 169 insertions(+), 66 deletions(-) diff --git a/app/Http/Controllers/Web/Produktivitas/PraktikBudidayaController.php b/app/Http/Controllers/Web/Produktivitas/PraktikBudidayaController.php index a6dc6b3..aa4b943 100644 --- a/app/Http/Controllers/Web/Produktivitas/PraktikBudidayaController.php +++ b/app/Http/Controllers/Web/Produktivitas/PraktikBudidayaController.php @@ -122,8 +122,8 @@ class PraktikBudidayaController extends Controller $caraPemberianPupukLainnya = collect(explode(', ', $caraPemberianPupuk)) ->first(fn ($item) => !in_array($item, $defaultCaraPemberianPupuk)); - $sumberAir = $praktikBudidaya->sumber_air ?? ''; - $sumberAirLainnya = collect(explode(', ', $sumberAir)) + $sumberAir = $praktikBudidaya->sumber_air ?? []; + $sumberAirLainnya = collect($sumberAir) ->first(fn ($item) => !in_array($item, $defaultSumberAir)); $sistemIrigasi = $praktikBudidaya->sistem_irigasi ?? ''; @@ -316,7 +316,7 @@ class PraktikBudidayaController extends Controller ->first(fn ($item) => !in_array($item, $defaultCaraPemberianPupuk)); $sumberAir = $praktikBudidaya->sumber_air ?? ''; - $sumberAirLainnya = collect(explode(', ', $sumberAir)) + $sumberAirLainnya = collect($sumberAir) ->first(fn ($item) => !in_array($item, $defaultSumberAir)); $sistemIrigasi = $praktikBudidaya->sistem_irigasi ?? ''; @@ -379,7 +379,8 @@ class PraktikBudidayaController extends Controller 'metode_paling_sering_dilakukan' => ['nullable', 'string'], - 'volume_obat_obatan_permusim' => ['nullable', 'numeric'], + 'volume_obat_obatan_padat' => ['nullable', 'numeric'], + 'volume_obat_obatan_cair' => ['nullable', 'numeric'], // 2.6 Sanitasi Kebun @@ -392,7 +393,7 @@ class PraktikBudidayaController extends Controller 'kondisi_pengelolaan_air_irigasi' => ['nullable', 'integer', new Enum(KondisiPengelolaanAir::class)], - 'sumber_air' => ['nullable', 'string'], + 'sumber_air' => ['nullable', 'array'], 'sumber_air_lainnya' => ['nullable', 'string'], 'sistem_irigasi' => ['nullable', 'string'], @@ -481,7 +482,8 @@ class PraktikBudidayaController extends Controller 'intensitas_serangan' => 'intensitas serangan', 'waktu_kemunculan_terparah' => 'waktu kemunculan terparah', 'metode_paling_sering_dilakukan' => 'metode yang paling sering dilakukan', - 'volume_obat_obatan_permusim' => 'volume obat-obatan per musim', + 'volume_obat_obatan_padat' => 'volume obat-obatan padat per musim', + 'volume_obat_obatan_cair' => 'volume obat-obatan cair per musim', // 2.6 Sanitasi Kebun 'frekuensi_sanitasi_lahan' => 'frekuensi sanitasi lahan', @@ -574,6 +576,14 @@ class PraktikBudidayaController extends Controller } if ($request->has('metode_penanganan_hama_penyakit')) { + $sumber_air = $request->sumber_air ?? []; + if (($key = array_search('Lainnya', $sumber_air)) !== false) { + unset($sumber_air[$key]); + if (!empty($request->sumber_air_lainnya)) { + $sumber_air[] = $request->sumber_air_lainnya; + } + } + $sumberAir = array_values($sumber_air); $dataPraktikBudidaya = [ 'metode_penanganan_opt' => $validatedData['metode_penanganan_hama_penyakit'] ?? null, 'jenis_hama' => $validatedData['jenis_hama'] ?? [], @@ -581,12 +591,13 @@ class PraktikBudidayaController extends Controller 'intensitas_serangan' => $validatedData['intensitas_serangan'] ?? null, 'waktu_kemunculan_terparah' => $validatedData['waktu_kemunculan_terparah'] ?? null, 'metode_paling_sering_dilakukan' => $validatedData['metode_paling_sering_dilakukan'] ?? null, - 'volume_obat_obatan_permusim' => $validatedData['volume_obat_obatan_permusim'] ?? null, + 'volume_obat_obatan_padat_permusim' => $validatedData['volume_obat_obatan_padat'] ?? null, + 'volume_obat_obatan_cair_permusim' => $validatedData['volume_obat_obatan_cair'] ?? null, 'frekuensi_sanitasi_lahan' => $validatedData['frekuensi_sanitasi_lahan'] ?? null, 'penanganan_sisa_buah_ranting' => $validatedData['penanganan_sisa_buah_ranting'] ?? null, 'penanganan_gulma' => $validatedData['penanganan_gulma'] ?? null, 'kondisi_pengelolaan_air' => $validatedData['kondisi_pengelolaan_air_irigasi'] ?? null, - 'sumber_air' => ($validatedData['sumber_air'] ?? null) === 'Lainnya' ? ($validatedData['sumber_air_lainnya'] ?? null) : ($validatedData['sumber_air'] ?? null), + 'sumber_air' => $sumberAir, 'sistem_irigasi' => ($validatedData['sistem_irigasi'] ?? null) === 'Lainnya' ? ($validatedData['sistem_irigasi_lainnya'] ?? null) : ($validatedData['sistem_irigasi'] ?? null), 'kebutuhan_air_permusim' => $validatedData['kebutuhan_air_permusim'] ?? null, 'kebiasaan_konservasi_tanah' => $validatedData['kebiasaan_konservasi_tanah'] ?? [], diff --git a/app/Http/Controllers/Web/Produktivitas/SurveyProduktivitasController.php b/app/Http/Controllers/Web/Produktivitas/SurveyProduktivitasController.php index cb9ba6a..037a638 100644 --- a/app/Http/Controllers/Web/Produktivitas/SurveyProduktivitasController.php +++ b/app/Http/Controllers/Web/Produktivitas/SurveyProduktivitasController.php @@ -14,7 +14,6 @@ class SurveyProduktivitasController extends Controller public function store($petaniId, Request $request) { $petani = Petani::findOrFail($petaniId); - // dd($request->all()); $validated = $request->validate([ 'produktivitas_komoditas' => ['required', 'array'], 'produktivitas_komoditas.*.komoditas_id' => ['nullable', 'exists:master_komoditas,id'], diff --git a/app/Models/Pertanian/PraktikBudidaya.php b/app/Models/Pertanian/PraktikBudidaya.php index 64f818a..5ba2ea7 100644 --- a/app/Models/Pertanian/PraktikBudidaya.php +++ b/app/Models/Pertanian/PraktikBudidaya.php @@ -19,7 +19,8 @@ class PraktikBudidaya extends Model 'teknik_pemangkasan' => 'array', 'jenis_hama' => 'array', 'jenis_penyakit' => 'array', - 'kebiasaan_konservasi_tanah' => 'array' + 'sumber_air' => 'array', + 'kebiasaan_konservasi_tanah' => 'array', ]; protected $fillable = [ @@ -45,7 +46,8 @@ class PraktikBudidaya extends Model 'intensitas_serangan', 'waktu_kemunculan_terparah', 'metode_paling_sering_dilakukan', - 'volume_obat_obatan_permusim', + 'volume_obat_obatan_padat_permusim', + 'volume_obat_obatan_cair_permusim', 'satuan_volume_obat_obatan', 'frekuensi_sanitasi_lahan', 'penanganan_sisa_buah_ranting', diff --git a/resources/views/produktivitas/petani/praktik-budidaya/edit.blade.php b/resources/views/produktivitas/petani/praktik-budidaya/edit.blade.php index aca2652..acf98d6 100644 --- a/resources/views/produktivitas/petani/praktik-budidaya/edit.blade.php +++ b/resources/views/produktivitas/petani/praktik-budidaya/edit.blade.php @@ -705,24 +705,46 @@ @error('metode_paling_sering_dilakukan')
{{ $message }}
@enderror
-
+
+ + +
+ + + Lt +
+ + @error('volume_obat_obatan_cair')
{{ $message }}
@enderror
@@ -787,49 +809,52 @@
-
+
sumber_air) == 'Sungai/mata air' ? 'checked' : '' }}> - + id="teknik-pemangkasan-kebiasaan" + {{ in_array('Sungai/mata air', old('sumber_air', $praktikBudidaya->sumber_air ?? [])) ? 'checked' : '' }}> +
-
+
sumber_air) == 'Sumur' ? 'checked' : '' }}> - -
- -
- sumber_air) == 'Mengandalkan hujan saja' ? 'checked' : '' }}> - + id="teknik-pemangkasan-kebiasaan" + {{ in_array('Sumur', old('sumber_air', $praktikBudidaya->sumber_air ?? [])) ? 'checked' : '' }}> +
+
+ sumber_air ?? [])) ? 'checked' : '' }}> + +
- - - - - + + + +
- +
Praktik Konservasi Tanah
-
+
+ @php + $valueTidakAdaKonservasi = 'Tidak ada yang seperti itu di kebun saya'; + + $kebiasaanKonservasi = old( + 'kebiasaan_konservasi_tanah', + $praktikBudidaya->kebiasaan_konservasi_tanah ?? [] + ); + + if (is_string($kebiasaanKonservasi)) { + $kebiasaanKonservasi = json_decode($kebiasaanKonservasi, true) ?? []; + } + + $adaPilihanKonservasi = collect($kebiasaanKonservasi) + ->filter(fn ($item) => $item !== $valueTidakAdaKonservasi) + ->isNotEmpty(); + + $tidakAdaKonservasi = in_array($valueTidakAdaKonservasi, $kebiasaanKonservasi); + @endphp
-
-
-
-
- kebiasaan_konservasi_tanah ?? [])) ? 'checked' : '' }}> - + +
@error('kebiasaan_konservasi_tanah')
{{ $message }}
@enderror
-
+