Merge branches 'main' and 'main' of https://git.probindo.com/Probindo/database-pertani-web
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
<i class="icon-base ti tabler-trees icon-28px"></i>
|
||||
</span>
|
||||
</div>
|
||||
<h4 class="mb-0">{{ number_format($lahanSummary->sum('luas_lahan'), 0, ',', '.') }}m<sup>2</sup></h4>
|
||||
<h4 class="mb-0">{{ number_format($lahanSummary->sum('luas_lahan') / 10000, 2, ',', '.') }} ha</h4>
|
||||
</div>
|
||||
<p class="mb-1">Lahan</p>
|
||||
<p class="mb-0">
|
||||
@@ -701,4 +701,4 @@
|
||||
radarKomponen.render();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -88,12 +88,13 @@
|
||||
@if($profile)
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-sm btn-icon btn-text-secondary rounded-pill"
|
||||
class="btn btn-sm btn-outline-primary d-inline-flex align-items-center gap-1 px-3"
|
||||
data-bs-toggle="offcanvas"
|
||||
data-bs-target="#editProfileOffcanvas"
|
||||
aria-controls="editProfileOffcanvas"
|
||||
title="Edit profil">
|
||||
<i class="icon-base ti tabler-edit icon-lg"></i>
|
||||
<i class="icon-base ti tabler-edit icon-sm"></i>
|
||||
<span>Edit</span>
|
||||
</button>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@@ -93,34 +93,30 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php($listBentukProduk = ['Buah segar hasil petik', 'Biji basah', 'Biji kering/Biji Kupas', 'Terfermentasi (Rp/kg)'])
|
||||
@php($hargaJualPanen = $hargaJualPanen ?? collect())
|
||||
|
||||
@foreach ($listBentukProduk as $index => $bentuk)
|
||||
@php($existingData = $hargaJualPanen->firstWhere('bentuk_produk', $bentuk))
|
||||
@foreach ($hargaJualRows as $row)
|
||||
<tr>
|
||||
<td>
|
||||
<input type="hidden" name="harga_jual[{{ $index }}][bentuk_produk]" value="{{ $bentuk }}">
|
||||
<strong>{{ $bentuk }}:</strong>
|
||||
<input type="hidden" name="harga_jual[{{ $row['index'] }}][bentuk_produk]" value="{{ $row['bentuk'] }}">
|
||||
<strong>{{ $row['bentuk'] }}:</strong>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input type="number" min="0" class="form-control" name="harga_jual[{{ $index }}][harga_panen_terakhir]" value="{{ old('harga_jual.' . $index . '.harga_panen_terakhir', $existingData?->harga_panen_terakhir) }}">
|
||||
<input type="text" inputmode="numeric" class="form-control rupiah-input" name="harga_jual[{{ $row['index'] }}][harga_panen_terakhir]" value="{{ old('harga_jual.' . $row['index'] . '.harga_panen_terakhir', $row['harga_panen_terakhir']) }}" placeholder="Contoh: 12.000">
|
||||
<span class="input-group-text">/kg</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input type="number" min="0" class="form-control" name="harga_jual[{{ $index }}][harga_tahun_lalu]" value="{{ old('harga_jual.' . $index . '.harga_tahun_lalu', $existingData?->harga_tahun_lalu) }}">
|
||||
<input type="text" inputmode="numeric" class="form-control rupiah-input" name="harga_jual[{{ $row['index'] }}][harga_tahun_lalu]" value="{{ old('harga_jual.' . $row['index'] . '.harga_tahun_lalu', $row['harga_tahun_lalu']) }}" placeholder="Contoh: 10.000">
|
||||
<span class="input-group-text">/kg</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input type="number" min="0" class="form-control" name="harga_jual[{{ $index }}][harga_dua_tahun_lalu]" value="{{ old('harga_jual.' . $index . '.harga_dua_tahun_lalu', $existingData?->harga_dua_tahun_lalu) }}">
|
||||
<input type="text" inputmode="numeric" class="form-control rupiah-input" name="harga_jual[{{ $row['index'] }}][harga_dua_tahun_lalu]" value="{{ old('harga_jual.' . $row['index'] . '.harga_dua_tahun_lalu', $row['harga_dua_tahun_lalu']) }}" placeholder="Contoh: 8.000">
|
||||
<span class="input-group-text">/kg</span>
|
||||
</div>
|
||||
</td>
|
||||
@@ -232,6 +228,16 @@
|
||||
const praktikBelumPernahValue = String(@json($praktikBelumPernahValue));
|
||||
const skorPengalamanBerhentiValues = @json($skorPengalamanBerhentiValues ?? [2,3]).map(Number);
|
||||
|
||||
function onlyDigits(value) {
|
||||
return String(value || '').replace(/\D/g, '');
|
||||
}
|
||||
|
||||
function formatRupiah(value) {
|
||||
const digits = onlyDigits(value);
|
||||
|
||||
return digits.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||
}
|
||||
|
||||
function syncAlasanBerhenti() {
|
||||
const val = Number($('input[name="skor_pengalaman"]:checked').val());
|
||||
const isBerhenti = skorPengalamanBerhentiValues.includes(val);
|
||||
@@ -256,10 +262,21 @@
|
||||
$('input[name="skor_pengalaman"]').on('change', syncAlasanBerhenti);
|
||||
$('input[name="saluran_terdahulu[]"]').on('change', syncSaluranLainnya);
|
||||
$('input[name="praktik_fermentasi"]').on('change', syncPraktikFermentasi);
|
||||
$(document).on('input', '.rupiah-input', function () {
|
||||
const cursorAtEnd = this.selectionStart === this.value.length;
|
||||
this.value = formatRupiah(this.value);
|
||||
|
||||
if (cursorAtEnd) {
|
||||
this.setSelectionRange(this.value.length, this.value.length);
|
||||
}
|
||||
});
|
||||
$('.rupiah-input').each(function () {
|
||||
this.value = formatRupiah(this.value);
|
||||
});
|
||||
|
||||
syncAlasanBerhenti();
|
||||
syncSaluranLainnya();
|
||||
syncPraktikFermentasi();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -92,7 +92,13 @@
|
||||
? $petani->lahans()->get()
|
||||
: collect();
|
||||
$totalLuasLahan = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0;
|
||||
$totalTanaman = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('jumlah_tanaman') : 0;
|
||||
$totalLuasLahanHa = $totalLuasLahan / 10000;
|
||||
$lahanKomoditasUtamaIds = $petani
|
||||
? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->pluck('id')
|
||||
: collect();
|
||||
$totalTanaman = $petani && \Illuminate\Support\Facades\Schema::hasTable('map_tanaman')
|
||||
? \App\Models\Pertanian\Tanaman::whereIn('lahan_id', $lahanKomoditasUtamaIds)->count()
|
||||
: 0;
|
||||
$pendidikanLabel = isset($petani) ? $petani->pendidikan_terakhir?->label() : null;
|
||||
|
||||
@endphp
|
||||
@@ -126,7 +132,7 @@
|
||||
<p class="mb-0 text-muted" style="font-size: 0.75rem;">Lahan & Tanaman</p>
|
||||
<h5 class="mb-0">
|
||||
@if($lahanPetani->isNotEmpty())
|
||||
{{ number_format($totalLuasLahan, 0, ',', '.') }} m<sup>2</sup>
|
||||
{{ number_format($totalLuasLahanHa, 2, ',', '.') }} ha
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<div class="w-25">
|
||||
<x-summary-card
|
||||
title="Lahan & Tanaman"
|
||||
count="{{ number_format($lahan?->sum('luas_lahan'), 0, ',', '.') }}m<sup>2</sup>"
|
||||
count="{{ number_format(($lahan?->sum('luas_lahan') ?? 0) / 10000, 2, ',', '.') }} ha"
|
||||
subtitle="{{ $tanaman?->count() }} tanaman dari {{ $komoditas?->count() }} komoditas utama"
|
||||
icon="trees"
|
||||
color="success"
|
||||
|
||||
@@ -163,6 +163,10 @@
|
||||
z-index: 100000 !important;
|
||||
}
|
||||
.foto-lightbox-close:hover { color: #dc3545 !important; }
|
||||
.auto-pest-disease-field .form-check-label,
|
||||
.auto-pest-disease-field .text-muted {
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@@ -203,8 +207,8 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
<label class="form-label">Luas Lahan (m2) <span class="text-danger">*</span></label>
|
||||
<input type="number" step="0.01" id="luas_lahan" name="luas_lahan" class="form-control @error('luas_lahan') is-invalid @enderror" placeholder="Contoh: 1.5" required />
|
||||
<label class="form-label">Luas Lahan (ha) <span class="text-danger">*</span></label>
|
||||
<input type="number" id="luas_lahan" name="luas_lahan" class="form-control @error('luas_lahan') is-invalid @enderror" placeholder="Contoh: 1.5" required />
|
||||
@error('luas_lahan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
@@ -247,17 +251,134 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
<div class="col-md-6 mb-3 form-control-validation">
|
||||
<label class="form-label">Kondisi Umum Tanaman <span class="text-danger">*</span></label>
|
||||
<select id="kondisi_tanaman" name="kondisi_tanaman" class="form-select @error('kondisi_tanaman') is-invalid @enderror">
|
||||
<option value="">Pilih Kondisi Tanaman</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman') == \App\Enums\KondisiTanaman::BAIK ? 'selected' : '' }}>Baik</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman') == \App\Enums\KondisiTanaman::SEDANG ? 'selected' : '' }}>Sedang</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman') == \App\Enums\KondisiTanaman::BURUK ? 'selected' : '' }}>Buruk</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman') == \App\Enums\KondisiTanaman::BAIK ? 'selected' : '' }}>{{ \App\Enums\KondisiTanaman::BAIK->label() }}</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman') == \App\Enums\KondisiTanaman::SEDANG ? 'selected' : '' }}>{{ \App\Enums\KondisiTanaman::SEDANG->label() }}</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman') == \App\Enums\KondisiTanaman::BURUK ? 'selected' : '' }}>{{ \App\Enums\KondisiTanaman::BURUK->label() }}</option>
|
||||
</select>
|
||||
@error('kondisi_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-4 form-control-validation auto-pest-disease-field">
|
||||
<label class="form-label">Jenis Hama</label>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Penggerek buah"
|
||||
id="jenis-hama-penggerek-buah"
|
||||
{{ in_array('Penggerek buah', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Penggerek buah</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Penggerek batang"
|
||||
id="jenis-hama-penggerek-batang"
|
||||
{{ in_array('Penggerek batang', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Penggerek batang</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Kutu putih/kutu sisik"
|
||||
id="jenis-hama-kutu"
|
||||
{{ in_array('Kutu putih/kutu sisik', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Kutu putih/kutu sisik</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Ulat pemakan daun"
|
||||
id="jenis-hama-ulat"
|
||||
{{ in_array('Ulat pemakan daun', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Ulat pemakan daun</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Tikus"
|
||||
id="jenis-hama-tikus"
|
||||
{{ in_array('Tikus', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Tikus</label>
|
||||
</div>
|
||||
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis di Praktik Budidaya</small>
|
||||
@error('jenis_hama')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-4 form-control-validation auto-pest-disease-field">
|
||||
<label class="form-label">Jenis Penyakit</label>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Karat daun"
|
||||
id="jenis-penyakit-karat-daun"
|
||||
{{ in_array('Karat daun', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Karat daun</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Busuk buah/antraknosa"
|
||||
id="jenis-penyakit-busuk-buah"
|
||||
{{ in_array('Busuk buah/antraknosa', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Busuk buah/antraknosa</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Busuk akar"
|
||||
id="jenis-penyakit-busuk-akar"
|
||||
{{ in_array('Busuk akar', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Busuk akar</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Bercak daun"
|
||||
id="jenis-penyakit-bercak-daun"
|
||||
{{ in_array('Bercak daun', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Bercak daun</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Layu fusarium"
|
||||
id="jenis-penyakit-layu-fusarium"
|
||||
{{ in_array('Layu fusarium', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Layu fusarium</label>
|
||||
</div>
|
||||
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis di praktik budidaya</small>
|
||||
|
||||
@error('jenis_penyakit')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<!-- <div class="col-md-3 mb-3 form-control-validation">
|
||||
<label class="form-label">Serangan Hama</label>
|
||||
<select id="serangan_hama" name="serangan_hama" class="form-select @error('serangan_hama') is-invalid @enderror">
|
||||
<option value="">Pilih Serangan Hama</option>
|
||||
@@ -276,14 +397,14 @@
|
||||
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman') == \App\Enums\PenyakitTanaman::DAUN_BERCAK ? 'selected' : '' }}>Daun Bercak</option>
|
||||
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman') == \App\Enums\PenyakitTanaman::TANAMAN_LAYU ? 'selected' : '' }}>Tanaman Layu</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
</div> -->
|
||||
<div class="col-md-6 mb-3 form-control-validation">
|
||||
<label class="form-label">Keparahan Serangan Hama/Penyakit</label>
|
||||
<select id="keparahan_serangan" name="keparahan_serangan" class="form-select @error('keparahan_serangan') is-invalid @enderror">
|
||||
<option value="">Pilih Keparahan Serangan</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan') == \App\Enums\KeparahanSerangan::RINGAN ? 'selected' : '' }}>Ringan</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan') == \App\Enums\KeparahanSerangan::SEDANG ? 'selected' : '' }}>Sedang</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan') == \App\Enums\KeparahanSerangan::BERAT ? 'selected' : '' }}>Berat</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan') == \App\Enums\KeparahanSerangan::RINGAN ? 'selected' : '' }}>{{ \App\Enums\KeparahanSerangan::RINGAN->label() }}</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan') == \App\Enums\KeparahanSerangan::SEDANG ? 'selected' : '' }}>{{ \App\Enums\KeparahanSerangan::SEDANG->label() }}</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan') == \App\Enums\KeparahanSerangan::BERAT ? 'selected' : '' }}>{{ \App\Enums\KeparahanSerangan::BERAT->label() }}</option>
|
||||
</select>
|
||||
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
@@ -657,9 +778,9 @@
|
||||
|
||||
let area = L.GeometryUtil.geodesicArea(latlngs);
|
||||
|
||||
console.log(area);
|
||||
let areaHa = area / 10000;
|
||||
|
||||
$('#luas_lahan').val(area.toFixed(2));
|
||||
$('#luas_lahan').val(areaHa.toFixed(4));
|
||||
}
|
||||
|
||||
const previewTemplate = `
|
||||
@@ -815,7 +936,7 @@
|
||||
let originalText = submitBtn.html();
|
||||
submitBtn.prop('disabled', true).html('<i class="ti tabler-loader fa-spin me-2"></i> Menyimpan...');
|
||||
|
||||
$.ajax({
|
||||
$.ajax({
|
||||
url: $(form).attr('action'),
|
||||
type: "POST",
|
||||
data: formData,
|
||||
@@ -833,7 +954,7 @@
|
||||
showConfirmButton: false,
|
||||
timer: 1500
|
||||
}).then(() => {
|
||||
window.location.href = "{{ route('petani.index') }}";
|
||||
window.location.href = res.redirect || window.location.href;
|
||||
});
|
||||
},
|
||||
error: function(xhr) {
|
||||
@@ -870,4 +991,4 @@
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -34,6 +34,10 @@
|
||||
.foto-lightbox img { max-width: 90vw !important; max-height: 85vh !important; object-fit: contain !important; border-radius: 8px !important; box-shadow: 0 10px 40px rgba(0,0,0,0.5) !important; }
|
||||
.foto-lightbox-close { position: absolute !important; top: 20px !important; right: 30px !important; color: #fff !important; font-size: 40px !important; font-weight: bold !important; cursor: pointer !important; z-index: 100000 !important; }
|
||||
.foto-lightbox-close:hover { color: #dc3545 !important; }
|
||||
.auto-pest-disease-field .form-check-label,
|
||||
.auto-pest-disease-field .text-muted {
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@@ -73,7 +77,7 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
<label class="form-label">Luas Lahan (m2) <span class="text-danger">*</span></label>
|
||||
<label class="form-label">Luas Lahan (ha) <span class="text-danger">*</span></label>
|
||||
<input type="number" step="0.01" id="luas_lahan" name="luas_lahan" class="form-control @error('luas_lahan') is-invalid @enderror" placeholder="Contoh: 1.5" required
|
||||
value="{{ old('luas_lahan', $lahanSelected->luas_lahan) }}" />
|
||||
@error('luas_lahan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
@@ -129,17 +133,19 @@
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
<div class="col-md-6 mb-3 form-control-validation">
|
||||
<label class="form-label">Kondisi Umum Tanaman</label>
|
||||
<select id="kondisi_tanaman" name="kondisi_tanaman" class="form-select @error('kondisi_tanaman') is-invalid @enderror">
|
||||
<option value="">Pilih Kondisi Tanaman</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK ? 'selected' : '' }}>Baik</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG ? 'selected' : '' }}>Sedang</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK ? 'selected' : '' }}>Buruk</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK ? 'selected' : '' }}>{{ \App\Enums\KondisiTanaman::BAIK->label() }}</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG ? 'selected' : '' }}>{{ \App\Enums\KondisiTanaman::SEDANG->label() }}</option>
|
||||
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK ? 'selected' : '' }}>{{ \App\Enums\KondisiTanaman::BURUK->label() }}</option>
|
||||
</select>
|
||||
@error('kondisi_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
</div>
|
||||
<div class="row">
|
||||
<!-- <div class="col-md-3 mb-3 form-control-validation">
|
||||
<label class="form-label">Serangan Hama</label>
|
||||
<select id="serangan_hama" name="serangan_hama" class="form-select @error('serangan_hama') is-invalid @enderror">
|
||||
<option value="">Pilih Serangan Hama</option>
|
||||
@@ -158,14 +164,129 @@
|
||||
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK ? 'selected' : '' }}>Daun Bercak</option>
|
||||
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU ? 'selected' : '' }}>Tanaman Layu</option>
|
||||
</select>
|
||||
</div> -->
|
||||
<div class="col-md-3 mb-4 form-control-validation auto-pest-disease-field">
|
||||
<label class="form-label">Jenis Hama</label>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Penggerek buah"
|
||||
id="jenis-hama-penggerek-buah"
|
||||
{{ in_array('Penggerek buah', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Penggerek buah</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Penggerek batang"
|
||||
id="jenis-hama-penggerek-batang"
|
||||
{{ in_array('Penggerek batang', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Penggerek batang</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Kutu putih/kutu sisik"
|
||||
id="jenis-hama-kutu"
|
||||
{{ in_array('Kutu putih/kutu sisik', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Kutu putih/kutu sisik</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Ulat pemakan daun"
|
||||
id="jenis-hama-ulat"
|
||||
{{ in_array('Ulat pemakan daun', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Ulat pemakan daun</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_hama[]"
|
||||
value="Tikus"
|
||||
id="jenis-hama-tikus"
|
||||
{{ in_array('Tikus', $jenisHamaOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-hama-bentuk">Tikus</label>
|
||||
</div>
|
||||
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis di praktik budidaya</small>
|
||||
@error('jenis_hama')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-3 form-control-validation">
|
||||
<div class="col-md-3 mb-4 form-control-validation auto-pest-disease-field">
|
||||
<label class="form-label">Jenis Penyakit</label>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Karat daun"
|
||||
id="jenis-penyakit-karat-daun"
|
||||
{{ in_array('Karat daun', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Karat daun</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Busuk buah/antraknosa"
|
||||
id="jenis-penyakit-busuk-buah"
|
||||
{{ in_array('Busuk buah/antraknosa', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Busuk buah/antraknosa</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Busuk akar"
|
||||
id="jenis-penyakit-busuk-akar"
|
||||
{{ in_array('Busuk akar', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Busuk akar</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Bercak daun"
|
||||
id="jenis-penyakit-bercak-daun"
|
||||
{{ in_array('Bercak daun', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Bercak daun</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror" disabled
|
||||
type="checkbox"
|
||||
name="jenis_penyakit[]"
|
||||
value="Layu fusarium"
|
||||
id="jenis-penyakit-layu-fusarium"
|
||||
{{ in_array('Layu fusarium', $jenisPenyakitOtomatis ?? [], true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="jenis-penyakit-bentuk">Layu fusarium</label>
|
||||
</div>
|
||||
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis di Praktik Budidaya</small>
|
||||
|
||||
@error('jenis_penyakit')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-6 mb-3 form-control-validation">
|
||||
<label class="form-label">Keparahan Serangan Hama/Penyakit</label>
|
||||
<select id="keparahan_serangan" name="keparahan_serangan" class="form-select @error('keparahan_serangan') is-invalid @enderror">
|
||||
<option value="">Pilih Keparahan Serangan</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::RINGAN ? 'selected' : '' }}>Ringan</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG ? 'selected' : '' }}>Sedang</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT ? 'selected' : '' }}>Berat</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::RINGAN }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::RINGAN ? 'selected' : '' }}>{{ \App\Enums\KeparahanSerangan::RINGAN->label() }}</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG ? 'selected' : '' }}>{{ \App\Enums\KeparahanSerangan::SEDANG->label() }}</option>
|
||||
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT ? 'selected' : '' }}>{{ \App\Enums\KeparahanSerangan::BERAT->label() }}</option>
|
||||
</select>
|
||||
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
@@ -286,6 +407,7 @@
|
||||
<div class="row mt-3">
|
||||
<div class="col-12 text-end">
|
||||
<a href="{{ route('petani.index') }}" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
|
||||
<button id="delete-lahan"type="button" class="btn btn-danger data-submit wave-effect wave-light"><i class="ti tabler-trash me-2"></i> Hapus Lahan</button>
|
||||
<button type="submit" class="btn btn-success data-submit wave-effect wave-light"><i class="ti tabler-device-floppy me-2"></i> Simpan Lahan</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -702,7 +824,8 @@
|
||||
});
|
||||
document.getElementById('path').value = JSON.stringify(pathData);
|
||||
let area = L.GeometryUtil.geodesicArea(latlngs);
|
||||
$('#luas_lahan').val(area.toFixed(2));
|
||||
let areaHa = area / 10000;
|
||||
$('#luas_lahan').val(areaHa.toFixed(4));
|
||||
}
|
||||
|
||||
const previewTemplate = `
|
||||
@@ -900,7 +1023,7 @@
|
||||
showConfirmButton: false,
|
||||
timer: 1500
|
||||
}).then(() => {
|
||||
window.location.href = "{{ route('petani.index') }}";
|
||||
window.location.href = res.redirect || window.location.href;
|
||||
});
|
||||
},
|
||||
error: function(xhr) {
|
||||
@@ -937,8 +1060,31 @@
|
||||
}
|
||||
});
|
||||
|
||||
$('#delete-lahan').click(function(e) {
|
||||
e.preventDefault();
|
||||
$.ajax({
|
||||
url: "{{ route('petani.lahan-tanaman.destroy', ['petani' => $petani->id, 'lahan_tanaman' => $lahanSelected->id]) }}",
|
||||
type: "POST",
|
||||
data: {
|
||||
_method: 'DELETE',
|
||||
_token: $('input[name="_token"]').val()
|
||||
},
|
||||
success: function(res) {
|
||||
Swal.fire({
|
||||
icon: 'success',
|
||||
title: 'Berhasil!',
|
||||
text: 'Data lahan berhasil dihapus.',
|
||||
showConfirmButton: false,
|
||||
timer: 1500
|
||||
}).then(() => {
|
||||
window.location.href = "{{ route('petani.lahan-tanaman.index', ['petani' => $petani->id]) }}";
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
initWilayah();
|
||||
initKomoditas();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -29,6 +29,11 @@
|
||||
white-space: nowrap !important;
|
||||
line-height: 1.5 !important;
|
||||
}
|
||||
|
||||
#section-pelatihan,
|
||||
#section-sertifikasi {
|
||||
scroll-margin-top: 96px;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@@ -51,7 +56,7 @@
|
||||
<div class="col-md-12">
|
||||
|
||||
@include('produktivitas.petani.header', ['petani' => $petani])
|
||||
<div class="card mb-6">
|
||||
<div class="card mb-6" id="section-pelatihan">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">
|
||||
Riwayat Pelatihan
|
||||
@@ -83,6 +88,7 @@
|
||||
class="delete-db-form">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<input type="hidden" name="redirect_fragment" value="section-pelatihan">
|
||||
|
||||
<button type="submit" class="btn btn-outline-danger">
|
||||
<i class="icon-base ti tabler-trash icon-sm"></i>
|
||||
@@ -101,6 +107,7 @@
|
||||
action="{{ route('petani.pendidikan-pelatihan.pelatihan.store', $petani->id) }}"
|
||||
class="form-repeater-pelatihan">
|
||||
@csrf
|
||||
<input type="hidden" name="redirect_fragment" value="section-sertifikasi">
|
||||
|
||||
<div data-repeater-list="riwayat_pelatihan">
|
||||
<div data-repeater-item>
|
||||
@@ -170,7 +177,7 @@
|
||||
</div>
|
||||
|
||||
{{-- SERTIFIKASI KEAHLIAN --}}
|
||||
<div class="card mb-6">
|
||||
<div class="card mb-6" id="section-sertifikasi">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">
|
||||
Sertifikasi Keahlian
|
||||
@@ -231,9 +238,10 @@
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('petani.pendidikan-pelatihan.sertifikasi.destroy', [$petani->id, $row->id]) }}"
|
||||
class="delete-db-form">
|
||||
class="delete-db-form">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<input type="hidden" name="redirect_fragment" value="section-sertifikasi">
|
||||
|
||||
<button type="submit" class="btn btn-outline-danger">
|
||||
<i class="icon-base ti tabler-trash icon-sm"></i>
|
||||
@@ -252,6 +260,7 @@
|
||||
action="{{ route('petani.pendidikan-pelatihan.sertifikasi.store', $petani->id) }}"
|
||||
class="form-repeater-sertifikasi">
|
||||
@csrf
|
||||
<input type="hidden" name="redirect_fragment" value="section-sertifikasi">
|
||||
|
||||
<div data-repeater-list="sertifikasi">
|
||||
<div data-repeater-item>
|
||||
@@ -536,4 +545,4 @@ $(function () {
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -517,6 +517,57 @@
|
||||
$(document).ready(function () {
|
||||
|
||||
$('#tenaga-kerja, #frekuensi-pemangkasan-komoditas-utama, #frekuensi-pemangkasan-pohon-penaung, #penyerbukan-manual, #pemberian-pupuk, #jenis-pupuk').select2();
|
||||
|
||||
function syncTeknikPemangkasanState() {
|
||||
const tidakPernahMemangkas = $('#frekuensi-pemangkasan-komoditas-utama').val() === '{{ \App\Enums\PraktikBudidaya\FrekuensiPemangkasanUtama::TIDAK_PERNAH->value }}';
|
||||
const $teknikInputs = $('input[name="teknik_pemangkasan[]"]');
|
||||
const $lainnyaInput = $('#input-teknik-pemangkasan-lainnya');
|
||||
|
||||
$teknikInputs
|
||||
.prop('disabled', tidakPernahMemangkas)
|
||||
.closest('.form-check')
|
||||
.toggleClass('opacity-50', tidakPernahMemangkas);
|
||||
|
||||
if (tidakPernahMemangkas) {
|
||||
$teknikInputs.prop('checked', false);
|
||||
$lainnyaInput.val('');
|
||||
}
|
||||
|
||||
$lainnyaInput.prop('disabled', tidakPernahMemangkas || !$('#teknik-pemangkasan-lainnya').is(':checked'));
|
||||
}
|
||||
|
||||
$('#frekuensi-pemangkasan-komoditas-utama, #teknik-pemangkasan-lainnya').on('change select2:select select2:clear', syncTeknikPemangkasanState);
|
||||
syncTeknikPemangkasanState();
|
||||
|
||||
function syncPemupukanState() {
|
||||
const tidakPernahMemberiPupuk = $('#pemberian-pupuk').val() === '{{ \App\Enums\PraktikBudidaya\PemberianPupuk::TIDAK_PERNAH->value }}';
|
||||
const $pemupukanFields = $(
|
||||
'#jenis-pupuk, ' +
|
||||
'input[name="frekuensi_pemupukan"], #input-frekuensi-pemupukan-lainnya, ' +
|
||||
'#estimasi-dosis-pupuk-organik, #estimasi-dosis-pupuk-anorganik, ' +
|
||||
'input[name="waktu_pemberian_pupuk"], #input-waktu-pemberian-pupuk-lainnya, ' +
|
||||
'input[name="cara_pemberian_pupuk"], #input-cara-pemberian-pupuk-lainnya'
|
||||
);
|
||||
|
||||
$pemupukanFields
|
||||
.prop('disabled', tidakPernahMemberiPupuk)
|
||||
.closest('.form-check, .form-control-validation')
|
||||
.toggleClass('opacity-50', tidakPernahMemberiPupuk);
|
||||
|
||||
if (tidakPernahMemberiPupuk) {
|
||||
$('#jenis-pupuk').val('').trigger('change.select2');
|
||||
$('input[name="frekuensi_pemupukan"], input[name="waktu_pemberian_pupuk"], input[name="cara_pemberian_pupuk"]').prop('checked', false);
|
||||
$('#input-frekuensi-pemupukan-lainnya, #estimasi-dosis-pupuk-organik, #estimasi-dosis-pupuk-anorganik, #input-waktu-pemberian-pupuk-lainnya, #input-cara-pemberian-pupuk-lainnya').val('');
|
||||
} else {
|
||||
$('#input-frekuensi-pemupukan-lainnya').prop('disabled', !$('input[data-target="#input-frekuensi-pemupukan-lainnya"]').is(':checked'));
|
||||
$('#input-waktu-pemberian-pupuk-lainnya').prop('disabled', !$('input[data-target="#input-waktu-pemberian-pupuk-lainnya"]').is(':checked'));
|
||||
$('#input-cara-pemberian-pupuk-lainnya').prop('disabled', !$('input[data-target="#input-cara-pemberian-pupuk-lainnya"]').is(':checked'));
|
||||
}
|
||||
}
|
||||
|
||||
$('#pemberian-pupuk').on('change select2:select select2:clear', syncPemupukanState);
|
||||
syncPemupukanState();
|
||||
setTimeout(syncPemupukanState, 0);
|
||||
|
||||
const $switch = $('input[name="disimpan_untuk_diri_sendiri"]');
|
||||
const $text = $('#switch-text');
|
||||
@@ -636,6 +687,35 @@
|
||||
trigger.addEventListener('change', toggleInput);
|
||||
toggleInput();
|
||||
});
|
||||
|
||||
const frekuensiPemangkasan = document.getElementById('frekuensi-pemangkasan-komoditas-utama');
|
||||
const teknikPemangkasanInputs = document.querySelectorAll('input[name="teknik_pemangkasan[]"]');
|
||||
const teknikPemangkasanLainnya = document.getElementById('input-teknik-pemangkasan-lainnya');
|
||||
|
||||
function toggleTeknikPemangkasan() {
|
||||
const tidakPernahMemangkas = frekuensiPemangkasan && frekuensiPemangkasan.value === '{{ \App\Enums\PraktikBudidaya\FrekuensiPemangkasanUtama::TIDAK_PERNAH->value }}';
|
||||
|
||||
teknikPemangkasanInputs.forEach(function (input) {
|
||||
input.disabled = tidakPernahMemangkas;
|
||||
input.closest('.form-check')?.classList.toggle('opacity-50', tidakPernahMemangkas);
|
||||
|
||||
if (tidakPernahMemangkas) {
|
||||
input.checked = false;
|
||||
}
|
||||
});
|
||||
|
||||
if (teknikPemangkasanLainnya) {
|
||||
teknikPemangkasanLainnya.disabled = tidakPernahMemangkas || !document.getElementById('teknik-pemangkasan-lainnya')?.checked;
|
||||
|
||||
if (tidakPernahMemangkas) {
|
||||
teknikPemangkasanLainnya.value = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
frekuensiPemangkasan?.addEventListener('change', toggleTeknikPemangkasan);
|
||||
document.getElementById('teknik-pemangkasan-lainnya')?.addEventListener('change', toggleTeknikPemangkasan);
|
||||
toggleTeknikPemangkasan();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -39,7 +39,8 @@
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<div class="card mb-6">
|
||||
<input type="hidden" name="redirect_fragment" value="section-opt">
|
||||
<div class="card mb-6" id="section-praktik-pemupukan">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">Persiapan Lahan & Tanaman</h5>
|
||||
<div class="row">
|
||||
@@ -541,8 +542,9 @@
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<input type="hidden" name="redirect_fragment" value="section-biaya-produksi">
|
||||
|
||||
<div class="card mb-6">
|
||||
<div class="card mb-6" id="section-opt">
|
||||
<div class="card-body pt-12">
|
||||
<!-- INFORMASI PETANI -->
|
||||
<h5 class="pb-4 border-bottom mb-4">Pengendalian Organisme Pengganggu Tumbuhan (OPT)</h5>
|
||||
@@ -1048,7 +1050,8 @@
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<div class="card mb-6">
|
||||
<input type="hidden" name="redirect_fragment" value="section-penanganan-panen">
|
||||
<div class="card mb-6" id="section-biaya-produksi">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">Struktur Biaya Produksi Permusim</h5>
|
||||
<div class="row">
|
||||
@@ -1360,7 +1363,8 @@
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<div class="card mb-6">
|
||||
<input type="hidden" name="redirect_fragment" value="section-produktivitas">
|
||||
<div class="card mb-6" id="section-penanganan-panen">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">Penanganan Awal Setelah Panen</h5>
|
||||
<div class="row">
|
||||
@@ -1546,7 +1550,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="card mb-6">
|
||||
<div class="card mb-6" id="section-produktivitas">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">
|
||||
Produktivitas Rata-rata 3 Musim Panen Terakhir per Komoditas
|
||||
@@ -1579,6 +1583,7 @@
|
||||
<form method="POST" action="{{ route('petani.survey-produktivitas.destroy', [$petani->id, $row->id]) }}">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<input type="hidden" name="redirect_fragment" value="section-produktivitas">
|
||||
<button type="submit" class="btn btn-outline-danger">
|
||||
<i class="icon-base ti tabler-trash icon-sm"></i>
|
||||
</button>
|
||||
@@ -1593,6 +1598,7 @@
|
||||
action="{{ route('petani.survey-produktivitas.store', $petani->id) }}"
|
||||
class="form-repeater">
|
||||
@csrf
|
||||
<input type="hidden" name="redirect_fragment" value="section-kehilangan-hasil">
|
||||
|
||||
<div data-repeater-list="produktivitas_komoditas">
|
||||
<div data-repeater-item>
|
||||
@@ -1657,7 +1663,8 @@
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<div class="card mb-6">
|
||||
<input type="hidden" name="redirect_fragment" value="section-kehilangan-hasil">
|
||||
<div class="card mb-6" id="section-kehilangan-hasil">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">Kehilangan Hasil Akibat Organisme Pengganggu Tumbuhan (OPT)</h5>
|
||||
<div class="row">
|
||||
@@ -1706,12 +1713,76 @@
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts-head')
|
||||
<style>
|
||||
#section-praktik-pemupukan,
|
||||
#section-opt,
|
||||
#section-biaya-produksi,
|
||||
#section-penanganan-panen,
|
||||
#section-produktivitas,
|
||||
#section-kehilangan-hasil {
|
||||
scroll-margin-top: 96px;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
'use strict';
|
||||
$(document).ready(function () {
|
||||
|
||||
$('#tenaga-kerja, #frekuensi-pemangkasan-komoditas-utama, #frekuensi-pemangkasan-pohon-penaung, #penyerbukan-manual, #pemberian-pupuk, #jenis-pupuk, #metode-penanganan-hama-penyakit, #intensitas-serangan, #waktu-kemunculan-terparah, #frekuensi-sanitasi-lahan, #penanganan-sisa-buah-ranting, #penanganan-gulma, #kondisi-pengelolaan-air-irigasi, #kebutuhan-air-permusim, #pemahaman-manfaat-konservasi, #dasar-penentuan-panen, #praktik-sortasi, #bentuk-sortasi, #estimasi-kehilangan-akibat-opt, #tingkat-reject, #tindakan-hasil-reject, #estimasi-kehilangan-akibat-hama, #komoditas-id').select2();
|
||||
|
||||
function syncTeknikPemangkasanState() {
|
||||
const tidakPernahMemangkas = $('#frekuensi-pemangkasan-komoditas-utama').val() === '{{ \App\Enums\PraktikBudidaya\FrekuensiPemangkasanUtama::TIDAK_PERNAH->value }}';
|
||||
const $teknikInputs = $('input[name="teknik_pemangkasan[]"]');
|
||||
const $lainnyaInput = $('#input-teknik-pemangkasan-lainnya');
|
||||
|
||||
$teknikInputs
|
||||
.prop('disabled', tidakPernahMemangkas)
|
||||
.closest('.form-check')
|
||||
.toggleClass('opacity-50', tidakPernahMemangkas);
|
||||
|
||||
if (tidakPernahMemangkas) {
|
||||
$teknikInputs.prop('checked', false);
|
||||
$lainnyaInput.val('');
|
||||
}
|
||||
|
||||
$lainnyaInput.prop('disabled', tidakPernahMemangkas || !$('#teknik-pemangkasan-lainnya').is(':checked'));
|
||||
}
|
||||
|
||||
$('#frekuensi-pemangkasan-komoditas-utama, #teknik-pemangkasan-lainnya').on('change select2:select select2:clear', syncTeknikPemangkasanState);
|
||||
syncTeknikPemangkasanState();
|
||||
|
||||
function syncPemupukanState() {
|
||||
const tidakPernahMemberiPupuk = $('#pemberian-pupuk').val() === '{{ \App\Enums\PraktikBudidaya\PemberianPupuk::TIDAK_PERNAH->value }}';
|
||||
const $pemupukanFields = $(
|
||||
'#jenis-pupuk, ' +
|
||||
'input[name="frekuensi_pemupukan"], #input-frekuensi-pemupukan-lainnya, ' +
|
||||
'#estimasi-dosis-pupuk-organik, #estimasi-dosis-pupuk-anorganik, ' +
|
||||
'input[name="waktu_pemberian_pupuk"], #input-waktu-pemberian-pupuk-lainnya, ' +
|
||||
'input[name="cara_pemberian_pupuk"], #input-cara-pemberian-pupuk-lainnya'
|
||||
);
|
||||
|
||||
$pemupukanFields
|
||||
.prop('disabled', tidakPernahMemberiPupuk)
|
||||
.closest('.form-check, .form-control-validation')
|
||||
.toggleClass('opacity-50', tidakPernahMemberiPupuk);
|
||||
|
||||
if (tidakPernahMemberiPupuk) {
|
||||
$('#jenis-pupuk').val('').trigger('change.select2');
|
||||
$('input[name="frekuensi_pemupukan"], input[name="waktu_pemberian_pupuk"], input[name="cara_pemberian_pupuk"]').prop('checked', false);
|
||||
$('#input-frekuensi-pemupukan-lainnya, #estimasi-dosis-pupuk-organik, #estimasi-dosis-pupuk-anorganik, #input-waktu-pemberian-pupuk-lainnya, #input-cara-pemberian-pupuk-lainnya').val('');
|
||||
} else {
|
||||
$('#input-frekuensi-pemupukan-lainnya').prop('disabled', !$('input[data-target="#input-frekuensi-pemupukan-lainnya"]').is(':checked'));
|
||||
$('#input-waktu-pemberian-pupuk-lainnya').prop('disabled', !$('input[data-target="#input-waktu-pemberian-pupuk-lainnya"]').is(':checked'));
|
||||
$('#input-cara-pemberian-pupuk-lainnya').prop('disabled', !$('input[data-target="#input-cara-pemberian-pupuk-lainnya"]').is(':checked'));
|
||||
}
|
||||
}
|
||||
|
||||
$('#pemberian-pupuk').on('change select2:select select2:clear', syncPemupukanState);
|
||||
syncPemupukanState();
|
||||
setTimeout(syncPemupukanState, 0);
|
||||
|
||||
const $switch = $('input[name="disimpan_untuk_diri_sendiri"]');
|
||||
const $text = $('#switch-text');
|
||||
@@ -1822,6 +1893,35 @@
|
||||
toggleInput();
|
||||
});
|
||||
|
||||
const frekuensiPemangkasan = document.getElementById('frekuensi-pemangkasan-komoditas-utama');
|
||||
const teknikPemangkasanInputs = document.querySelectorAll('input[name="teknik_pemangkasan[]"]');
|
||||
const teknikPemangkasanLainnya = document.getElementById('input-teknik-pemangkasan-lainnya');
|
||||
|
||||
function toggleTeknikPemangkasan() {
|
||||
const tidakPernahMemangkas = frekuensiPemangkasan && frekuensiPemangkasan.value === '{{ \App\Enums\PraktikBudidaya\FrekuensiPemangkasanUtama::TIDAK_PERNAH->value }}';
|
||||
|
||||
teknikPemangkasanInputs.forEach(function (input) {
|
||||
input.disabled = tidakPernahMemangkas;
|
||||
input.closest('.form-check')?.classList.toggle('opacity-50', tidakPernahMemangkas);
|
||||
|
||||
if (tidakPernahMemangkas) {
|
||||
input.checked = false;
|
||||
}
|
||||
});
|
||||
|
||||
if (teknikPemangkasanLainnya) {
|
||||
teknikPemangkasanLainnya.disabled = tidakPernahMemangkas || !document.getElementById('teknik-pemangkasan-lainnya')?.checked;
|
||||
|
||||
if (tidakPernahMemangkas) {
|
||||
teknikPemangkasanLainnya.value = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
frekuensiPemangkasan?.addEventListener('change', toggleTeknikPemangkasan);
|
||||
document.getElementById('teknik-pemangkasan-lainnya')?.addEventListener('change', toggleTeknikPemangkasan);
|
||||
toggleTeknikPemangkasan();
|
||||
|
||||
const biayaProduksiFields = [
|
||||
'upah-tenaga-kerja',
|
||||
'biaya-bibit',
|
||||
@@ -1991,4 +2091,4 @@ $(function () {
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
@extends('layout.main')
|
||||
|
||||
@push('scripts-head')
|
||||
<style>
|
||||
#section-utama,
|
||||
#section-sosial-budaya,
|
||||
#section-keanggotaan-kelompok,
|
||||
#section-akses-keuangan,
|
||||
#section-keterikatan-hutang {
|
||||
scroll-margin-top: 96px;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
@if (session('success'))
|
||||
@@ -1062,6 +1074,20 @@
|
||||
const pinjamanTokohAdatAda = @json($pinjamanTokohAdatAdaValue);
|
||||
const tekananJualSegeraAda = @json($tekananJualSegeraAdaValue);
|
||||
const kebebasanMemilihPembeliCukupBebas = Number(@json($kebebasanMemilihPembeliCukupBebasValue));
|
||||
const sectionAnchors = {
|
||||
utama: 'section-utama',
|
||||
sosial_budaya: 'section-sosial-budaya',
|
||||
keanggotaan_kelompok: 'section-keanggotaan-kelompok',
|
||||
akses_keuangan: 'section-akses-keuangan',
|
||||
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||
};
|
||||
const nextSectionAnchors = {
|
||||
utama: 'section-sosial-budaya',
|
||||
sosial_budaya: 'section-keanggotaan-kelompok',
|
||||
keanggotaan_kelompok: 'section-akses-keuangan',
|
||||
akses_keuangan: 'section-keterikatan-hutang',
|
||||
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||
};
|
||||
const fieldExamples = {
|
||||
jumlah_tanggungan: 'Contoh: 4',
|
||||
anak_masih_sekolah: 'Contoh: 2',
|
||||
@@ -1399,7 +1425,8 @@
|
||||
}
|
||||
|
||||
function syncPihakMembantuFields() {
|
||||
const isTidakAda = $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
||||
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||
const isTidakAda = !isAdaSengketa || $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
||||
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||
|
||||
$fields.prop('disabled', isTidakAda);
|
||||
@@ -1409,6 +1436,21 @@
|
||||
}
|
||||
}
|
||||
|
||||
function syncSengketaFields() {
|
||||
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||
const $fields = $('#keterangan-sengketa, #pihak-membantu, #status-konflik');
|
||||
const $assistanceFields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||
|
||||
$fields.prop('disabled', !isAdaSengketa);
|
||||
|
||||
if (!isAdaSengketa) {
|
||||
$fields.add($assistanceFields).val('');
|
||||
$fields.filter('select').trigger('change.select2');
|
||||
}
|
||||
|
||||
syncPihakMembantuFields();
|
||||
}
|
||||
|
||||
function syncPernahJualHargaLebihTinggiFields() {
|
||||
const isPernah = $('#pernah-jual-harga-lebih-tinggi').val() === pernahJualHargaLebihTinggiPernah;
|
||||
const $field = $('#penyebab-harga-lebih-tinggi');
|
||||
@@ -1601,6 +1643,37 @@
|
||||
clearPendapatanRowValidation($row);
|
||||
}
|
||||
|
||||
function setupSectionAnchors() {
|
||||
$('input[name="form_section"]').each(function () {
|
||||
const section = this.value;
|
||||
const anchor = sectionAnchors[section];
|
||||
const nextAnchor = nextSectionAnchors[section] || anchor;
|
||||
const $form = $(this).closest('form');
|
||||
|
||||
if (anchor) {
|
||||
$form.find('> .card').first().attr('id', anchor);
|
||||
}
|
||||
|
||||
if (nextAnchor && !$form.find('input[name="redirect_fragment"]').length) {
|
||||
$('<input>', {
|
||||
type: 'hidden',
|
||||
name: 'redirect_fragment',
|
||||
value: nextAnchor
|
||||
}).appendTo($form);
|
||||
}
|
||||
});
|
||||
|
||||
if (window.location.hash) {
|
||||
const target = document.getElementById(window.location.hash.substring(1));
|
||||
|
||||
if (target) {
|
||||
setTimeout(function () {
|
||||
target.scrollIntoView({ block: 'start' });
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('change', '.sosial-ekonomi-komoditas-utama', syncKomoditasLainnyaOptions);
|
||||
$(document).on('input change', '.pendapatan-row input, .pendapatan-row select', function () {
|
||||
clearPendapatanRowValidation($(this).closest('.pendapatan-row'));
|
||||
@@ -1636,6 +1709,7 @@
|
||||
});
|
||||
});
|
||||
$('#pihak-membantu').on('change', syncPihakMembantuFields);
|
||||
$('input[name="ada_sengketa"]').on('change', syncSengketaFields);
|
||||
$('#pernah-jual-harga-lebih-tinggi').on('change', syncPernahJualHargaLebihTinggiFields);
|
||||
$('input[name="panutan_petani_sukses"]').on('change', syncPanutanFields);
|
||||
$('input[name="terdaftar_kelompok_tani"]').on('change', syncTerdaftarKelompokFields);
|
||||
@@ -1650,10 +1724,12 @@
|
||||
$('#total-hutang-tidak-bersedia').on('change', syncTotalHutangFields);
|
||||
$('input[name="tekanan_jual_segera"]').on('change', syncTekananJualFields);
|
||||
$('input[name="kebebasan_memilih_pembeli"]').on('change', syncKebebasanPembeliFields);
|
||||
setupSectionAnchors();
|
||||
applySosialEkonomiExamples();
|
||||
syncKomoditasLainnyaOptions();
|
||||
setupAllPendapatanRows();
|
||||
syncPihakMembantuFields();
|
||||
syncSengketaFields();
|
||||
syncPernahJualHargaLebihTinggiFields();
|
||||
syncPanutanFields();
|
||||
syncTerdaftarKelompokFields();
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
@extends('layout.main')
|
||||
|
||||
@push('scripts-head')
|
||||
<style>
|
||||
#section-utama,
|
||||
#section-sosial-budaya,
|
||||
#section-keanggotaan-kelompok,
|
||||
#section-akses-keuangan,
|
||||
#section-keterikatan-hutang {
|
||||
scroll-margin-top: 96px;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
@if (session('success'))
|
||||
@@ -1058,6 +1070,20 @@
|
||||
const pinjamanTokohAdatAda = @json($pinjamanTokohAdatAdaValue);
|
||||
const tekananJualSegeraAda = @json($tekananJualSegeraAdaValue);
|
||||
const kebebasanMemilihPembeliCukupBebas = Number(@json($kebebasanMemilihPembeliCukupBebasValue));
|
||||
const sectionAnchors = {
|
||||
utama: 'section-utama',
|
||||
sosial_budaya: 'section-sosial-budaya',
|
||||
keanggotaan_kelompok: 'section-keanggotaan-kelompok',
|
||||
akses_keuangan: 'section-akses-keuangan',
|
||||
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||
};
|
||||
const nextSectionAnchors = {
|
||||
utama: 'section-sosial-budaya',
|
||||
sosial_budaya: 'section-keanggotaan-kelompok',
|
||||
keanggotaan_kelompok: 'section-akses-keuangan',
|
||||
akses_keuangan: 'section-keterikatan-hutang',
|
||||
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||
};
|
||||
const fieldExamples = {
|
||||
jumlah_tanggungan: 'Contoh: 4',
|
||||
anak_masih_sekolah: 'Contoh: 2',
|
||||
@@ -1395,7 +1421,8 @@
|
||||
}
|
||||
|
||||
function syncPihakMembantuFields() {
|
||||
const isTidakAda = $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
||||
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||
const isTidakAda = !isAdaSengketa || $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
||||
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||
|
||||
$fields.prop('disabled', isTidakAda);
|
||||
@@ -1405,6 +1432,21 @@
|
||||
}
|
||||
}
|
||||
|
||||
function syncSengketaFields() {
|
||||
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||
const $fields = $('#keterangan-sengketa, #pihak-membantu, #status-konflik');
|
||||
const $assistanceFields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||
|
||||
$fields.prop('disabled', !isAdaSengketa);
|
||||
|
||||
if (!isAdaSengketa) {
|
||||
$fields.add($assistanceFields).val('');
|
||||
$fields.filter('select').trigger('change.select2');
|
||||
}
|
||||
|
||||
syncPihakMembantuFields();
|
||||
}
|
||||
|
||||
function syncPernahJualHargaLebihTinggiFields() {
|
||||
const isPernah = $('#pernah-jual-harga-lebih-tinggi').val() === pernahJualHargaLebihTinggiPernah;
|
||||
const $field = $('#penyebab-harga-lebih-tinggi');
|
||||
@@ -1597,6 +1639,37 @@
|
||||
clearPendapatanRowValidation($row);
|
||||
}
|
||||
|
||||
function setupSectionAnchors() {
|
||||
$('input[name="form_section"]').each(function () {
|
||||
const section = this.value;
|
||||
const anchor = sectionAnchors[section];
|
||||
const nextAnchor = nextSectionAnchors[section] || anchor;
|
||||
const $form = $(this).closest('form');
|
||||
|
||||
if (anchor) {
|
||||
$form.find('> .card').first().attr('id', anchor);
|
||||
}
|
||||
|
||||
if (nextAnchor && !$form.find('input[name="redirect_fragment"]').length) {
|
||||
$('<input>', {
|
||||
type: 'hidden',
|
||||
name: 'redirect_fragment',
|
||||
value: nextAnchor
|
||||
}).appendTo($form);
|
||||
}
|
||||
});
|
||||
|
||||
if (window.location.hash) {
|
||||
const target = document.getElementById(window.location.hash.substring(1));
|
||||
|
||||
if (target) {
|
||||
setTimeout(function () {
|
||||
target.scrollIntoView({ block: 'start' });
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('change', '.sosial-ekonomi-komoditas-utama', syncKomoditasLainnyaOptions);
|
||||
$(document).on('input change', '.pendapatan-row input, .pendapatan-row select', function () {
|
||||
clearPendapatanRowValidation($(this).closest('.pendapatan-row'));
|
||||
@@ -1632,6 +1705,7 @@
|
||||
});
|
||||
});
|
||||
$('#pihak-membantu').on('change', syncPihakMembantuFields);
|
||||
$('input[name="ada_sengketa"]').on('change', syncSengketaFields);
|
||||
$('#pernah-jual-harga-lebih-tinggi').on('change', syncPernahJualHargaLebihTinggiFields);
|
||||
$('input[name="panutan_petani_sukses"]').on('change', syncPanutanFields);
|
||||
$('input[name="terdaftar_kelompok_tani"]').on('change', syncTerdaftarKelompokFields);
|
||||
@@ -1646,10 +1720,12 @@
|
||||
$('#total-hutang-tidak-bersedia').on('change', syncTotalHutangFields);
|
||||
$('input[name="tekanan_jual_segera"]').on('change', syncTekananJualFields);
|
||||
$('input[name="kebebasan_memilih_pembeli"]').on('change', syncKebebasanPembeliFields);
|
||||
setupSectionAnchors();
|
||||
applySosialEkonomiExamples();
|
||||
syncKomoditasLainnyaOptions();
|
||||
setupAllPendapatanRows();
|
||||
syncPihakMembantuFields();
|
||||
syncSengketaFields();
|
||||
syncPernahJualHargaLebihTinggiFields();
|
||||
syncPanutanFields();
|
||||
syncTerdaftarKelompokFields();
|
||||
|
||||
Reference in New Issue
Block a user