Merge branch 'main' of https://git.probindo.com/Probindo/database-pertani-web
This commit is contained in:
@@ -18,6 +18,15 @@ use App\Enums\PraktikBudidaya\FrekuensiPemangkasanPendamping;
|
||||
use App\Enums\PraktikBudidaya\PemberianPupuk;
|
||||
use App\Enums\PraktikBudidaya\JenisPupuk;
|
||||
use App\Enums\PraktikBudidaya\PenyerbukanManual;
|
||||
use App\Enums\PraktikBudidaya\MetodePenangananHamaPenyakit;
|
||||
use App\Enums\PraktikBudidaya\IntensitasSeranganHamaPenyakit;
|
||||
use App\Enums\PraktikBudidaya\WaktuKemunculanTerparahHamaPenyakit;
|
||||
use App\Enums\PraktikBudidaya\FrekuensiSanitasiLahan;
|
||||
use App\Enums\PraktikBudidaya\PenangananSisaBuahRanting;
|
||||
use App\Enums\PraktikBudidaya\PenangananGulma;
|
||||
use App\Enums\PraktikBudidaya\KondisiPengelolaanAir;
|
||||
use App\Enums\PraktikBudidaya\KebutuhanAirPermusim;
|
||||
use App\Enums\PraktikBudidaya\PemahamanManfaatKonservasi;
|
||||
|
||||
class PraktikBudidayaController extends Controller
|
||||
{
|
||||
@@ -268,4 +277,144 @@ class PraktikBudidayaController extends Controller
|
||||
|
||||
return view('produktivitas.petani.praktik-budidaya.edit', compact('title', 'petani', 'praktikBudidaya', 'teknikPemangkasanLainnya', 'alasanTidakPenyerbukanLainnya', 'frekuensiPemupukanLainnya', 'waktuPemberianPupukLainnya', 'caraPemberianPupukLainnya', 'sumberAirLainnya', 'sistemIrigasiLainnya'));
|
||||
}
|
||||
|
||||
public function update($petaniId, $praktikBudidayaId, Request $request)
|
||||
{
|
||||
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
|
||||
abort(403);
|
||||
}
|
||||
|
||||
// dd($request->all());
|
||||
|
||||
$praktikBudidaya = PraktikBudidaya::where('petani_id', $petaniId)
|
||||
->where('id', $praktikBudidayaId)
|
||||
->firstOrFail();
|
||||
|
||||
$validatedData = $request->validate([
|
||||
// 2.2 Persiapan Lahan & Penanaman
|
||||
'tenaga_kerja' => ['nullable', 'string', new Enum(TenagaKerja::class)],
|
||||
|
||||
// 2.3 Praktik Pemangkasan & Penyerbukan
|
||||
'frekuensi_pemangkasan_komoditas_utama' => ['nullable', 'integer', new Enum(FrekuensiPemangkasanUtama::class)],
|
||||
'teknik_pemangkasan' => ['nullable', 'array'],
|
||||
'teknik_pemangkasan.*' => ['string'],
|
||||
'teknik_pemangkasan_lainnya' => ['nullable', 'string'],
|
||||
'frekuensi_pemangkasan_pohon_penaung' => ['nullable', 'integer', new Enum(FrekuensiPemangkasanPendamping::class)],
|
||||
'penyerbukan_manual' => ['nullable', 'integer', new Enum(PenyerbukanManual::class)],
|
||||
'alasan_tidak_penyerbukan' => ['nullable', 'string'],
|
||||
'alasan_tidak_penyerbukan_lainnya' => ['nullable', 'string'],
|
||||
'tingkat_keberhasilan_penyerbukan' => ['nullable', 'string'],
|
||||
|
||||
// 2.4 Praktik Pemupukan
|
||||
'pemberian_pupuk' => ['nullable', 'integer', new Enum(PemberianPupuk::class)],
|
||||
'jenis_pupuk' => ['nullable', 'integer', new Enum(JenisPupuk::class)],
|
||||
|
||||
'frekuensi_pemupukan' => ['nullable', 'string'],
|
||||
'frekuensi_pemupukan_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'estimasi_dosis_pupuk_organik' => ['nullable', 'numeric'],
|
||||
'estimasi_dosis_pupuk_anorganik' => ['nullable', 'numeric'],
|
||||
|
||||
'waktu_pemberian_pupuk' => ['nullable', 'string'],
|
||||
'waktu_pemberian_pupuk_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'cara_pemberian_pupuk' => ['nullable', 'string'],
|
||||
'cara_pemberian_pupuk_lainnya' => ['nullable', 'string'],
|
||||
|
||||
// 2.5 Pengendalian Organisme Pengganggu Tumbuhan (OPT)
|
||||
'metode_penanganan_hama_penyakit' => ['nullable', 'integer', new Enum(MetodePenangananHamaPenyakit::class)],
|
||||
|
||||
'jenis_hama' => ['nullable', 'array'],
|
||||
|
||||
'jenis_penyakit' => ['nullable', 'array'],
|
||||
|
||||
'intensitas_serangan' => ['nullable', 'string', new Enum(IntensitasSeranganHamaPenyakit::class)],
|
||||
'waktu_kemunculan_terparah' => ['nullable', 'string', new Enum(WaktuKemunculanTerparahHamaPenyakit::class)],
|
||||
|
||||
'metode_paling_sering_dilakukan' => ['nullable', 'string'],
|
||||
|
||||
'volume_obat_obatan_permusim' => ['nullable', 'numeric'],
|
||||
|
||||
// 2.6 Sanitasi Kebun
|
||||
|
||||
'frekuensi_sanitasi_lahan' => ['nullable', 'integer', new Enum(FrekuensiSanitasiLahan::class)],
|
||||
'penanganan_sisa_buah_ranting' => ['nullable', 'string', new Enum(PenangananSisaBuahRanting::class)],
|
||||
'penanganan_gulma' => ['nullable', 'integer', new Enum(PenangananGulma::class)],
|
||||
|
||||
|
||||
// 2.7 Pengelolaan Air & Irigasi
|
||||
|
||||
'kondisi_pengelolaan_air_irigasi' => ['nullable', 'integer', new Enum(KondisiPengelolaanAir::class)],
|
||||
|
||||
'sumber_air' => ['nullable', 'string'],
|
||||
'sumber_air_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'sistem_irigasi' => ['nullable', 'string'],
|
||||
'sistem_irigasi_lainnya' => ['nullable', 'string'],
|
||||
|
||||
'kebutuhan_air_permusim' => ['nullable', 'string', new Enum(KebutuhanAirPermusim::class)],
|
||||
|
||||
'kebiasaan_konservasi_tanah' => ['nullable', 'array'],
|
||||
'kebiasaan_konservasi_tanah.*' => ['string'],
|
||||
|
||||
'pemahaman_manfaat_konservasi' => ['nullable', 'string', new Enum(PemahamanManfaatKonservasi::class)],
|
||||
]);
|
||||
|
||||
$data = [];
|
||||
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
|
||||
if ($request->has('tenaga_kerja')) {
|
||||
$teknik_pemangkasan = $request->teknik_pemangkasan ?? [];
|
||||
if (($key = array_search('Lainnya', $teknik_pemangkasan)) !== false) {
|
||||
unset($teknik_pemangkasan[$key]);
|
||||
if (!empty($request->teknik_pemangkasan_lainnya)) {
|
||||
$teknik_pemangkasan[] = $request->teknik_pemangkasan_lainnya;
|
||||
}
|
||||
}
|
||||
$data = [
|
||||
'tenaga_kerja' => $validatedData['tenaga_kerja'],
|
||||
'frekuensi_pemangkasan_utama' => $validatedData['frekuensi_pemangkasan_komoditas_utama'],
|
||||
|
||||
'teknik_pemangkasan' => array_values($teknikPemangkasan),
|
||||
|
||||
'frekuensi_pemangkasan_penaung' => $validatedData['frekuensi_pemangkasan_pohon_penaung'],
|
||||
'penyerbukan_manual' => $validatedData['penyerbukan_manual'] ?? null,
|
||||
'deskripsi_penyerbukan_manual' => $validatedData['alasan_tidak_penyerbukan'] ?? null,
|
||||
'tingkat_keberhasilan_penyerbukan' => $validatedData['tingkat_keberhasilan_penyerbukan'] ?? null,
|
||||
'pemberian_pupuk' => $validatedData['pemberian_pupuk'] ?? null,
|
||||
'jenis_pupuk' => $validatedData['jenis_pupuk'] ?? null,
|
||||
'frekuensi_pemberian_pupuk' => ($validatedData['frekuensi_pemupukan'] ?? null) === 'Lainnya' ? ($validatedData['frekuensi_pemupukan_lainnya'] ?? null) : ($validatedData['frekuensi_pemupukan'] ?? null),
|
||||
'estimasi_dosis_pupuk_organik' => $validatedData['estimasi_dosis_pupuk_organik'] ?? null,
|
||||
'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),
|
||||
];
|
||||
}
|
||||
|
||||
if ($request->has('metode_penanganan_hama_penyakit')) {
|
||||
$data = [
|
||||
'metode_penanganan_opt' => $validatedData['metode_penanganan_hama_penyakit'] ?? null,
|
||||
'jenis_hama' => $validatedData['jenis_hama'] ?? [],
|
||||
'jenis_penyakit' => $validatedData['jenis_penyakit'] ?? [],
|
||||
'intensitas_serangan' => $validatedData['intensitas_serangan'] ?? null,
|
||||
'waktu_kemunculan_terparah' => $validatedData['waktu_kemunculan_terparah'] ?? null,
|
||||
'metode_paling_sering_dilakukan' => $validatedData['metode_paling_sering_dilakukan'] ?? null,
|
||||
'volume_obat_obatan_permusim' => $validatedData['volume_obat_obatan_permusim'] ?? null,
|
||||
'frekuensi_sanitasi_lahan' => $validatedData['frekuensi_sanitasi_lahan'] ?? null,
|
||||
'penanganan_sisa_buah_ranting' => $validatedData['penanganan_sisa_buah_ranting'] ?? null,
|
||||
'penanganan_gulma' => $validatedData['penanganan_gulma'] ?? null,
|
||||
'kondisi_pengelolaan_air' => $validatedData['kondisi_pengelolaan_air_irigasi'] ?? null,
|
||||
'sumber_air' => ($validatedData['sumber_air'] ?? null) === 'Lainnya' ? ($validatedData['sumber_air_lainnya'] ?? null) : ($validatedData['sumber_air'] ?? null),
|
||||
'sistem_irigasi' => ($validatedData['sistem_irigasi'] ?? null) === 'Lainnya' ? ($validatedData['sistem_irigasi_lainnya'] ?? null) : ($validatedData['sistem_irigasi'] ?? null),
|
||||
'kebutuhan_air_permusim' => $validatedData['kebutuhan_air_permusim'] ?? null,
|
||||
'kebiasaan_konservasi_tanah' => $validatedData['kebiasaan_konservasi_tanah'] ?? [],
|
||||
'pemahaman_manfaat_konservasi_tanah' => $validatedData['pemahaman_manfaat_konservasi'] ?? null,
|
||||
];
|
||||
}
|
||||
|
||||
$praktikBudidaya->update($data);
|
||||
|
||||
return back()->with('success', 'Data berhasil diperbarui.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
use App\Models\Pertanian\Petani;
|
||||
|
||||
class PraktikBudidaya extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'praktik_budidaya';
|
||||
|
||||
protected $casts = [
|
||||
'teknik_pemangkasan' => 'array',
|
||||
'jenis_hama' => 'array',
|
||||
'jenis_penyakit' => 'array',
|
||||
'kebiasaan_konservasi_tanah' => 'array'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'uid',
|
||||
'petani_id',
|
||||
'tenaga_kerja',
|
||||
'frekuensi_pemangkasan_utama',
|
||||
'teknik_pemangkasan',
|
||||
'frekuensi_pemangkasan_penaung',
|
||||
'penyerbukan_manual',
|
||||
'deskripsi_penyerbukan_manual',
|
||||
'tingkat_keberhasilan_penyerbukan',
|
||||
'pemberian_pupuk',
|
||||
'jenis_pupuk',
|
||||
'frekuensi_pemberian_pupuk',
|
||||
'estimasi_dosis_pupuk_organik',
|
||||
'estimasi_dosis_pupuk_anorganik',
|
||||
'waktu_pemberian_pupuk',
|
||||
'cara_pemberian_pupuk',
|
||||
'metode_penanganan_opt',
|
||||
'jenis_hama',
|
||||
'jenis_penyakit',
|
||||
'intensitas_serangan',
|
||||
'waktu_kemunculan_terparah',
|
||||
'metode_paling_sering_dilakukan',
|
||||
'volume_obat_obatan_permusim',
|
||||
'satuan_volume_obat_obatan',
|
||||
'frekuensi_sanitasi_lahan',
|
||||
'penanganan_sisa_buah_ranting',
|
||||
'penanganan_gulma',
|
||||
'kondisi_pengelolaan_air',
|
||||
'sumber_air',
|
||||
'sistem_irigasi',
|
||||
'kebutuan_air_permusim',
|
||||
'kebiasaan_konservasi_tanah',
|
||||
'pemahaman_manfaat_konservasi_tanah',
|
||||
// 'nilai_konservasi_tanah',
|
||||
// 'upah_tenaga_kerja'
|
||||
];
|
||||
|
||||
public function petani(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Petani::class, 'petani_id');
|
||||
}
|
||||
}
|
||||
@@ -104,11 +104,12 @@
|
||||
</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"
|
||||
class="form-check-input lainnya-checkbox @error('teknik_pemangkasan') is-invalid @enderror"
|
||||
type="checkbox"
|
||||
name="teknik_pemangkasan[]"
|
||||
value="Lainnya"
|
||||
id="teknik-pemangkasan-lainnya"
|
||||
data-target="#input-teknik-pemangkasan-lainnya"
|
||||
{{ old('teknik_pemangkasan_lainnya', $teknikPemangkasanLainnya) ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label text-nowrap" for="teknik-pemangkasan-lainnya">
|
||||
@@ -117,6 +118,7 @@
|
||||
|
||||
<input
|
||||
type="text"
|
||||
id="input-teknik-pemangkasan-lainnya"
|
||||
name="teknik_pemangkasan_lainnya"
|
||||
id="input-teknik-pemangkasan-lainnya"
|
||||
class="form-control form-control-sm w-50"
|
||||
@@ -190,16 +192,18 @@
|
||||
</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"
|
||||
<input class="form-check-input lainnya-radio @error('alasan_tidak_penyerbukan') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="alasan_tidak_penyerbukan"
|
||||
value="lainnya"
|
||||
id="alasan-lainnya"
|
||||
data-target="#input-alasan-lainnya"
|
||||
{{ old('alasan_tidak_penyerbukan', $alasanTidakPenyerbukanLainnya) ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label text-nowrap" for="alasan-lainnya">Lainnya:</label>
|
||||
|
||||
<input type="text"
|
||||
id="input-alasan-lainnya"
|
||||
name="alasan_tidak_penyerbukan_lainnya"
|
||||
class="form-control form-control-sm w-50"
|
||||
value="{{ old('alasan_tidak_penyerbukan_lainnya', $alasanTidakPenyerbukanLainnya ?? '') }}"
|
||||
@@ -308,16 +312,18 @@
|
||||
</div>
|
||||
|
||||
<div class="form-check d-flex align-items-center gap-2 mt-1">
|
||||
<input class="form-check-input @error('frekuensi_pemupukan') is-invalid @enderror"
|
||||
<input class="form-check-input lainnya-radio @error('frekuensi_pemupukan') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="frekuensi_pemupukan"
|
||||
value="Lainnya"
|
||||
id="frekuensi-pemupukan-lainnya"
|
||||
data-target="#input-frekuensi-pemupukan-lainnya"
|
||||
{{ old('frekuensi_pemupukan', $frekuensiPemupukanLainnya) ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label text-nowrap" for="frekuensi-pemupukan-lainnya">Berapa kali:</label>
|
||||
|
||||
<input type="text"
|
||||
id="input-frekuensi-pemupukan-lainnya"
|
||||
name="frekuensi_pemupukan_lainnya"
|
||||
class="form-control form-control-sm w-50"
|
||||
value="{{ old('frekuensi_pemupukan_lainnya', $frekuensiPemupukanLainnya ?? '') }}"
|
||||
@@ -427,16 +433,18 @@
|
||||
</div>
|
||||
|
||||
<div class="form-check d-flex align-items-center gap-2 mt-1">
|
||||
<input class="form-check-input @error('waktu_pemberian_pupuk') is-invalid @enderror"
|
||||
<input class="form-check-input lainnya-radio @error('waktu_pemberian_pupuk') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="waktu_pemberian_pupuk"
|
||||
value="Lainnya"
|
||||
id="alasan-lainnya"
|
||||
id="waktu-lainnya"
|
||||
data-target="#input-waktu-lainnya"
|
||||
{{ old('waktu_pemberian_pupuk', $waktuPemberianPupukLainnya) ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label text-nowrap" for="alasan-lainnya">Lainnya:</label>
|
||||
<label class="form-check-label text-nowrap" for="waktu_lainnya">Lainnya:</label>
|
||||
|
||||
<input type="text"
|
||||
id="input-waktu-lainnya"
|
||||
name="waktu_pemberian_pupuk_lainnya"
|
||||
class="form-control form-control-sm w-50"
|
||||
value="{{ old('waktu_pemberian_pupuk_lainnya', $waktuPemberianPupukLainnya) }}"
|
||||
@@ -455,9 +463,9 @@
|
||||
type="radio"
|
||||
name="cara_pemberian_pupuk"
|
||||
value="Ditabur di sekitar pohon"
|
||||
id="cara-ditabur"
|
||||
id="cara-pemberian-pupuk-ditabur"
|
||||
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Ditabur di sekitar pohon' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="cara-ditabur">Ditabur di sekitar pohon</label>
|
||||
<label class="form-check-label" for="cara_pemberian_pupuk_ditabur">Ditabur di sekitar pohon</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
@@ -465,9 +473,9 @@
|
||||
type="radio"
|
||||
name="cara_pemberian_pupuk"
|
||||
value="Dibenamkan dalam lubang/parit"
|
||||
id="cara-dibenamkan"
|
||||
id="cara-pemberian-pupuk-dibenamkan"
|
||||
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Dibenamkan dalam lubang/parit' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="cara-dibenamkan">Dibenamkan dalam lubang/parit</label>
|
||||
<label class="form-check-label" for="cara_pemberian_pupuk_dibenamkan">Dibenamkan dalam lubang/parit</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
@@ -475,9 +483,9 @@
|
||||
type="radio"
|
||||
name="cara_pemberian_pupuk"
|
||||
value="Dicairkan/dikocor"
|
||||
id="cara-dicairkan"
|
||||
id="cara-pemberian-pupuk-dicairkan"
|
||||
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Dicairkan/dikocor' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="cara-dicairkan">Dicairkan/dikocor</label>
|
||||
<label class="form-check-label" for="cara_pemberian_pupuk_dicairkan">Dicairkan/dikocor</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
@@ -485,28 +493,29 @@
|
||||
type="radio"
|
||||
name="cara_pemberian_pupuk"
|
||||
value="Disemprotkan ke daun"
|
||||
id="cara-disemprotkan"
|
||||
id="cara-pemberian-pupuk-disemprotkan"
|
||||
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Disemprotkan ke daun' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="cara-disemprotkan">Disemprotkan ke daun</label>
|
||||
<label class="form-check-label" for="cara_pemberian_pupuk_disemprotkan">Disemprotkan ke daun</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check d-flex align-items-center gap-2 mt-1">
|
||||
<input class="form-check-input @error('cara_pemberian_pupuk') is-invalid @enderror"
|
||||
<input class="form-check-input lainnya-radio @error('cara_pemberian_pupuk') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="cara_pemberian_pupuk"
|
||||
value="Lainnya"
|
||||
id="cara-lainnya"
|
||||
id="cara-pemberian-pupuk-lainnya"
|
||||
data-target="#input-cara-pemberian-pupuk-lainnya"
|
||||
{{ old('cara_pemberian_pupuk', $caraPemberianPupukLainnya) ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label text-nowrap" for="cara-lainnya">Lainnya:</label>
|
||||
|
||||
<input type="text"
|
||||
id="input-cara-pemberian-pupuk-lainnya"
|
||||
name="cara_pemberian_pupuk_lainnya"
|
||||
class="form-control form-control-sm w-50"
|
||||
value="{{ old('cara_pemberian_pupuk_lainnya', $caraPemberianPupukLainnya ?? '') }}"
|
||||
placeholder="Sebutkan cara lain...">
|
||||
</div>
|
||||
|
||||
@error('cara_pemberian_pupuk')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
@@ -514,6 +523,7 @@
|
||||
</div>
|
||||
<div class="mt-4 text-end">
|
||||
<button type="submit" class="btn btn-success">
|
||||
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
@@ -521,9 +531,7 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<form id="praktikBudidayaForm"
|
||||
method="POST">
|
||||
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
@@ -686,8 +694,8 @@
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="metode-paling-sering-dilakukan">Metode Yang Paling Sering Dilakukan<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('metode_paling_sereng_dilakukan') is-invalid @enderror" id="metode-paling-sering-dilakukan" name="metode_paling_sereng_dilakukan" value="{{ old('metode_paling_sering_dilakukan', $praktikBudidaya->metode_paling_sering_dilakukan) }}" placeholder="Contoh: Penyemprotan fungisida, sanitasi kebun, atau pengambilan hama secara manual">
|
||||
@error('metode_paling_sereng_dilakukan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
<input class="form-control @error('metode_paling_sering_dilakukan') is-invalid @enderror" id="metode-paling-sering-dilakukan" name="metode_paling_sering_dilakukan" value="{{ old('metode_paling_sering_dilakukan', $praktikBudidaya->metode_paling_sering_dilakukan) }}" placeholder="Contoh: Penyemprotan fungisida, sanitasi kebun, atau pengambilan hama secara manual">
|
||||
@error('metode_paling_sering_dilakukan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="volume-obat-obatan-permusim">
|
||||
@@ -877,9 +885,9 @@
|
||||
<label class="form-check-label text-nowrap" for="cara-lainnya">Lainnya:</label>
|
||||
|
||||
<input type="text"
|
||||
name="sumber_air_lainnya"
|
||||
name="sistem_irigasi_lainnya"
|
||||
class="form-control form-control-sm w-50"
|
||||
value="{{ old('sumber_air_lainnya', $sistemIrigasiLainnya ?? '') }}"
|
||||
value="{{ old('sistem_irigasi_lainnya', $sistemIrigasiLainnya ?? '') }}"
|
||||
placeholder="Sebutkan sistem irigasi lain...">
|
||||
</div>
|
||||
|
||||
@@ -910,9 +918,9 @@
|
||||
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
|
||||
type="checkbox"
|
||||
name="kebiasaan_konservasi_tanah[]"
|
||||
value="Membuat pematang/tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah"
|
||||
value="Membuat pematang atau tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah"
|
||||
id="konservasi-tanah-pematang"
|
||||
{{ in_array('Membuat pematang/tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah', old('kebiasaan_konservasi_tanah', $praktikBudidaya->kebiasaan_konservasi_tanah ?? [])) ? 'checked' : '' }}>
|
||||
{{ in_array('Membuat pematang atau tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah', old('kebiasaan_konservasi_tanah', $praktikBudidaya->kebiasaan_konservasi_tanah ?? [])) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="konservasi_tanah_pematang">Membuat pematang/tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah</label>
|
||||
</div>
|
||||
|
||||
@@ -975,62 +983,152 @@
|
||||
</div>
|
||||
<div class="mt-4 text-end">
|
||||
<button type="submit" class="btn btn-success">
|
||||
Simpan Praktik Budidaya
|
||||
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<form id="praktikBudidayaForm"
|
||||
method="POST">
|
||||
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div class="card mb-6">
|
||||
<div class="card-body pt-12">
|
||||
<!-- INFORMASI PETANI -->
|
||||
<h5 class="pb-4 border-bottom mb-4">Struktur Biaya Produksi Permusim</h5>
|
||||
<div class="row">
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="upah-tenaga-kerja">Upah Tenaga Kerja<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('upah_tenaga_kerja') is-invalid @enderror" id="upah-tenaga-kerja" name="upah_tenaga_kerja" value="{{ old('upah_tenaga_kerja', $praktikBudidaya->upah_tenaga_kerja) }}">
|
||||
@error('upah_tenaga_kerja')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
<label class="form-label" for="upah_tenaga_kerja">Upah Tenaga Kerja<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control rupiah-input @error('upah_tenaga_kerja') is-invalid @enderror"
|
||||
id="upah-tenaga-kerja"
|
||||
name="upah_tenaga_kerja"
|
||||
value="{{ old('upah_tenaga_kerja', filled($praktikBudidaya->upah_tenaga_kerja) ? number_format($praktikBudidaya->upah_tenaga_kerja, 0, ',', '.') : '' ) }}"
|
||||
placeholder="Contoh: 150.000">
|
||||
</div>
|
||||
@error('upah_tenaga_kerja')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya-bibit">Biaya Bibit<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('biaya_bibit') is-invalid @enderror" id="biaya-bibit" name="biaya_bibit" value="{{ old('biaya_bibit', $praktikBudidaya->biaya_bibit) }}">
|
||||
@error('biaya_bibit')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
<label class="form-label" for="biaya_bibit">Biaya Bibit<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control rupiah-input @error('biaya_bibit') is-invalid @enderror"
|
||||
id="biaya-bibit"
|
||||
name="biaya_bibit"
|
||||
value="{{ old('biaya_bibit', filled($praktikBudidaya->biaya_bibit) ? number_format($praktikBudidaya->biaya_bibit, 0, ',', '.') : '' ) }}"
|
||||
placeholder="Contoh: 150.000">
|
||||
</div>
|
||||
@error('biaya_bibit')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya-pupuk">Biaya Pupuk<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('biaya_pupuk') is-invalid @enderror" id="biaya-pupuk" name="biaya_pupuk" value="{{ old('biaya_pupuk', $praktikBudidaya->biaya_pupuk) }}">
|
||||
@error('biaya_pupuk')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
<label class="form-label" for="biaya_pupuk">Biaya Pupuk<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control rupiah-input @error('biaya_pupuk') is-invalid @enderror"
|
||||
id="biaya-pupuk"
|
||||
name="biaya_pupuk"
|
||||
value="{{ old('biaya_pupuk', filled($praktikBudidaya->biaya_pupuk) ? number_format($praktikBudidaya->biaya_pupuk, 0, ',', '.') : '') }}"
|
||||
placeholder="Contoh: 150.000">
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya-pestisida">Biaya Obat-obatan/Pestisida<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('biaya_pestisida') is-invalid @enderror" id="biaya-pestisida" name="biaya_pestisida" value="{{ old('biaya_pestisida', $praktikBudidaya->biaya_pestisida) }}">
|
||||
@error('biaya_pestisida')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
@error('biaya_pupuk')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya-sewa-alat">Biaya Sewa Alat/Mesin<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('biaya_sewa_alat') is-invalid @enderror" id="biaya-sewa-alat" name="biaya_sewa_alat" value="{{ old('biaya_sewa_alat', $praktikBudidaya->biaya_sewa_alat) }}">
|
||||
@error('biaya_sewa_alat')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
<label class="form-label" for="biaya_pestisida">Biaya Obat-obatan/Pestisida<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
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, ',', '.') : '') }}"
|
||||
placeholder="Contoh: 150.000">
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya-penyediaan-air">Biaya Penyediaan/Pengelolaan Air<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('biaya_penyediaan-air') is-invalid @enderror" id="biaya-penyediaan-air" name="biaya_penyediaan-air" value="{{ old('biaya_penyediaan-air', $praktikBudidaya->biaya_penyediaan_air) }}">
|
||||
@error('biaya_penyediaan-air')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
@error('biaya_pestisida')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya-lainnya">Biaya Lain-lainnya<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('biaya_lainnya') is-invalid @enderror" id="biaya-lainnya" name="biaya_lainnya" value="{{ old('biaya_lainnya', $praktikBudidaya->biaya_lainnya) }}">
|
||||
@error('biaya_lainnya')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
<label class="form-label" for="biaya_sewa_alat">Biaya Sewa Alat/Mesin<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control rupiah-input @error('biaya_sewa_alat') is-invalid @enderror"
|
||||
id="biaya-sewa-alat"
|
||||
name="biaya_sewa_alat"
|
||||
value="{{ old('biaya_sewa_alat', filled($praktikBudidaya->biaya_sewa_alat) ? number_format($praktikBudidaya->biaya_sewa_alat, 0, ',', '.') : '') }}"
|
||||
placeholder="Contoh: 150.000">
|
||||
</div>
|
||||
@error('biaya_sewa_alat')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="total-estimasi-biaya-produksi">Total EstimasiBiaya Produksi<span class="text-danger">*</span></label>
|
||||
<input class="form-control @error('total_estimasi_biaya_produksi') is-invalid @enderror" id="total-estimasi-biaya-produksi" name="total_estimasi_biaya_produksi" value="{{ old('total_estimasi_biaya_produksi', $praktikBudidaya->total_estimasi_biaya_produksi) }}">
|
||||
@error('total_estimasi_biaya_produksi')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
<label class="form-label" for="biaya_penyediaan_air">Biaya Penyediaan/Pengelolaan Air<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control rupiah-input @error('biaya_penyediaan_air') is-invalid @enderror"
|
||||
id="biaya-penyediaan-air"
|
||||
name="biaya_penyediaan_air"
|
||||
value="{{ old('biaya_penyediaan_air', filled($praktikBudidaya->biaya_penyediaan_air) ? number_format($praktikBudidaya->biaya_penyediaan_air, 0, ',', '.') : '') }}"
|
||||
placeholder="Contoh: 150.000">
|
||||
</div>
|
||||
@error('biaya_penyediaan_air')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya_lainnya">Biaya Lain-lain<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control rupiah-input @error('biaya_lainnya') is-invalid @enderror"
|
||||
id="biaya-lainnya"
|
||||
name="biaya_lainnya"
|
||||
value="{{ old('biaya_lainnya', filled($praktikBudidaya->biaya_lainnya) ? number_format($praktikBudidaya->biaya_lainnya, 0, ',', '.') : '') }}"
|
||||
placeholder="Contoh: 150.000">
|
||||
</div>
|
||||
@error('biaya_lainnya')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="total_estimasi_biaya_produksi">Total Estimasi Biaya Produksi<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Rp</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control rupiah-input @error('total_estimasi_biaya_produksi') is-invalid @enderror"
|
||||
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">
|
||||
</div>
|
||||
@error('total_estimasi_biaya_produksi')
|
||||
<div class="invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<h5 class="pb-4 border-bottom mb-4">Cara Mementukan Kematangan</h5>
|
||||
@@ -1169,18 +1267,16 @@
|
||||
</div>
|
||||
<div class="mt-4 text-end">
|
||||
<button type="submit" class="btn btn-success">
|
||||
Simpan Praktik Budidaya
|
||||
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<form id="praktikBudidayaForm"
|
||||
method="POST">
|
||||
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div class="card mb-6">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">Penanganan Awal Setelah Panen</h5>
|
||||
@@ -1239,7 +1335,8 @@
|
||||
</div>
|
||||
<div class="mt-4 text-end">
|
||||
<button type="submit" class="btn btn-success">
|
||||
Simpan Praktik Budidaya
|
||||
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1296,12 +1393,9 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<form id="praktikBudidayaForm"
|
||||
method="POST">
|
||||
|
||||
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
|
||||
<div class="card mb-6">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">Kehilangan Hasil Akibat Organisme Pengganggu Tumbuhan (OPT)</h5>
|
||||
@@ -1363,7 +1457,8 @@
|
||||
</div>
|
||||
<div class="mt-4 text-end">
|
||||
<button type="submit" class="btn btn-success">
|
||||
Simpan Praktik Budidaya
|
||||
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1399,38 +1494,95 @@
|
||||
}
|
||||
updateSwitchText();
|
||||
$switch.on('change', updateSwitchText);
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const rupiahInputs = document.querySelectorAll('.rupiah-input');
|
||||
|
||||
$('#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');
|
||||
rupiahInputs.forEach(function (input) {
|
||||
input.addEventListener('input', function () {
|
||||
let value = input.value.replace(/\D/g, '');
|
||||
|
||||
if (value === '') {
|
||||
input.value = '';
|
||||
return;
|
||||
}
|
||||
|
||||
input.value = new Intl.NumberFormat('id-ID').format(value);
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('form').forEach(function (form) {
|
||||
form.addEventListener('submit', function () {
|
||||
form.querySelectorAll('.rupiah-input').forEach(function (input) {
|
||||
input.value = input.value.replace(/\./g, '');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function toggleInput(trigger) {
|
||||
const target = document.querySelector(trigger.dataset.target);
|
||||
|
||||
if (!target) return;
|
||||
|
||||
if (trigger.type === 'checkbox') {
|
||||
target.disabled = !trigger.checked;
|
||||
|
||||
if (!trigger.checked) {
|
||||
target.value = '';
|
||||
}
|
||||
} else if (trigger.type === 'radio') {
|
||||
|
||||
const radios = document.querySelectorAll(
|
||||
`input[name="${trigger.name}"].lainnya-radio`
|
||||
);
|
||||
|
||||
radios.forEach(radio => {
|
||||
const input = document.querySelector(radio.dataset.target);
|
||||
|
||||
if (!input) return;
|
||||
|
||||
input.disabled = !radio.checked;
|
||||
|
||||
if (!radio.checked) {
|
||||
input.value = '';
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('input[type="radio"][data-target]').forEach(function (lainnyaRadio) {
|
||||
const target = document.querySelector(lainnyaRadio.dataset.target);
|
||||
|
||||
function toggleInput() {
|
||||
target.disabled = !lainnyaRadio.checked;
|
||||
|
||||
if (!lainnyaRadio.checked) {
|
||||
target.value = '';
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll(`input[name="${lainnyaRadio.name}"]`).forEach(function (radio) {
|
||||
radio.addEventListener('change', toggleInput);
|
||||
});
|
||||
|
||||
toggleInput();
|
||||
});
|
||||
|
||||
document.querySelectorAll('.lainnya-checkbox').forEach(function (trigger) {
|
||||
const target = document.querySelector(trigger.dataset.target);
|
||||
if (!target) return;
|
||||
|
||||
function toggleInput() {
|
||||
target.disabled = !trigger.checked;
|
||||
|
||||
if (!trigger.checked) {
|
||||
target.value = '';
|
||||
}
|
||||
}
|
||||
|
||||
trigger.addEventListener('change', toggleInput);
|
||||
toggleInput();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user