From 8fbf68e6efe5141114e37dd7632b34fe47f7d847 Mon Sep 17 00:00:00 2001 From: SyaharaniSalsabilla Date: Tue, 18 Aug 2026 14:05:46 +0700 Subject: [PATCH] solve keanggotaan kelompok tani --- .../Produktivitas/SosialEkonomiController.php | 17 +++++++++++++---- .../petani/sosial-ekonomi/edit.blade.php | 12 ++++++++++-- .../petani/sosial-ekonomi/index.blade.php | 12 ++++++++++-- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php b/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php index a54498f..252fe63 100644 --- a/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php +++ b/app/Http/Controllers/Web/Produktivitas/SosialEkonomiController.php @@ -398,15 +398,17 @@ class SosialEkonomiController extends Controller } if ($section === 'keanggotaan_kelompok') { + $terdaftarKelompokTani = $request->input('terdaftar_kelompok_tani') === TerdaftarKelompokTani::YA->value; + $rules = array_merge($rules, [ 'terdaftar_kelompok_tani' => ['nullable', 'string', Rule::in(TerdaftarKelompokTani::values())], 'nama_kelompok_tani' => ['required_if:terdaftar_kelompok_tani,' . TerdaftarKelompokTani::YA->value, 'nullable', 'string', 'max:255'], 'lama_bergabung_kelompok_tahun' => ['required_if:terdaftar_kelompok_tani,' . TerdaftarKelompokTani::YA->value, 'nullable', 'integer', 'min:0'], 'kedekatan_sesama_anggota' => ['required_if:terdaftar_kelompok_tani,' . TerdaftarKelompokTani::YA->value, 'nullable', 'string', Rule::in(KedekatanSesamaAnggota::values())], - 'keaktifan_pertemuan_kelompok' => ['required', 'integer', Rule::in(KeaktifanPertemuanKelompok::values())], - 'topik_biasa_dibahas' => ['required', 'string'], - 'peran_dalam_kelompok' => ['required', 'integer', Rule::in(PeranDalamKelompok::values())], - 'manfaat_kelompok_tani' => ['required', 'integer', Rule::in(ManfaatKelompokTani::values())], + 'keaktifan_pertemuan_kelompok' => [Rule::requiredIf($terdaftarKelompokTani), 'nullable', 'integer', Rule::in(KeaktifanPertemuanKelompok::values())], + 'topik_biasa_dibahas' => [Rule::requiredIf($terdaftarKelompokTani), 'nullable', 'string'], + 'peran_dalam_kelompok' => [Rule::requiredIf($terdaftarKelompokTani), 'nullable', 'integer', Rule::in(PeranDalamKelompok::values())], + 'manfaat_kelompok_tani' => [Rule::requiredIf($terdaftarKelompokTani), 'nullable', 'integer', Rule::in(ManfaatKelompokTani::values())], 'status_kartu_tani' => ['nullable', 'string', Rule::in(StatusKartuTani::values())], 'bisa_beli_pupuk_bersubsidi' => ['nullable', 'string', Rule::in(BisaBeliPupukBersubsidi::values())], 'manfaat_lain_kartu_tani' => ['nullable', 'string'], @@ -633,6 +635,10 @@ class SosialEkonomiController extends Controller $payload['nama_kelompok_tani'] = null; $payload['lama_bergabung_kelompok_tahun'] = null; $payload['kedekatan_sesama_anggota'] = null; + $payload['keaktifan_pertemuan_kelompok'] = KeaktifanPertemuanKelompok::TIDAK_PERNAH_HADIR->value; + $payload['topik_biasa_dibahas'] = null; + $payload['peran_dalam_kelompok'] = PeranDalamKelompok::ANGGOTA_PASIF->value; + $payload['manfaat_kelompok_tani'] = ManfaatKelompokTani::TIDAK_ADA_MANFAAT->value; } if ( @@ -976,8 +982,11 @@ class SosialEkonomiController extends Controller 'terdaftarKelompokTaniTidakValue' => TerdaftarKelompokTani::TIDAK->value, 'kedekatanSesamaAnggotaOptions' => KedekatanSesamaAnggota::options(), 'keaktifanPertemuanKelompokOptions' => KeaktifanPertemuanKelompok::options(), + 'keaktifanPertemuanKelompokLowestValue' => KeaktifanPertemuanKelompok::TIDAK_PERNAH_HADIR->value, 'peranDalamKelompokOptions' => PeranDalamKelompok::options(), + 'peranDalamKelompokLowestValue' => PeranDalamKelompok::ANGGOTA_PASIF->value, 'manfaatKelompokTaniOptions' => ManfaatKelompokTani::options(), + 'manfaatKelompokTaniLowestValue' => ManfaatKelompokTani::TIDAK_ADA_MANFAAT->value, 'statusKartuTaniOptions' => StatusKartuTani::options(), 'bisaBeliPupukBersubsidiOptions' => BisaBeliPupukBersubsidi::options(), 'statusRekeningTabunganOptions' => StatusRekeningTabungan::options(), diff --git a/resources/views/produktivitas/petani/sosial-ekonomi/edit.blade.php b/resources/views/produktivitas/petani/sosial-ekonomi/edit.blade.php index d5cb7ae..39fd0d9 100644 --- a/resources/views/produktivitas/petani/sosial-ekonomi/edit.blade.php +++ b/resources/views/produktivitas/petani/sosial-ekonomi/edit.blade.php @@ -1064,6 +1064,9 @@ const pernahJualHargaLebihTinggiPernah = @json($pernahJualHargaLebihTinggiPernahValue); const panutanPetaniSuksesTidakAda = String(@json($panutanPetaniSuksesTidakAdaValue)); const terdaftarKelompokTaniYa = @json($terdaftarKelompokTaniYaValue); + const keaktifanPertemuanKelompokLowest = String(@json($keaktifanPertemuanKelompokLowestValue)); + const peranDalamKelompokLowest = String(@json($peranDalamKelompokLowestValue)); + const manfaatKelompokTaniLowest = String(@json($manfaatKelompokTaniLowestValue)); const statusRekeningTidakPunya = String(@json($statusRekeningTidakPunyaValue)); const pengalamanKreditPerluAlasan = @json($pengalamanKreditPerluAlasanValues).map(String); const alasanKreditLainnya = @json($alasanKreditLainnyaValue); @@ -1475,12 +1478,17 @@ function syncTerdaftarKelompokFields() { const isTerdaftar = $('input[name="terdaftar_kelompok_tani"]:checked').val() === terdaftarKelompokTaniYa; - const $fields = $('#nama-kelompok-tani, #lama-bergabung-kelompok, #kedekatan-sesama-anggota'); + const $fields = $('#nama-kelompok-tani, #lama-bergabung-kelompok, #kedekatan-sesama-anggota, #topik-biasa-dibahas') + .add('input[name="keaktifan_pertemuan_kelompok"], input[name="peran_dalam_kelompok"], input[name="manfaat_kelompok_tani"]'); $fields.prop('disabled', !isTerdaftar); if (!isTerdaftar) { - $fields.val(''); + $('#nama-kelompok-tani, #lama-bergabung-kelompok, #topik-biasa-dibahas').val(''); + $('input[name="keaktifan_pertemuan_kelompok"][value="' + keaktifanPertemuanKelompokLowest + '"]').prop('checked', true); + $('input[name="peran_dalam_kelompok"][value="' + peranDalamKelompokLowest + '"]').prop('checked', true); + $('input[name="manfaat_kelompok_tani"][value="' + manfaatKelompokTaniLowest + '"]').prop('checked', true); + $('#kedekatan-sesama-anggota').val(''); $('#kedekatan-sesama-anggota').trigger('change.select2'); } } diff --git a/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php b/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php index b136076..1b1e4b2 100644 --- a/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php +++ b/resources/views/produktivitas/petani/sosial-ekonomi/index.blade.php @@ -1060,6 +1060,9 @@ const pernahJualHargaLebihTinggiPernah = @json($pernahJualHargaLebihTinggiPernahValue); const panutanPetaniSuksesTidakAda = String(@json($panutanPetaniSuksesTidakAdaValue)); const terdaftarKelompokTaniYa = @json($terdaftarKelompokTaniYaValue); + const keaktifanPertemuanKelompokLowest = String(@json($keaktifanPertemuanKelompokLowestValue)); + const peranDalamKelompokLowest = String(@json($peranDalamKelompokLowestValue)); + const manfaatKelompokTaniLowest = String(@json($manfaatKelompokTaniLowestValue)); const statusRekeningTidakPunya = String(@json($statusRekeningTidakPunyaValue)); const pengalamanKreditPerluAlasan = @json($pengalamanKreditPerluAlasanValues).map(String); const alasanKreditLainnya = @json($alasanKreditLainnyaValue); @@ -1471,12 +1474,17 @@ function syncTerdaftarKelompokFields() { const isTerdaftar = $('input[name="terdaftar_kelompok_tani"]:checked').val() === terdaftarKelompokTaniYa; - const $fields = $('#nama-kelompok-tani, #lama-bergabung-kelompok, #kedekatan-sesama-anggota'); + const $fields = $('#nama-kelompok-tani, #lama-bergabung-kelompok, #kedekatan-sesama-anggota, #topik-biasa-dibahas') + .add('input[name="keaktifan_pertemuan_kelompok"], input[name="peran_dalam_kelompok"], input[name="manfaat_kelompok_tani"]'); $fields.prop('disabled', !isTerdaftar); if (!isTerdaftar) { - $fields.val(''); + $('#nama-kelompok-tani, #lama-bergabung-kelompok, #topik-biasa-dibahas').val(''); + $('input[name="keaktifan_pertemuan_kelompok"][value="' + keaktifanPertemuanKelompokLowest + '"]').prop('checked', true); + $('input[name="peran_dalam_kelompok"][value="' + peranDalamKelompokLowest + '"]').prop('checked', true); + $('input[name="manfaat_kelompok_tani"][value="' + manfaatKelompokTaniLowest + '"]').prop('checked', true); + $('#kedekatan-sesama-anggota').val(''); $('#kedekatan-sesama-anggota').trigger('change.select2'); } }