Update Praktik Budidaya
This commit is contained in:
@@ -13,11 +13,11 @@ enum PenangananGulma: int
|
||||
public function label(): string
|
||||
{
|
||||
return match($this) {
|
||||
self::DIBIARKAN => 'Dibiarkan di kebun',
|
||||
self::DICABUT => 'Dikumpulkan dan dibuang',
|
||||
self::DISEMPROT => 'Dijadikan kompos',
|
||||
self::RUTIN_DICABUT_TANPA_JADWAL => 'Dikumpulkan dan dibuang',
|
||||
self::RUTIN_TERJADWAL => 'Dijadikan kompos',
|
||||
self::DIBIARKAN => 'Dibiarkan saja, tidak pernah ditangani',
|
||||
self::DICABUT => 'Dicabut/dibersihkan sesekali, tidak terjadwal',
|
||||
self::DISEMPROT => 'Disemprot herbisida sesekali, tidak terjadwal',
|
||||
self::RUTIN_DICABUT_TANPA_JADWAL => 'Rutin dicabut/dipangkas, tapi tanpa jadwal yang jelas',
|
||||
self::RUTIN_TERJADWAL => 'Rutin terjadwal dengan metode yang konsisten (dicabut/dipangkas/dikelola sebagai mulsa)',
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ class PraktikBudidayaController extends Controller
|
||||
$alasanTidakPenyerbukanLainnya = collect(explode(', ', $alasanTidakPenyerbukan))
|
||||
->first(fn ($item) => !in_array($item, $defaultAlasanTidakPenyerbukan));
|
||||
|
||||
$frekuensiPemupukan = $praktikBudidaya->frekuensi_pemupukan ?? '';
|
||||
$frekuensiPemupukan = $praktikBudidaya->frekuensi_pemberian_pupuk ?? '';
|
||||
$frekuensiPemupukanLainnya = collect(explode(', ', $frekuensiPemupukan))
|
||||
->first(fn ($item) => !in_array($item, $defaultFrekuensiPemupukan));
|
||||
|
||||
@@ -199,8 +199,34 @@ class PraktikBudidayaController extends Controller
|
||||
'estimasi_dosis_pupuk_anorganik' => $validatedData['estimasi_dosis_pupuk_anorganik'] ?? null,
|
||||
'waktu_pemberian_pupuk' => ($validatedData['waktu_pemberian_pupuk'] ?? null) === 'Lainnya' ? ($validatedData['waktu_pemberian_pupuk_lainnya'] ?? null) : ($validatedData['waktu_pemberian_pupuk'] ?? null),
|
||||
'cara_pemberian_pupuk' => ($validatedData['cara_pemberian_pupuk'] ?? null) === 'Lainnya' ? ($validatedData['cara_pemberian_pupuk_lainnya'] ?? null) : ($validatedData['cara_pemberian_pupuk'] ?? null),
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
], [
|
||||
'string' => ':attribute harus berupa teks.',
|
||||
'integer' => ':attribute harus berupa angka.',
|
||||
'array' => ':attribute harus berupa pilihan.',
|
||||
'enum' => 'Pilihan :attribute tidak valid.',
|
||||
], [
|
||||
'tenaga_kerja' => 'tenaga kerja',
|
||||
'frekuensi_pemangkasan_komoditas_utama' => 'frekuensi pemangkasan komoditas utama',
|
||||
'teknik_pemangkasan' => 'teknik pemangkasan',
|
||||
'teknik_pemangkasan_lainnya' => 'teknik pemangkasan lainnya',
|
||||
'frekuensi_pemangkasan_pohon_penaung' => 'frekuensi pemangkasan pohon penaung',
|
||||
|
||||
'penyerbukan_manual' => 'penyerbukan manual',
|
||||
'alasan_tidak_penyerbukan' => 'alasan tidak melakukan penyerbukan manual',
|
||||
'alasan_tidak_penyerbukan_lainnya' => 'alasan lainnya tidak melakukan penyerbukan manual',
|
||||
'tingkat_keberhasilan_penyerbukan' => 'tingkat keberhasilan penyerbukan',
|
||||
'pemberian_pupuk' => 'pemberian pupuk',
|
||||
'jenis_pupuk' => 'jenis pupuk',
|
||||
'frekuensi_pemupukan' => 'frekuensi pemupukan',
|
||||
'frekuensi_pemupukan_lainnya' => 'frekuensi pemupukan lainnya',
|
||||
'estimasi_dosis_pupuk_organik' => 'estimasi dosis pupuk organik',
|
||||
'estimasi_dosis_pupuk_anorganik' => 'estimasi dosis pupuk anorganik',
|
||||
'waktu_pemberian_pupuk' => 'waktu pemberian pupuk',
|
||||
'waktu_pemberian_pupuk_lainnya' => 'waktu pemberian pupuk lainnya',
|
||||
'cara_pemberian_pupuk' => 'cara pemberian pupuk',
|
||||
'cara_pemberian_pupuk_lainnya' => 'cara pemberian pupuk lainnya',
|
||||
]);
|
||||
|
||||
return redirect()->route('petani.praktik-budidaya.edit', [$petani->id , $praktikBudidaya->id])
|
||||
@@ -411,6 +437,106 @@ class PraktikBudidayaController extends Controller
|
||||
|
||||
'estimasi_kehilangan_akibat_opt' => ['nullable', 'string', new Enum(EstimasiKehilanganHasil::class)],
|
||||
'estimasi_kehilangan_akibat_hama' => ['nullable', 'string', new Enum(EstimasiKehilanganHasil::class)],
|
||||
], [
|
||||
'string' => ':attribute harus berupa teks.',
|
||||
'integer' => ':attribute harus berupa angka.',
|
||||
'numeric' => ':attribute harus berupa angka.',
|
||||
'array' => ':attribute harus berupa daftar pilihan.',
|
||||
'boolean' => ':attribute harus bernilai ya atau tidak.',
|
||||
'enum' => 'Pilihan :attribute tidak valid.',
|
||||
|
||||
'teknik_pemangkasan.*.string' => 'Setiap pilihan teknik pemangkasan harus berupa teks.',
|
||||
'kebiasaan_konservasi_tanah.*.string' => 'Setiap pilihan kebiasaan konservasi tanah harus berupa teks.',
|
||||
], [
|
||||
// 2.2 Persiapan Lahan & Penanaman
|
||||
'tenaga_kerja' => 'tenaga kerja',
|
||||
|
||||
// 2.3 Praktik Pemangkasan & Penyerbukan
|
||||
'frekuensi_pemangkasan_komoditas_utama' => 'frekuensi pemangkasan komoditas utama',
|
||||
'teknik_pemangkasan' => 'teknik pemangkasan',
|
||||
'teknik_pemangkasan.*' => 'pilihan teknik pemangkasan',
|
||||
'teknik_pemangkasan_lainnya' => 'teknik pemangkasan lainnya',
|
||||
'frekuensi_pemangkasan_pohon_penaung' => 'frekuensi pemangkasan pohon penaung',
|
||||
'penyerbukan_manual' => 'penyerbukan manual',
|
||||
'alasan_tidak_penyerbukan' => 'alasan tidak melakukan penyerbukan manual',
|
||||
'alasan_tidak_penyerbukan_lainnya' => 'alasan lainnya tidak melakukan penyerbukan manual',
|
||||
'tingkat_keberhasilan_penyerbukan' => 'tingkat keberhasilan penyerbukan',
|
||||
|
||||
// 2.4 Praktik Pemupukan
|
||||
'pemberian_pupuk' => 'pemberian pupuk',
|
||||
'jenis_pupuk' => 'jenis pupuk',
|
||||
'frekuensi_pemupukan' => 'frekuensi pemupukan',
|
||||
'frekuensi_pemupukan_lainnya' => 'frekuensi pemupukan lainnya',
|
||||
'estimasi_dosis_pupuk_organik' => 'estimasi dosis pupuk organik',
|
||||
'estimasi_dosis_pupuk_anorganik' => 'estimasi dosis pupuk anorganik',
|
||||
'waktu_pemberian_pupuk' => 'waktu pemberian pupuk',
|
||||
'waktu_pemberian_pupuk_lainnya' => 'waktu pemberian pupuk lainnya',
|
||||
'cara_pemberian_pupuk' => 'cara pemberian pupuk',
|
||||
'cara_pemberian_pupuk_lainnya' => 'cara pemberian pupuk lainnya',
|
||||
|
||||
// 2.5 Pengendalian OPT
|
||||
'metode_penanganan_hama_penyakit' => 'metode penanganan hama dan penyakit',
|
||||
'jenis_hama' => 'jenis hama',
|
||||
'jenis_penyakit' => 'jenis penyakit',
|
||||
'intensitas_serangan' => 'intensitas serangan',
|
||||
'waktu_kemunculan_terparah' => 'waktu kemunculan terparah',
|
||||
'metode_paling_sering_dilakukan' => 'metode yang paling sering dilakukan',
|
||||
'volume_obat_obatan_permusim' => 'volume obat-obatan per musim',
|
||||
|
||||
// 2.6 Sanitasi Kebun
|
||||
'frekuensi_sanitasi_lahan' => 'frekuensi sanitasi lahan',
|
||||
'penanganan_sisa_buah_ranting' => 'penanganan sisa buah dan ranting',
|
||||
'penanganan_gulma' => 'penanganan gulma',
|
||||
|
||||
// 2.7 Pengelolaan Air & Irigasi
|
||||
'kondisi_pengelolaan_air_irigasi' => 'kondisi pengelolaan air dan irigasi',
|
||||
'sumber_air' => 'sumber air',
|
||||
'sumber_air_lainnya' => 'sumber air lainnya',
|
||||
'sistem_irigasi' => 'sistem irigasi',
|
||||
'sistem_irigasi_lainnya' => 'sistem irigasi lainnya',
|
||||
'kebutuhan_air_permusim' => 'kebutuhan air per musim',
|
||||
'kebiasaan_konservasi_tanah' => 'kebiasaan konservasi tanah',
|
||||
'kebiasaan_konservasi_tanah.*' => 'pilihan kebiasaan konservasi tanah',
|
||||
'pemahaman_manfaat_konservasi' => 'pemahaman manfaat konservasi',
|
||||
|
||||
// Biaya Produksi
|
||||
'upah_tenaga_kerja' => 'upah tenaga kerja',
|
||||
'biaya_bibit' => 'biaya bibit',
|
||||
'biaya_pupuk' => 'biaya pupuk',
|
||||
'biaya_pestisida' => 'biaya pestisida',
|
||||
'biaya_sewa_alat' => 'biaya sewa alat',
|
||||
'biaya_penyediaan_air' => 'biaya penyediaan air',
|
||||
'biaya_lainnya' => 'biaya lainnya',
|
||||
'total_estimasi_biaya_produksi' => 'total estimasi biaya produksi',
|
||||
|
||||
// Panen
|
||||
'dasar_penentuan_panen' => 'dasar penentuan panen',
|
||||
'frekuensi_panen_pertahun' => 'frekuensi panen per tahun',
|
||||
'bulan_panen_utama' => 'bulan panen utama',
|
||||
'hasil_komoditas_utama_permusim' => 'hasil komoditas utama per musim',
|
||||
'hasil_komoditas_lainnya_permusim' => 'hasil komoditas lainnya per musim',
|
||||
'disimpan_untuk_sendiri' => 'disimpan untuk sendiri',
|
||||
'hasil_panen_disimpan' => 'hasil panen yang disimpan',
|
||||
'tujuan_disimpan' => 'tujuan disimpan',
|
||||
|
||||
// Sortasi & Reject
|
||||
'praktik_sortasi' => 'praktik sortasi',
|
||||
'bentuk_sortasi' => 'bentuk sortasi',
|
||||
'tingkat_reject' => 'tingkat reject',
|
||||
'hasil_panen_reject' => 'hasil panen reject',
|
||||
'tindakan_hasil_reject' => 'tindakan terhadap hasil reject',
|
||||
|
||||
// Biaya Panen
|
||||
'upah_tenaga_panen' => 'upah tenaga panen',
|
||||
'biaya_pengangkutan' => 'biaya pengangkutan',
|
||||
'biaya_wadah_kemasan' => 'biaya wadah kemasan',
|
||||
'biaya_sewa_alat_panen' => 'biaya sewa alat panen',
|
||||
'biaya_panen_lainnya' => 'biaya panen lainnya',
|
||||
'total_estimasi_biaya_panen' => 'total estimasi biaya panen',
|
||||
|
||||
// Kehilangan Hasil
|
||||
'estimasi_kehilangan_akibat_opt' => 'estimasi kehilangan akibat OPT',
|
||||
'estimasi_kehilangan_akibat_hama' => 'estimasi kehilangan akibat hama',
|
||||
]);
|
||||
$dataPraktikBudidaya = [];
|
||||
$dataSurveyPanen = [];
|
||||
@@ -473,7 +599,7 @@ class PraktikBudidayaController extends Controller
|
||||
'upah_tenaga_kerja' => $validatedData['upah_tenaga_kerja'] ?? null,
|
||||
'biaya_bibit' => $validatedData['biaya_bibit'] ?? null,
|
||||
'biaya_pupuk' => $validatedData['biaya_pupuk'] ?? null,
|
||||
'biaya_pestisida' => $validatedData['biaya_pestisida'] ?? null,
|
||||
'biaya_obat_obatan' => $validatedData['biaya_pestisida'] ?? null,
|
||||
'biaya_sewa_alat_produksi' => $validatedData['biaya_sewa_alat'] ?? null,
|
||||
'biaya_penyediaan_air' => $validatedData['biaya_penyediaan_air'] ?? null,
|
||||
'biaya_produksi_lainnya' => $validatedData['biaya_lainnya'] ?? null,
|
||||
|
||||
@@ -53,16 +53,16 @@ class PraktikBudidaya extends Model
|
||||
'kondisi_pengelolaan_air',
|
||||
'sumber_air',
|
||||
'sistem_irigasi',
|
||||
'kebutuan_air_permusim',
|
||||
'kebutuhan_air_permusim',
|
||||
'kebiasaan_konservasi_tanah',
|
||||
'pemahaman_manfaat_konservasi_tanah',
|
||||
'upah_tenaga_kerja',
|
||||
'biaya_bibit',
|
||||
'biaya_pupuk',
|
||||
'biaya_obat_obatan',
|
||||
'biaya_sewa_alat',
|
||||
'biaya_sewa_alat_produksi',
|
||||
'biaya_penyediaan_air',
|
||||
'biaya_lainnya',
|
||||
'biaya_produksi_lainnya',
|
||||
'total_estimasi_biaya_produksi',
|
||||
'created_by',
|
||||
'updated_by',
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -70,6 +70,7 @@
|
||||
<script src="{{ asset('assets/vendor/libs/@form-validation/bootstrap5.js') }}"></script>
|
||||
<script src="{{ asset('assets/vendor/libs/@form-validation/auto-focus.js') }}"></script>
|
||||
<script src="{{ asset('assets/vendor/libs/cleave-zen/cleave-zen.js') }}"></script>
|
||||
<script src="{{ asset('assets/vendor/libs/jquery-repeater/jquery-repeater.js') }}"></script>
|
||||
|
||||
<!-- Main JS -->
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user