Update Praktik Budidaya

This commit is contained in:
2026-07-09 16:29:18 +07:00
parent 626fdba065
commit 6c95c462cb
6 changed files with 272 additions and 24 deletions
@@ -561,7 +561,7 @@
@error('metode_penanganan_hama_penyakit')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label d-block fw-medium">Jenis Hama<span class="text-danger">*</span></label>
<label class="form-label d-block fw-medium">Jenis Hama</label>
<div class="form-check mt-2">
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
@@ -617,7 +617,7 @@
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label d-block fw-medium">Jenis Penyakit<span class="text-danger">*</span></label>
<label class="form-label d-block fw-medium">Jenis Penyakit</label>
<div class="form-check mt-2">
<input class="form-check-input @error('jenis_penyakit') is-invalid @enderror"
@@ -926,7 +926,7 @@
<label class="form-label d-block fw-medium">Kebiasaan Konservasi Tanah<span class="text-danger">*</span></label>
<div class="form-check mt-2">
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
<input class="form-check-input @error('kebiasaan_konservasi_tanah') is-invalid @enderror"
type="checkbox"
name="kebiasaan_konservasi_tanah[]"
value="Membuat pematang atau tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah"
@@ -936,7 +936,7 @@
</div>
<div class="form-check mt-2">
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
<input class="form-check-input @error('kebiasaan_konservasi_tanah') is-invalid @enderror"
type="checkbox"
name="kebiasaan_konservasi_tanah[]"
value="Menumpuk daun kering/sisa tanaman di sekitar pohon"
@@ -946,7 +946,7 @@
</div>
<div class="form-check mt-2">
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
<input class="form-check-input @error('kebiasaan_konservasi_tanah') is-invalid @enderror"
type="checkbox"
name="kebiasaan_konservasi_tanah[]"
value="Menanam tanaman lain di sela-sela komoditas utama untuk menutupi tanah"
@@ -956,7 +956,7 @@
</div>
<div class="form-check mt-2">
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
<input class="form-check-input @error('kebiasaan_konservasi_tanah') is-invalid @enderror"
type="checkbox"
name="kebiasaan_konservasi_tanah[]"
value="Membuat lubang atau parit kecil untuk menampung air hujan"
@@ -966,7 +966,7 @@
</div>
<div class="form-check mt-2">
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
<input class="form-check-input @error('kebiasaan_konservasi_tanah') is-invalid @enderror"
type="checkbox"
name="kebiasaan_konservasi_tanah[]"
value="Tidak ada yang seperti itu di kebun saya"
@@ -974,7 +974,7 @@
{{ in_array('Tidak ada yang seperti itu di kebun saya', old('kebiasaan_konservasi_tanah', $praktikBudidaya->kebiasaan_konservasi_tanah ?? [])) ? 'checked' : '' }}>
<label class="form-check-label" for="konservasi_tanah_tidak_ada">Tidak ada yang seperti itu di kebun saya</label>
</div>
@error('jenis_hama')
@error('kebiasaan_konservasi_tanah')
<div class="error invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
@@ -1066,7 +1066,7 @@
class="form-control rupiah-input @error('biaya_pestisida') is-invalid @enderror"
id="biaya-pestisida"
name="biaya_pestisida"
value="{{ old('biaya_pestisida', filled($praktikBudidaya->biaya_pestisida) ? number_format($praktikBudidaya->biaya_pestisida, 0, ',', '.') : '') }}"
value="{{ old('biaya_pestisida', filled($praktikBudidaya->biaya_obat_obatan) ? number_format($praktikBudidaya->biaya_obat_obatan, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
</div>
@error('biaya_pestisida')
@@ -1135,7 +1135,8 @@
id="total-estimasi-biaya-produksi"
name="total_estimasi_biaya_produksi"
value="{{ old('total_estimasi_biaya_produksi', filled($praktikBudidaya->total_estimasi_biaya_produksi) ? number_format($praktikBudidaya->total_estimasi_biaya_produksi, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
placeholder="Otomatis terhitung"
readonly>
</div>
@error('total_estimasi_biaya_produksi')
<div class="invalid-feedback d-block">{{ $message }}</div>
@@ -1240,6 +1241,12 @@
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
@php
$disimpanUntukSendiri = old(
'disimpan_untuk_sendiri',
$surveyPanen?->disimpan_untuk_sendiri
) == 1;
@endphp
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label d-block">Disimpan Untuk Diri Sendiri<span class="text-danger">*</span></label>
@@ -1248,6 +1255,7 @@
<input
type="checkbox"
class="switch-input"
id="disimpan-untuk-sendiri"
name="disimpan_untuk_sendiri"
value="1"
{{ old('disimpan_untuk_sendiri', $surveyPanen?->disimpan_untuk_sendiri) ? 'checked' : '' }}>
@@ -1262,12 +1270,14 @@
</span>
<span class="switch-label">
<span id="switch-text">Tidak, Semua di Jual</span>
<span id="switch-text">
{{ $disimpanUntukSendiri ? 'Ya, Sebagian Disimpan' : 'Tidak, Semua Dijual' }}
</span>
</span>
</label>
</div>
</div>
<div class="row">
<div class="row{{ $disimpanUntukSendiri ? '' : 'd-none' }}" id="detail-disimpan-wrapper">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="hasil_panen_disimpan">
Hasil Panen Disimpan<span class="text-danger">*</span>
@@ -1766,6 +1776,116 @@
trigger.addEventListener('change', toggleInput);
toggleInput();
});
const biayaProduksiFields = [
'upah-tenaga-kerja',
'biaya-bibit',
'biaya-pupuk',
'biaya-pestisida',
'biaya-sewa-alat',
'biaya-penyediaan-air',
'biaya-lainnya'
];
const biayaPanenFields = [
'upah-tenaga-panen',
'biaya-pengangkutan',
'biaya-wadah-kemasan',
'biaya-sewa-alat-panen',
'biaya-panen-lainnya'
];
const totalBiayaProduksiField = document.getElementById('total-estimasi-biaya-produksi');
const totalBiayaPanenField = document.getElementById('total-estimasi-biaya-panen');
function parseRupiah(value) {
if (!value) return 0;
return parseInt(value.replace(/[^0-9]/g, '')) || 0;
}
function formatRupiah(value) {
return value.toLocaleString('id-ID');
}
function hitungTotal(fields, totalField) {
if (!totalField) return;
let total = 0;
fields.forEach(function (id) {
const field = document.getElementById(id);
if (field) {
total += parseRupiah(field.value);
}
});
totalField.value = total > 0 ? formatRupiah(total) : '';
}
function hitungTotalBiayaProduksi() {
hitungTotal(biayaProduksiFields, totalBiayaProduksiField);
}
function hitungTotalBiayaPanen() {
hitungTotal(biayaPanenFields, totalBiayaPanenField);
}
biayaProduksiFields.forEach(function (id) {
const field = document.getElementById(id);
if (field) {
field.addEventListener('input', hitungTotalBiayaProduksi);
field.addEventListener('change', hitungTotalBiayaProduksi);
}
});
biayaPanenFields.forEach(function (id) {
const field = document.getElementById(id);
if (field) {
field.addEventListener('input', hitungTotalBiayaPanen);
field.addEventListener('change', hitungTotalBiayaPanen);
}
});
hitungTotalBiayaProduksi();
hitungTotalBiayaPanen();
const switchInput = document.getElementById('disimpan-untuk-sendiri');
const switchText = document.getElementById('switch-text');
const detailWrapper = document.getElementById('detail-disimpan-wrapper');
const hasilPanenDisimpan = document.getElementById('hasil-panen-disimpan');
const tujuanDisimpan = document.getElementById('tujuan-disimpan');
function toggleDetailDisimpan() {
const isChecked = switchInput.checked;
if (isChecked) {
detailWrapper.classList.remove('d-none');
hasilPanenDisimpan.disabled = false;
tujuanDisimpan.disabled = false;
switchText.textContent = 'Ya, Sebagian Disimpan';
} else {
detailWrapper.classList.add('d-none');
hasilPanenDisimpan.disabled = true;
tujuanDisimpan.disabled = true;
hasilPanenDisimpan.value = '';
tujuanDisimpan.value = '';
switchText.textContent = 'Tidak, Semua Dijual';
}
}
switchInput.addEventListener('change', toggleDetailDisimpan);
toggleDetailDisimpan();
});
</script>
<script>