Update Praktik Budidaya
This commit is contained in:
@@ -18,6 +18,15 @@ use App\Enums\PraktikBudidaya\FrekuensiPemangkasanPendamping;
|
||||
use App\Enums\PraktikBudidaya\PemberianPupuk;
|
||||
use App\Enums\PraktikBudidaya\JenisPupuk;
|
||||
use App\Enums\PraktikBudidaya\PenyerbukanManual;
|
||||
use App\Enums\PraktikBudidaya\MetodePenangananHamaPenyakit;
|
||||
use App\Enums\PraktikBudidaya\IntensitasSeranganHamaPenyakit;
|
||||
use App\Enums\PraktikBudidaya\WaktuKemunculanTerparahHamaPenyakit;
|
||||
use App\Enums\PraktikBudidaya\FrekuensiSanitasiLahan;
|
||||
use App\Enums\PraktikBudidaya\PenangananSisaBuahRanting;
|
||||
use App\Enums\PraktikBudidaya\PenangananGulma;
|
||||
use App\Enums\PraktikBudidaya\KondisiPengelolaanAir;
|
||||
use App\Enums\PraktikBudidaya\KebutuhanAirPermusim;
|
||||
use App\Enums\PraktikBudidaya\PemahamanManfaatKonservasi;
|
||||
|
||||
class PraktikBudidayaController extends Controller
|
||||
{
|
||||
@@ -268,4 +277,144 @@ class PraktikBudidayaController extends Controller
|
||||
|
||||
return view('produktivitas.petani.praktik-budidaya.edit', compact('title', 'petani', 'praktikBudidaya', 'teknikPemangkasanLainnya', 'alasanTidakPenyerbukanLainnya', 'frekuensiPemupukanLainnya', 'waktuPemberianPupukLainnya', 'caraPemberianPupukLainnya', 'sumberAirLainnya', 'sistemIrigasiLainnya'));
|
||||
}
|
||||
|
||||
public function update($petaniId, $praktikBudidayaId, Request $request)
|
||||
{
|
||||
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
|
||||
abort(403);
|
||||
}
|
||||
|
||||
// dd($request->all());
|
||||
|
||||
$praktikBudidaya = PraktikBudidaya::where('petani_id', $petaniId)
|
||||
->where('id', $praktikBudidayaId)
|
||||
->firstOrFail();
|
||||
|
||||
$validatedData = $request->validate([
|
||||
// 2.2 Persiapan Lahan & Penanaman
|
||||
'tenaga_kerja' => ['nullable', 'string', new Enum(TenagaKerja::class)],
|
||||
|
||||
// 2.3 Praktik Pemangkasan & Penyerbukan
|
||||
'frekuensi_pemangkasan_komoditas_utama' => ['nullable', 'integer', new Enum(FrekuensiPemangkasanUtama::class)],
|
||||
'teknik_pemangkasan' => ['nullable', 'array'],
|
||||
'teknik_pemangkasan.*' => ['string'],
|
||||
'teknik_pemangkasan_lainnya' => ['nullable', 'string'],
|
||||
'frekuensi_pemangkasan_pohon_penaung' => ['nullable', 'integer', new Enum(FrekuensiPemangkasanPendamping::class)],
|
||||
'penyerbukan_manual' => ['nullable', 'integer', new Enum(PenyerbukanManual::class)],
|
||||
'alasan_tidak_penyerbukan' => ['nullable', 'string'],
|
||||
'alasan_tidak_penyerbukan_lainnya' => ['nullable', 'string'],
|
||||
'tingkat_keberhasilan_penyerbukan' => ['nullable', 'string'],
|
||||
|
||||
// 2.4 Praktik Pemupukan
|
||||
'pemberian_pupuk' => ['nullable', 'integer', new Enum(PemberianPupuk::class)],
|
||||
'jenis_pupuk' => ['nullable', 'integer', new Enum(JenisPupuk::class)],
|
||||
|
||||
'frekuensi_pemupukan' => ['nullable', 'string'],
|
||||
'frekuensi_pemupukan_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'estimasi_dosis_pupuk_organik' => ['nullable', 'numeric'],
|
||||
'estimasi_dosis_pupuk_anorganik' => ['nullable', 'numeric'],
|
||||
|
||||
'waktu_pemberian_pupuk' => ['nullable', 'string'],
|
||||
'waktu_pemberian_pupuk_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'cara_pemberian_pupuk' => ['nullable', 'string'],
|
||||
'cara_pemberian_pupuk_lainnya' => ['nullable', 'string'],
|
||||
|
||||
// 2.5 Pengendalian Organisme Pengganggu Tumbuhan (OPT)
|
||||
'metode_penanganan_hama_penyakit' => ['nullable', 'integer', new Enum(MetodePenangananHamaPenyakit::class)],
|
||||
|
||||
'jenis_hama' => ['nullable', 'array'],
|
||||
|
||||
'jenis_penyakit' => ['nullable', 'array'],
|
||||
|
||||
'intensitas_serangan' => ['nullable', 'string', new Enum(IntensitasSeranganHamaPenyakit::class)],
|
||||
'waktu_kemunculan_terparah' => ['nullable', 'string', new Enum(WaktuKemunculanTerparahHamaPenyakit::class)],
|
||||
|
||||
'metode_paling_sering_dilakukan' => ['nullable', 'string'],
|
||||
|
||||
'volume_obat_obatan_permusim' => ['nullable', 'numeric'],
|
||||
|
||||
// 2.6 Sanitasi Kebun
|
||||
|
||||
'frekuensi_sanitasi_lahan' => ['nullable', 'integer', new Enum(FrekuensiSanitasiLahan::class)],
|
||||
'penanganan_sisa_buah_ranting' => ['nullable', 'string', new Enum(PenangananSisaBuahRanting::class)],
|
||||
'penanganan_gulma' => ['nullable', 'integer', new Enum(PenangananGulma::class)],
|
||||
|
||||
|
||||
// 2.7 Pengelolaan Air & Irigasi
|
||||
|
||||
'kondisi_pengelolaan_air_irigasi' => ['nullable', 'integer', new Enum(KondisiPengelolaanAir::class)],
|
||||
|
||||
'sumber_air' => ['nullable', 'string'],
|
||||
'sumber_air_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'sistem_irigasi' => ['nullable', 'string'],
|
||||
'sistem_irigasi_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'kebutuhan_air_permusim' => ['nullable', 'string', new Enum(KebutuhanAirPermusim::class)],
|
||||
|
||||
'kebiasaan_konservasi_tanah' => ['nullable', 'array'],
|
||||
'kebiasaan_konservasi_tanah.*' => ['string'],
|
||||
|
||||
'pemahaman_manfaat_konservasi' => ['nullable', 'string', new Enum(PemahamanManfaatKonservasi::class)],
|
||||
]);
|
||||
|
||||
$data = [];
|
||||
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
|
||||
if ($request->has('tenaga_kerja')) {
|
||||
$teknik_pemangkasan = $request->teknik_pemangkasan ?? [];
|
||||
if (($key = array_search('Lainnya', $teknik_pemangkasan)) !== false) {
|
||||
unset($teknik_pemangkasan[$key]);
|
||||
if (!empty($request->teknik_pemangkasan_lainnya)) {
|
||||
$teknik_pemangkasan[] = $request->teknik_pemangkasan_lainnya;
|
||||
}
|
||||
}
|
||||
$data = [
|
||||
'tenaga_kerja' => $validatedData['tenaga_kerja'],
|
||||
'frekuensi_pemangkasan_utama' => $validatedData['frekuensi_pemangkasan_komoditas_utama'],
|
||||
|
||||
'teknik_pemangkasan' => array_values($teknikPemangkasan),
|
||||
|
||||
'frekuensi_pemangkasan_penaung' => $validatedData['frekuensi_pemangkasan_pohon_penaung'],
|
||||
'penyerbukan_manual' => $validatedData['penyerbukan_manual'] ?? null,
|
||||
'deskripsi_penyerbukan_manual' => $validatedData['alasan_tidak_penyerbukan'] ?? null,
|
||||
'tingkat_keberhasilan_penyerbukan' => $validatedData['tingkat_keberhasilan_penyerbukan'] ?? null,
|
||||
'pemberian_pupuk' => $validatedData['pemberian_pupuk'] ?? null,
|
||||
'jenis_pupuk' => $validatedData['jenis_pupuk'] ?? null,
|
||||
'frekuensi_pemberian_pupuk' => ($validatedData['frekuensi_pemupukan'] ?? null) === 'Lainnya' ? ($validatedData['frekuensi_pemupukan_lainnya'] ?? null) : ($validatedData['frekuensi_pemupukan'] ?? null),
|
||||
'estimasi_dosis_pupuk_organik' => $validatedData['estimasi_dosis_pupuk_organik'] ?? null,
|
||||
'estimasi_dosis_pupuk_anorganik' => $validatedData['estimasi_dosis_pupuk_anorganik'] ?? null,
|
||||
'waktu_pemberian_pupuk' => ($validatedData['waktu_pemberian_pupuk'] ?? null) === 'Lainnya' ? ($validatedData['waktu_pemberian_pupuk_lainnya'] ?? null) : ($validatedData['waktu_pemberian_pupuk'] ?? null),
|
||||
'cara_pemberian_pupuk' => ($validatedData['cara_pemberian_pupuk'] ?? null) === 'Lainnya' ? ($validatedData['cara_pemberian_pupuk_lainnya'] ?? null) : ($validatedData['cara_pemberian_pupuk'] ?? null),
|
||||
];
|
||||
}
|
||||
|
||||
if ($request->has('metode_penanganan_hama_penyakit')) {
|
||||
$data = [
|
||||
'metode_penanganan_opt' => $validatedData['metode_penanganan_hama_penyakit'] ?? null,
|
||||
'jenis_hama' => $validatedData['jenis_hama'] ?? [],
|
||||
'jenis_penyakit' => $validatedData['jenis_penyakit'] ?? [],
|
||||
'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,
|
||||
'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),
|
||||
'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'] ?? [],
|
||||
'pemahaman_manfaat_konservasi_tanah' => $validatedData['pemahaman_manfaat_konservasi'] ?? null,
|
||||
];
|
||||
}
|
||||
|
||||
$praktikBudidaya->update($data);
|
||||
|
||||
return back()->with('success', 'Data berhasil diperbarui.');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user