Update Praktik Budidaya

This commit is contained in:
2026-07-02 14:40:15 +07:00
parent 3b1a0f52dd
commit 27e084bc9e
4 changed files with 356 additions and 5 deletions
@@ -72,7 +72,7 @@
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('petani.edit', $petani->id) }}">
<a class="nav-link {{ request()->routeIs('petani.praktik-budidaya.*') ? 'active' : '' }}" href="{{ route('petani.praktik-budidaya.index', $petani->id) }}">
<i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Praktik Budidaya
</a>
</li>
@@ -82,7 +82,7 @@
</a>
</li>
<li class="nav-item">
<a class="nav-link {{ request()->routeIs('petani.sosial-ekonomi.*') ? 'active' : '' }}" href="{{ route('petani.sosial-ekonomi.edit', $petani->id) }}">
<a class="nav-link {{ request()->routeIs('petani.sosial-ekonomi.*') ? 'active' : '' }}" href="{{ route('petani.sosial-ekonomi.index', $petani->id) }}">
<i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Sosial Ekonomi
</a>
</li>
@@ -0,0 +1,326 @@
@extends('layout.main')
@section('content')
<div class="container-xxl flex-grow-1 container-p-y">
@if ($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="row">
<!-- PROFIL PETANI -->
<div class="col-md-12">
@include('produktivitas.petani.header', ['petani' => $petani])
<div class="card mb-6">
<div class="card-body pt-12">
<!-- INFORMASI PETANI -->
<h5 class="pb-4 border-bottom mb-4">Persiapan Lahan & Tanaman</h5>
<div class="row">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="tenaga-kerja">Tenaga Kerja</label>
<select class="form-control @error('tenaga_kerja') is-invalid @enderror" id="tenaga-kerja" name="tenaga_kerja">
<option value="">Pilih Tenaga Kerja</option>
</select>
@error('tenaga_kerja')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<h5 class="pb-4 border-bottom mb-4">Praktik Pemangkasan & Penyerbukan</h5>
<div class="row border-bottom mb-4 pb-4">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="frekuensi-pemangkasan-komoditas-utama">Frekuensi Pemangkasan Komoditas Utama<span class="text-danger">*</span></label>
<select class="form-control @error('frekuensi_pemangkasan_komoditas_utama') is-invalid @enderror" id="frekuensi-pemangkasan-komoditas-utama" name="frekuensi_pemangkasan_komoditas_utama">
<option value="">Pilih Frekuensi Pemangkasan</option>
<option value="1">Tidak pernah memangkas sama sekali</option>
<option value="2">Memangkas, tapi tidak rutin dan tidak tahu tekniknya</option>
<option value="3">Memangkas 1 kali/tahun, tahu jenis tekniknya</option>
<option value="4">Memangkas 2 kali/tahun, tahu jenis tekniknya</option>
<option value="5">Memangkas lebih dari 2 kali/tahun dengan teknik yang tepat dan pohon penaung juga dipangkas rutin</option>
</select>
@error('frekuensi_pemangkasan_komoditas_utama')<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">Teknik pemangkasan yang dilakukan<span class="text-danger">*</span></label>
<div class="form-check mt-2">
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
type="checkbox"
name="teknik_pemangkasan[]"
value="bentuk"
id="teknik-bentuk"
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('bentuk', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
<label class="form-check-label" for="teknik-bentuk">Pemangkasan bentuk</label>
</div>
<div class="form-check">
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
type="checkbox"
name="teknik_pemangkasan[]"
value="produksi"
id="teknik-produksi"
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('produksi', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
<label class="form-check-label" for="teknik-produksi">Pemangkasan produksi</label>
</div>
<div class="form-check">
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
type="checkbox"
name="teknik_pemangkasan[]"
value="peremajaan"
id="teknik-peremajaan"
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('peremajaan', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
<label class="form-check-label" for="teknik-peremajaan">Pemangkasan peremajaan</label>
</div>
<div class="form-check">
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
type="checkbox"
name="teknik_pemangkasan[]"
value="kebiasaan"
id="teknik-kebiasaan"
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('kebiasaan', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
<label class="form-check-label" for="teknik-kebiasaan">Tidak tahu jenis pemangkasannya — dilakukan berdasarkan kebiasaan</label>
</div>
<div class="form-check d-flex align-items-center gap-2 mt-1">
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
type="checkbox"
name="teknik_pemangkasan[]"
value="lainnya"
id="teknik-lainnya"
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('lainnya', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
<label class="form-check-label text-nowrap" for="teknik-lainnya">Lainnya:</label>
<input type="text" name="teknik_pemangkasan_lainnya" class="form-control form-control-sm w-50" value="{{ old('teknik_pemangkasan_lainnya', $petani->teknik_pemangkasan_lainnya ?? '') }}" placeholder="Sebutkan jenis pemangkasan lain...">
</div>
@error('teknik_pemangkasan')
<div class="error invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="frekuensi-pemangkasan-pohon-penaung">Frekuensi Pemangkasan Pohon Penaung<span class="text-danger">*</span></label>
<select class="form-control @error('frekuensi_pemangkasan_pohon_penaung') is-invalid @enderror" id="frekuensi-pemangkasan-pohon-penaung" name="frekuensi_pemangkasan_pohon_penaung">
<option value="">Pilih Frekuensi Pemangkasan</option>
<option value="1">Tidak pernah memangkas sama sekali</option>
<option value="2">Memangkas, tapi tidak rutin dan tidak tahu tekniknya</option>
<option value="3">Memangkas 1 kali/tahun, tahu jenis tekniknya</option>
<option value="4">Memangkas 2 kali/tahun, tahu jenis tekniknya</option>
<option value="5">Memangkas lebih dari 2 kali/tahun dengan teknik yang tepat dan pohon penaung juga dipangkas rutin</option>
</select>
@error('frekuensi_pemangkasan_pohon_penaung')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label d-block fw-medium">Penyerbukan Manual<span class="text-danger">*</span></label>
<div class="form-check mt-2">
<input class="form-check-input @error('penyerbukan_manual') is-invalid @enderror"
type="radio"
name="penyerbukan_manual"
value="Selalu, setiap musim berbunga"
id="penyerbukan-selalu"
{{ old('penyerbukan_manual', $petani->penyerbukan_manual) == 'Selalu, setiap musim berbunga' ? 'checked' : '' }}>
<label class="form-check-label" for="penyerbukan-selalu">Selalu, setiap musim berbunga</label>
</div>
<div class="form-check">
<input class="form-check-input @error('penyerbukan_manual') is-invalid @enderror"
type="radio"
name="penyerbukan_manual"
value="Kadang-kadang, tergantung kondisi"
id="penyerbukan-kadang"
{{ old('penyerbukan_manual', $petani->penyerbukan_manual) == 'Kadang-kadang, tergantung kondisi' ? 'checked' : '' }}>
<label class="form-check-label" for="penyerbukan-kadang">Kadang-kadang, tergantung kondisi</label>
</div>
<div class="form-check">
<input class="form-check-input @error('penyerbukan_manual') is-invalid @enderror"
type="radio"
name="penyerbukan_manual"
value="Tidak pernah"
id="penyerbukan-tidak-pernah"
{{ old('penyerbukan_manual', $petani->penyerbukan_manual) == 'Tidak pernah' ? 'checked' : '' }}>
<label class="form-check-label" for="penyerbukan-tidak-pernah">Tidak pernah</label>
</div>
@error('penyerbukan_manual')
<div class="error invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label d-block fw-medium">Alasan Tidak Melakukan Penyerbukan Manual<span class="text-danger">*</span></label>
<div class="form-check mt-2">
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
type="radio"
name="alasan_tidak_penyerbukan"
value="Tidak tahu caranya"
id="penyerbukan-tidak-tahu"
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'Tidak tahu caranya' ? 'checked' : '' }}>
<label class="form-check-label" for="penyerbukan-tidak-tahu">Tidak tahu caranya</label>
</div>
<div class="form-check">
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
type="radio"
name="alasan_tidak_penyerbukan"
value="Tidak ada tenaga/waktu"
id="penyerbukan-tenaga-waktu"
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'Tidak ada tenaga/waktu' ? 'checked' : '' }}>
<label class="form-check-label" for="penyerbukan-tenaga-waktu">Tidak ada tenaga/waktu</label>
</div>
<div class="form-check">
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
type="radio"
name="alasan_tidak_penyerbukan"
value="Mengandalkan penyerbuk alami"
id="penyerbukan-mengandalkan-alami"
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'Mengandalkan penyerbuk alami' ? 'checked' : '' }}>
<label class="form-check-label" for="penyerbukan-mengandalkan-alami">Mengandalkan penyerbuk alami</label>
</div>
<div class="form-check d-flex align-items-center gap-2 mt-1">
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
type="radio"
name="alasan_tidak_penyerbukan"
value="lainnya"
id="alasan-lainnya"
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'lainnya' ? 'checked' : '' }}>
<label class="form-check-label text-nowrap" for="alasan-lainnya">Lainnya:</label>
<input type="text"
name="alasan_tidak_penyerbukan_lainnya"
class="form-control form-control-sm w-50"
value="{{ old('alasan_tidak_penyerbukan_lainnya', $petani->alasan_tidak_penyerbukan_lainnya ?? '') }}"
placeholder="Sebutkan alasan lain...">
</div>
@error('alasan_tidak_penyerbukan')
<div class="error invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
</div>
<div class="mt-4 text-end">
<button id="btn-profil" type="button" class="btn btn-success data-submit wave-effect wave-light">Simpan Praktik Budidaya</button>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script>
'use strict';
$(document).ready(function () {
$('#edit-petani-jenis-kelamin, #edit-petani-pendidikan-terakhir, #edit-petani-pekerjaan-utama, #edit-petani-komoditas, #edit-petani-pekerjaan-sampingan, #edit-petani-komoditas-sampingan, #edit-petani-status-pernikahan, #edit-petani-status-keluarga, #edit-petani-petani-pengumpul').select2();
$('#edit-petani-provinsi').select2().change(function(e) {
e.preventDefault();
var provinsiId = $(this).val();
$('#edit-petani-kabupaten').prop('disabled', !provinsiId).val('').trigger('change');
$('#edit-petani-kecamatan').prop('disabled', true).val('').trigger('change');
$('#edit-petani-desa').prop('disabled', true).val('').trigger('change');
if (provinsiId) {
$.ajax({
url: '{{ route("kabupatenkota.byprovinsi", ":id") }}'.replace(':id', provinsiId),
method: 'GET',
success: function(data) {
$('#edit-petani-kabupaten').empty().append('<option value="">Pilih Kabupaten/Kota</option>');
data.forEach(function(kabupaten) {
$('#edit-petani-kabupaten').append('<option value="' + kabupaten.id + '">' + kabupaten.nama + '</option>');
});
}
});
}
});
$('#edit-petani-kabupaten').select2().change(function(e) {
e.preventDefault();
var kabupatenId = $(this).val();
$('#edit-petani-kecamatan').prop('disabled', !kabupatenId).val('').trigger('change');
$('#edit-petani-desa').prop('disabled', true).val('').trigger('change');
if (kabupatenId) {
$.ajax({
url: '{{ route("kecamatan.bykabupatenkota", ":id") }}'.replace(':id', kabupatenId),
method: 'GET',
success: function(data) {
$('#edit-petani-kecamatan').empty().append('<option value="">Pilih Kecamatan</option>');
data.forEach(function(kecamatan) {
$('#edit-petani-kecamatan').append('<option value="' + kecamatan.id + '">' + kecamatan.nama + '</option>');
});
}
});
}
});
$('#edit-petani-kecamatan').select2().change(function(e) {
e.preventDefault();
var kecamatanId = $(this).val();
$('#edit-petani-desa').prop('disabled', !kecamatanId).val('').trigger('change');
if (kecamatanId) {
$.ajax({
url: '{{ route("desakelurahan.bykecamatan", ":id") }}'.replace(':id', kecamatanId),
method: 'GET',
success: function(data) {
$('#edit-petani-desa').empty().append('<option value="">Pilih Desa/Kelurahan</option>');
data.forEach(function(desa) {
$('#edit-petani-desa').append('<option value="' + desa.id + '">' + desa.nama + '</option>');
});
}
});
}
});
$('#edit-petani-desa').select2();
$('#editPetaniForm').validate({
rules: {
nama: { required: true },
tanggal_lahir: { required: true, date: true },
jenis_kelamin: { required: true },
pendidikan_terakhir: { required: true },
alamat: { required: true },
desa_kelurahan_id: { required: true },
status_perkawinan: { required: true },
},
messages: {
nama: { required: "Nama petani wajib diisi" },
tanggal_lahir: { required: "Tanggal lahir wajib diisi", date: "Format tanggal salah" },
jenis_kelamin: { required: "Jenis kelamin wajib diisi" },
pendidikan_terakhir: { required: "Pendidikan terakhir wajib diisi" },
alamat: { required: "Alamat wajib diisi" },
desa_kelurahan_id: { required: "Desa/Kelurahan wajib diisi" },
status_perkawinan: { required: "Status perkawinan wajib diisi" },
},
errorElement: 'div',
errorPlacement: function (error, element) {
error.addClass('invalid-feedback');
element.closest('.mb-6, .form-control-validation').append(error);
},
highlight: function (element) {
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
}
});
});
</script>
@endpush