update field sosial ekonomi

This commit is contained in:
2026-07-02 14:24:44 +07:00
parent 5c1fe22fa0
commit 5cee65f8df
2 changed files with 139 additions and 11 deletions
@@ -50,6 +50,11 @@
</div>
<h5 class="pb-4 border-bottom mb-4 mt-4">Pendapatan dari Komoditas Utama</h5>
@if($komoditasPetani->isEmpty())
<div class="alert alert-warning">
Petani ini belum memiliki komoditas pada data lahan. Tambahkan data Lahan & Tanaman terlebih dahulu agar pilihan komoditas tersedia.
</div>
@endif
<div class="table-responsive mb-4">
<table class="table table-bordered align-middle">
<thead>
@@ -62,10 +67,16 @@
<tbody>
@for($i = 0; $i < 2; $i++)
@php($item = $pendapatanKomoditasUtama->get($i))
<tr>
<tr class="pendapatan-row" data-group="komoditas-utama" data-row-index="{{ $i }}">
<td>
<input type="hidden" name="pendapatan_komoditas[{{ $i }}][kategori]" value="utama">
<input type="text" class="form-control" name="pendapatan_komoditas[{{ $i }}][komoditas]" value="{{ old("pendapatan_komoditas.$i.komoditas", $item?->komoditas) }}">
@php($selectedKomoditas = old("pendapatan_komoditas.$i.komoditas", $item?->komoditas))
<select class="form-control sosial-ekonomi-komoditas sosial-ekonomi-komoditas-utama pendapatan-trigger" data-kategori="utama" name="pendapatan_komoditas[{{ $i }}][komoditas]">
<option value="">Pilih Komoditas</option>
@foreach($komoditasPetani as $komoditas)
<option value="{{ $komoditas->nama }}" {{ $selectedKomoditas === $komoditas->nama ? 'selected' : '' }}>{{ $komoditas->nama }}</option>
@endforeach
</select>
</td>
<td>
<input type="number" min="0" class="form-control" name="pendapatan_komoditas[{{ $i }}][pendapatan]" value="{{ old("pendapatan_komoditas.$i.pendapatan", $item?->pendapatan) }}">
@@ -97,10 +108,16 @@
@for($i = 0; $i < 2; $i++)
@php($item = $pendapatanKomoditasLainnya->get($i))
@php($index = $i + 2)
<tr>
<tr class="pendapatan-row" data-group="komoditas-lainnya" data-row-index="{{ $i }}">
<td>
<input type="hidden" name="pendapatan_komoditas[{{ $index }}][kategori]" value="lainnya">
<input type="text" class="form-control" name="pendapatan_komoditas[{{ $index }}][komoditas]" value="{{ old("pendapatan_komoditas.$index.komoditas", $item?->komoditas) }}">
@php($selectedKomoditas = old("pendapatan_komoditas.$index.komoditas", $item?->komoditas))
<select class="form-control sosial-ekonomi-komoditas sosial-ekonomi-komoditas-lainnya pendapatan-trigger" data-kategori="lainnya" name="pendapatan_komoditas[{{ $index }}][komoditas]">
<option value="">Pilih Komoditas</option>
@foreach($komoditasPetani as $komoditas)
<option value="{{ $komoditas->nama }}" {{ $selectedKomoditas === $komoditas->nama ? 'selected' : '' }}>{{ $komoditas->nama }}</option>
@endforeach
</select>
</td>
<td>
<input type="number" min="0" class="form-control" name="pendapatan_komoditas[{{ $index }}][pendapatan]" value="{{ old("pendapatan_komoditas.$index.pendapatan", $item?->pendapatan) }}">
@@ -130,9 +147,9 @@
<tbody>
@for($i = 0; $i < 2; $i++)
@php($item = $pendapatanLuarPertanian->get($i))
<tr>
<tr class="pendapatan-row" data-group="luar-pertanian" data-row-index="{{ $i }}">
<td>
<input type="text" class="form-control" name="pendapatan_luar_pertanian[{{ $i }}][jenis_pekerjaan]" value="{{ old("pendapatan_luar_pertanian.$i.jenis_pekerjaan", $item?->jenis_pekerjaan) }}">
<input type="text" class="form-control pendapatan-trigger" name="pendapatan_luar_pertanian[{{ $i }}][jenis_pekerjaan]" value="{{ old("pendapatan_luar_pertanian.$i.jenis_pekerjaan", $item?->jenis_pekerjaan) }}">
</td>
<td>
<input type="number" min="0" class="form-control" name="pendapatan_luar_pertanian[{{ $i }}][estimasi_per_bulan]" value="{{ old("pendapatan_luar_pertanian.$i.estimasi_per_bulan", $item?->estimasi_per_bulan) }}">
@@ -312,7 +329,87 @@
<script>
'use strict';
$(document).ready(function () {
$('#skor-periode-paceklik, #skor-menabung, #skor-kecukupan, #status-kepemilikan-lahan, #skor-kejelasan-lahan, #ada-sertifikat, #ada-sengketa, #pihak-membantu, #status-konflik').select2();
$('#skor-periode-paceklik, #skor-menabung, #skor-kecukupan, #status-kepemilikan-lahan, #skor-kejelasan-lahan, #ada-sertifikat, #ada-sengketa, #pihak-membantu, #status-konflik, .sosial-ekonomi-komoditas').select2();
function syncKomoditasLainnyaOptions() {
const selectedUtama = $('.sosial-ekonomi-komoditas-utama')
.map(function () {
return $(this).val();
})
.get()
.filter(Boolean);
$('.sosial-ekonomi-komoditas-lainnya').each(function () {
const $select = $(this);
const currentValue = $select.val();
$select.find('option').each(function () {
const $option = $(this);
const value = $option.val();
if (!value) {
$option.prop('disabled', false);
return;
}
$option.prop('disabled', selectedUtama.includes(value));
});
if (currentValue && selectedUtama.includes(currentValue)) {
$select.val('').trigger('change.select2');
} else {
$select.trigger('change.select2');
}
});
}
function rowHasValue($row) {
const triggerValue = $row.find('.pendapatan-trigger').first().val();
return Boolean(triggerValue);
}
function syncPendapatanRows(group) {
const $rows = $('.pendapatan-row[data-group="' + group + '"]');
let previousHasValue = true;
$rows.each(function (index) {
const $row = $(this);
const currentHasValue = rowHasValue($row);
if (index === 0 || previousHasValue || currentHasValue) {
$row.removeClass('d-none');
} else {
$row.addClass('d-none');
}
previousHasValue = currentHasValue;
});
}
function syncAllPendapatanRows() {
syncPendapatanRows('komoditas-utama');
syncPendapatanRows('komoditas-lainnya');
syncPendapatanRows('luar-pertanian');
}
function syncPihakMembantuFields() {
const isTidakAda = $('#pihak-membantu').val() === 'Tidak ada-selesaikan sendiri';
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
$fields.prop('disabled', isTidakAda);
if (isTidakAda) {
$fields.val('');
}
}
$('.sosial-ekonomi-komoditas-utama').on('change', syncKomoditasLainnyaOptions);
$('.pendapatan-trigger').on('change keyup', syncAllPendapatanRows);
$('#pihak-membantu').on('change', syncPihakMembantuFields);
syncKomoditasLainnyaOptions();
syncAllPendapatanRows();
syncPihakMembantuFields();
});
</script>
@endpush