hama dan penyakit lahan

This commit is contained in:
2026-07-22 13:56:55 +07:00
parent 12f8d0bbda
commit 696c7dede8
10 changed files with 323 additions and 37 deletions
@@ -90,7 +90,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($totalLuasLahan, 0, ',', '.') }} 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, ',', '.') }}ha"
subtitle="{{ $tanaman?->count() }} tanaman dari {{ $komoditas?->count() }} komoditas utama"
icon="trees"
color="success"
@@ -203,8 +203,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 +247,124 @@
</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">
<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">
<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">
<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">
<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">
<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">
<label class="form-check-label" for="jenis-hama-bentuk">Tikus</label>
</div>
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis</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">
<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">
<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">
<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">
<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">
<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">
<label class="form-check-label" for="jenis-penyakit-bentuk">Layu fusarium</label>
</div>
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis</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 +383,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 +764,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 +922,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 +940,7 @@
showConfirmButton: false,
timer: 1500
}).then(() => {
window.location.href = "{{ route('petani.index') }}";
window.location.href = "{{ route('petani.lahan-tanaman.index', ['petani' => $petani->id]) }}";
});
},
error: function(xhr) {
@@ -73,7 +73,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 +129,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 +160,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">
<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', old('jenis_hama', $lahanSelected->jenis_hama ?? [])) ? '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', old('jenis_hama', $lahanSelected->jenis_hama ?? [])) ? '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', old('jenis_hama', $lahanSelected->jenis_hama ?? [])) ? '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', old('jenis_hama', $lahanSelected->jenis_hama ?? [])) ? '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', old('jenis_hama', $lahanSelected->jenis_hama ?? [])) ? 'checked' : '' }}>
<label class="form-check-label" for="jenis-hama-bentuk">Tikus</label>
</div>
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis</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">
<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', old('jenis_penyakit', $lahanSelected->jenis_penyakit ?? [])) ? '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', old('jenis_penyakit', $lahanSelected->jenis_penyakit ?? [])) ? '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', old('jenis_penyakit', $lahanSelected->jenis_penyakit ?? [])) ? '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', old('jenis_penyakit', $lahanSelected->jenis_penyakit ?? [])) ? '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', old('jenis_penyakit', $lahanSelected->jenis_penyakit ?? [])) ? 'checked' : '' }}
<label class="form-check-label" for="jenis-penyakit-bentuk">Layu fusarium</label>
</div>
<small class="text-muted text-secondary">* Tidak diisi, terisi otomatis</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>