solve keanggotaan kelompok tani

This commit is contained in:
2026-08-18 14:05:46 +07:00
parent ac8b370248
commit 8fbf68e6ef
3 changed files with 33 additions and 8 deletions
@@ -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(),
@@ -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');
}
}
@@ -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');
}
}