Compare commits

2 Commits
Author SHA1 Message Date
irwan.l.cahyono 1788efaed5 skor petani 2026-07-10 09:47:13 +07:00
irwan.l.cahyono d49bd4953c petani lahan dan skor 2026-07-10 08:47:48 +07:00
16 changed files with 644 additions and 166 deletions
+17
View File
@@ -7,4 +7,21 @@ enum KeparahanSerangan: string
case RINGAN = 'ringan';
case SEDANG = 'sedang';
case BERAT = 'berat';
public function label(): string
{
return match($this) {
self::RINGAN => 'Ringan',
self::SEDANG => 'Sedang',
self::BERAT => 'Berat',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
+19 -1
View File
@@ -7,6 +7,24 @@ enum KondisiTanaman: string
case BAIK = 'baik';
case SEDANG = 'sedang';
case BURUK = 'buruk';
case SAKIT= 'sakit';
//case SAKIT= 'sakit';
case MATI = 'mati';
public function label(): string
{
return match($this) {
self::BAIK => 'Baik',
self::SEDANG => 'Sedang',
self::BURUK => 'Buruk',
self::MATI => 'Mati',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
@@ -100,8 +100,9 @@ class PetaniController extends Controller
$validatedData['foto'] = $file_foto->store('petani/foto');
}
Petani::create([...$validatedData,
'uid' => 'PTN-'. strtoupper(Str::random(10)),
$petaniUID = strtoupper(Str::random(10));
$petani = Petani::create([...$validatedData,
'uid' => 'PTN-'. $petaniUID,
'created_by' => auth()->id(),
'updated_by' => auth()->id()]);
@@ -94,6 +94,10 @@ class PetaniLahanController extends Controller
'serangan_hama' => ['nullable', 'string', new Enum(SeranganHama::class)],
'penyakit_tanaman' => ['nullable', 'string', new Enum(PenyakitTanaman::class)],
'keparahan_serangan' => ['nullable', 'string', new Enum(KeparahanSerangan::class)],
'komoditas_lain' => ['nullable', 'array'],
'komoditas_lain.*' => ['integer', 'exists:master_komoditas,id'],
'tanaman_penaung' => ['nullable', 'array'],
'tanaman_penaung.*' => ['integer', 'exists:master_komoditas,id'],
]);
$komoditas = Komoditas::where('id', $request->komoditas_id)->first();
@@ -168,6 +172,7 @@ class PetaniLahanController extends Controller
->orderBy('id', 'asc')
->get();
$lahanSelected = Lahan::where('petani_id', $petaniId)->findOrFail($id);
$komoditas = Komoditas::all();
@@ -206,6 +211,10 @@ class PetaniLahanController extends Controller
'serangan_hama' => ['nullable', 'string', new Enum(SeranganHama::class)],
'penyakit_tanaman' => ['nullable', 'string', new Enum(PenyakitTanaman::class)],
'keparahan_serangan' => ['nullable', 'string', new Enum(KeparahanSerangan::class)],
'komoditas_lain' => ['nullable', 'array'],
'komoditas_lain.*' => ['integer', 'exists:master_komoditas,id'],
'tanaman_penaung' => ['nullable', 'array'],
'tanaman_penaung.*' => ['integer', 'exists:master_komoditas,id'],
]);
$komoditas = Komoditas::where('id', $request->komoditas_id)->first();
+26
View File
@@ -4,8 +4,10 @@ namespace App\Models\Pertanian;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Str;
use App\Models\User;
use App\Models\Pertanian\Petani;
use App\Models\Pertanian\SkorPetani;
class AksesPasar extends Model
{
@@ -39,6 +41,30 @@ class AksesPasar extends Model
'saluran_terdahulu' => 'array',
];
protected static function booted(): void
{
static::saved(function (AksesPasar $aksesPasar) {
$petani = Petani::find($aksesPasar->petani_id);
$skor = SkorPetani::where('petani_id')->orderBy('id')->first();
if (!$skor) {
$petaniUid = $petani->uid;
$part = explode('-', $petaniUid);
$skor = SkorPetani::create([
'petani_id' => $petani->id,
'uid' => 'SKR-' . $part[1] . '-' . strtoupper(Str::random(10)),
'created_by' => $petani->created_by,
'updated_by' => $petani->updated_by
]);
}
$skor->update([
'skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda' => $aksesPasar->skor_pengalaman,
'skor_d6_k4_1_kesadaran_akses_pasar_premium' => $aksesPasar->skor_kesadaran_premium,
'skor_d6_k5_1_hambatan_mutu' => $aksesPasar->skor_kepercayaan_responden
]);
});
}
public function petani()
{
+7
View File
@@ -14,6 +14,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
use App\Models\Pertanian\Komoditas;
use App\Models\Master\JenisKomoditas;
use App\Models\Master\Varietas;
use App\Enums\KondisiTanaman;
class Lahan extends Model
{
@@ -48,11 +49,17 @@ class Lahan extends Model
'created_by',
'updated_by',
'deleted_by',
'komoditas_lain',
'tanaman_penaung',
];
protected $casts = [
'status_kepemilikan' => StatusLahan::class,
'path' => 'array',
'komoditas_lain' => 'array',
'tanaman_penaung' => 'array',
'kondisi_tanaman' => KondisiTanaman::class,
];
public function profile(): BelongsTo
+24
View File
@@ -15,6 +15,8 @@ use App\Models\Wilayah\DesaKelurahan;
use App\Enums\Pendidikan;
use App\Enums\Pernikahan;
use App\Models\Pertanian\SkorPetani;
class Petani extends Model
{
use SoftDeletes;
@@ -78,6 +80,28 @@ class Petani extends Model
return $this->belongsTo(User::class, 'user_id');
}
protected static function booted(): void
{
static::saved(function (Petani $petani) {
$skor = SkorPetani::where('petani_id')->orderBy('id')->first();
if (!$skor) {
$petaniUid = $petani->uid;
$part = explode('-', $petaniUid);
$skor = SkorPetani::create([
'uid' => 'SKR-' . $part[1] . '-' . strtoupper(Str::random(10)),
'created_by' => $petani->created_by,
'updated_by' => $petani->updated_by
]);
}
});
}
public function skor(): HasOne
{
return $this->hasOne(SkorPetani::class, 'petani_id');
}
public function praktikBudidaya(): HasOne
{
return $this->hasOne(PraktikBudidaya::class, 'petani_id')->latestOfMany();
+34
View File
@@ -6,8 +6,12 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Support\Str;
use App\Models\Pertanian\Petani;
use App\Models\Pertanian\SkorPetani;
class PraktikBudidaya extends Model
{
@@ -71,6 +75,36 @@ class PraktikBudidaya extends Model
'deleted_by',
];
protected static function booted(): void
{
static::saved(function (PraktikBudidaya $praktikBudidaya) {
$petani = Petani::find($praktikBudidaya->petani_id);
$skor = SkorPetani::where('petani_id', $petani->id)->orderBy('id')->first();
if (!$skor) {
$petaniUid = $petani->uid;
$part = explode('-', $petaniUid);
$skor = SkorPetani::create([
'petani_id' => $petani->id,
'uid' => 'SKR-' . $part[1] . '-' . strtoupper(Str::random(10)),
'created_by' => $petani->created_by,
'updated_by' => $petani->updated_by
]);
}
$skor->update([
'skor_d2_k2_3_praktik_pemangkasan' => $praktikBudidaya->frekuensi_pemangkasan_komoditas_utama,
'skor_d2_k2_4_praktik_pemupukan' => $praktikBudidaya->pemberian_pupuk,
'skor_d2_k2_5_pengendalian_opt' => $praktikBudidaya->metode_penanganan_hama_penyakit,
'skor_d2_k2_6_sanitasi_kebun' => $praktikBudidaya->frekuensi_sanitasi_lahan,
'skor_d2_k2_6b_pengelolaan_gulma' => $praktikBudidaya->penanganan_gulma,
'skor_d2_k2_7_penglolaan_air_irigasi' => $praktikBudidaya->kondisi_pengelolaan_air_irigasi,
//'skor_d2_k2_8_praktik_konservasi_tanah' => $praktikBudidaya->kebiasaan_konservasi_tanah,
//'skor_d2_k3_1_penentuan_pematangan' => $praktikBudidaya->
]);
});
}
public function petani(): BelongsTo
{
return $this->belongsTo(Petani::class, 'petani_id');
+146
View File
@@ -0,0 +1,146 @@
<?php
namespace App\Models\Pertanian;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class SkorPetani extends Model
{
use SoftDeletes;
protected $table = 'petani_skor';
protected $fillable = [
'petani_id',
'uid',
'skor_kesiapan_adopsi',
'skor_d2_sistem_praktik_budidaya',
'skor_d4_sosial_ekonomi',
'skor_d6_rantai_nilai_akses_pasar',
'skor_komp_1_d4_k3_motivasi_kapasitas_adopsi',
'skor_komp_2_d4_k2_ekonomi_rumah_tangga',
'skor_komp_3_d2_praktik_budidaya_gap',
'skor_komp_4_d4_k4_keterlibatan_kelembagaan',
'skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan',
'skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar',
'skor_d4_k3_1_praktik_baru',
'skor_d4_k3_4_pemahaman_mutu_harga',
'skor_d4_k3_5_role_model',
'skor_d4_k3_6_kemampuan_keterlibatan_program',
'skor_d4_k3_7_orientasi_jangka_panjang',
'skor_d4_k2_5_stabilitas_penghasilan',
'skor_d4_k2_8_kemampuan_menabung',
'skor_d4_k2_9_kecukupan_penghasilan',
'skor_d4_k2_3_k2_7_rasio_biaya_produksi_pendapatan',
'skor_d4_k2_11_hak_kelola_lahan',
'skor_d2_k2_3_praktik_pemangkasan',
'skor_d2_k2_4_praktik_pemupukan',
'skor_d2_k2_5_pengendalian_opt',
'skor_d2_k2_6_sanitasi_kebun',
'skor_d2_k2_6b_pengelolaan_gulma',
'skor_d2_k2_7_penglolaan_air_irigasi',
'skor_d2_k2_8_praktik_konservasi_tanah',
'skor_d2_k3_1_penentuan_pematangan',
'skor_d2_k3_5_sortasi_awal_pemisahan_kualitas',
'skor_d4_k4_2_keaktifan_pertemuan',
'skor_d4_k4_3_peran_dalam_kelompok',
'skor_d4_k4_4_manfaat_dirasakan',
'skor_d4_k5_1_kepemilikan_rekening',
'skor_d4_k5_2_pengalaman_kredit_formal',
'skor_d4_k5_3_kepemilikan_aset_produktif',
'skor_d4_k5_4_kepemilikan_aset_tidak_produktif',
'skor_d4_k5_4_5_akses_program_bantuan',
'skor_d4_k6_3_keberadaan_hutang_terkait_panen',
'skor_d4_k6_5a_praktik_ijon',
'skor_d4_k6_5b_kebebasan_memilih_pembeli',
'skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda',
'skor_d6_k4_1_kesadaran_akses_pasar_premium',
'skor_d6_k5_1_hambatan_mutu',
'created_by',
'updated_by',
'deleted_by',
];
protected static function booted(): void
{
static::saved(function (SkorPetani $skorPetani) {
$skorPetani = $skorPetani->update([
'skor_komp_1_d4_k3_motivasi_kapasitas_adopsi' => (
$skorPetani->skor_d4_k3_1_praktik_baru +
$skorPetani->skor_d4_k3_4_pemahaman_mutu_harga +
$skorPetani->skor_d4_k3_5_role_model +
$skorPetani->skor_d4_k3_6_kemampuan_keterlibatan_program +
$skorPetani->skor_d4_k3_7_orientasi_jangka_panjang
) / 5,
'skor_komp_2_d4_k2_ekonomi_rumah_tangga' => (
$skorPetani->skor_d4_k2_5_stabilitas_penghasilan +
$skorPetani->skor_d4_k2_8_kemampuan_menabung +
$skorPetani->skor_d4_k2_9_kecukupan_penghasilan +
$skorPetani->skor_d4_k2_3_k2_7_rasio_biaya_produksi_pendapatan +
$skorPetani->skor_d4_k2_11_hak_kelola_lahan
) / 5,
'skor_komp_3_d2_praktik_budidaya_gap' => (
$skorPetani->skor_d2_k2_3_praktik_pemangkasan +
$skorPetani->skor_d2_k2_4_praktik_pemupukan +
$skorPetani->skor_d2_k2_5_pengendalian_opt +
$skorPetani->skor_d2_k2_6_sanitasi_kebun +
$skorPetani->skor_d2_k2_6b_pengelolaan_gulma +
$skorPetani->skor_d2_k2_7_penglolaan_air_irigasi +
$skorPetani->skor_d2_k2_8_praktik_konservasi_tanah +
$skorPetani->skor_d2_k3_1_penentuan_pematangan +
$skorPetani->skor_d2_k3_5_sortasi_awal_pemisahan_kualitas
) / 9,
'skor_komp_4_d4_k4_keterlibatan_kelembagaan' => (
$skorPetani->skor_d4_k4_2_keaktifan_pertemuan +
$skorPetani->skor_d4_k4_3_peran_dalam_kelompok +
$skorPetani->skor_d4_k4_4_manfaat_dirasakan
) / 3,
'skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan' => (
(
$skorPetani->skor_d4_k5_1_kepemilikan_rekening +
$skorPetani->skor_d4_k5_2_pengalaman_kredit_formal +
$skorPetani->skor_d4_k5_3_kepemilikan_aset_produktif +
$skorPetani->skor_d4_k5_4_5_akses_program_bantuan
) / 4 +
(
$skorPetani->skor_d4_k6_3_keberadaan_hutang_terkait_panen +
$skorPetani->skor_d4_k6_5a_praktik_ijon +
$skorPetani->skor_d4_k6_5b_kebebasan_memilih_pembeli
) / 3
) / 2,
'skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar' => (
$skorPetani->skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda +
$skorPetani->skor_d6_k4_1_kesadaran_akses_pasar_premium +
$skorPetani->skor_d6_k5_1_hambatan_mutu
) / 3
]);
$skorPetani = $skorPetani->update([
'skor_d2_sistem_praktik_budidaya' => (
$skorPetani->skor_komp_3_d2_praktik_budidaya_gap
),
'skor_d4_sosial_ekonomi' => (
$skorPetani->skor_komp_1_d4_k3_motivasi_kapasitas_adopsi
),
'skor_d6_rantai_nilai_akses_pasar' => (
$skorPetani->skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar * 0.25 +
$skorPetani->skor_komp_2_d4_k2_ekonomi_rumah_tangga * 0.20 +
$skorPetani->skor_komp_4_d4_k4_keterlibatan_kelembagaan * 0.15 +
$skorPetani->skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan * 0.10
) / 0.70,
'skor_kesiapan_adopsi' => (
$skorPetani->skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar * 0.25 +
$skorPetani->skor_komp_2_d4_k2_ekonomi_rumah_tangga * 0.20 +
$skorPetani->skor_komp_3_d2_praktik_budidaya_gap * 0.20 +
$skorPetani->skor_komp_4_d4_k4_keterlibatan_kelembagaan * 0.15 +
$skorPetani->skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan * 0.10 +
$skorPetani->skor_komp_1_d4_k3_motivasi_kapasitas_adopsi * 0.10
)
]);
});
}
}
+34
View File
@@ -38,10 +38,15 @@ use App\Enums\SosialEkonomi\StatusRekeningTabungan;
use App\Enums\SosialEkonomi\TekananJualSegera;
use App\Enums\SosialEkonomi\TerdaftarKelompokTani;
use App\Enums\SosialEkonomi\UsahaMutuTambahanHarga;
use App\Models\Pertanian\Petani;
use App\Models\Pertanian\SkorPetani;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Str;
class SosialEkonomi extends Model
{
@@ -183,6 +188,35 @@ class SosialEkonomi extends Model
'minat_pembeli_harga_stabil' => MinatPembeliHargaStabil::class,
];
protected static function booted(): void
{
static::saved(function (SosialEkonomi $sosialEkonomi) {
$petani = Petani::find($sosialEkonomi->petani_id);
$skor = SkorPetani::where('petani_id', $petani->id)->orderBy('id')->first();
if (!$skor) {
$petaniUid = $petani->uid;
$part = explode('-', $petaniUid);
$skor = SkorPetani::create([
'petani_id' => $petani->id,
'uid' => 'SKR-' . $part[1] . '-' . strtoupper(Str::random(10)),
'created_by' => $petani->created_by,
'updated_by' => $petani->updated_by
]);
}
$skor->update([
'skor_d4_k5_1_kepemilikan_rekening' => $sosialEkonomi->status_rekening_tabungan,
'skor_d4_k5_2_pengalaman_kredit_formal' => $sosialEkonomi->pengalaman_kredit_kebun,
'skor_d4_k5_3_kepemilikan_aset_produktif' => $sosialEkonomi->kondisi_aset_produktif,
'skor_d4_k5_4_akses_program_bantuan' => $sosialEkonomi->keterlibatan_program_keuangan_formal,
'skor_d4_k6_3_keberadaan_hutang_terkait_panen' => $sosialEkonomi->keterikatan_hutang_panen,
'skor_d4_k6_5a_praktik_ijon' => $sosialEkonomi->praktik_ijon,
'skor_d4_k6_5b_kebebasan_memilih_pembeli' => $sosialEkonomi->kebebasan_memilih_pembeli,
]);
});
}
public function petani(): BelongsTo
{
return $this->belongsTo(Petani::class, 'petani_id');
@@ -0,0 +1,91 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('petani_skor', function (Blueprint $table) {
$table->id();
$table->string('uid')->nullable()->unique();
$table->foreignId('petani_id')->nullable()->constrained('petani')->onDelete('cascade');
$table->float('skor_kesiapan_adopsi', 10)->nullable();
$table->float('skor_d2_sistem_praktik_budidaya', 10)->nullable();
$table->float('skor_d4_sosial_ekonomi', 10)->nullable();
$table->float('skor_d6_rantai_nilai_akses_pasar', 10)->nullable();
$table->float('skor_komp_1_d4_k3_motivasi_kapasitas_adopsi', 10)->nullable();
$table->float('skor_komp_2_d4_k2_ekonomi_rumah_tangga', 10)->nullable();
$table->float('skor_komp_3_d2_praktik_budidaya_gap', 10)->nullable();
$table->float('skor_komp_4_d4_k4_keterlibatan_kelembagaan', 10)->nullable();
$table->float('skor_komp_5_d4_k5_k6_akses_kebebasan_keuangan', 10)->nullable();
$table->float('skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar', 10)->nullable();
$table->float('skor_d4_k3_1_praktik_baru', 10)->nullable();
$table->float('skor_d4_k3_4_pemahaman_mutu_harga', 10)->nullable();
$table->float('skor_d4_k3_5_role_model', 10)->nullable();
$table->float('skor_d4_k3_6_kemampuan_keterlibatan_program', 10)->nullable();
$table->float('skor_d4_k3_7_orientasi_jangka_panjang', 10)->nullable();
$table->float('skor_d4_k2_5_stabilitas_penghasilan', 10)->nullable();
$table->float('skor_d4_k2_8_kemampuan_menabung', 10)->nullable();
$table->float('skor_d4_k2_9_kecukupan_penghasilan', 10)->nullable();
$table->float('skor_d4_k2_3_k2_7_rasio_biaya_produksi_pendapatan', 10)->nullable();
$table->float('skor_d4_k2_11_hak_kelola_lahan', 10)->nullable();
$table->float('skor_d2_k2_3_praktik_pemangkasan', 10)->nullable();
$table->float('skor_d2_k2_4_praktik_pemupukan', 10)->nullable();
$table->float('skor_d2_k2_5_pengendalian_opt', 10)->nullable();
$table->float('skor_d2_k2_6_sanitasi_kebun', 10)->nullable();
$table->float('skor_d2_k2_6b_pengelolaan_gulma', 10)->nullable();
$table->float('skor_d2_k2_7_penglolaan_air_irigasi', 10)->nullable();
$table->float('skor_d2_k2_8_praktik_konservasi_tanah', 10)->nullable();
$table->float('skor_d2_k3_1_penentuan_pematangan', 10)->nullable();
$table->float('skor_d2_k3_5_sortasi_awal_pemisahan_kualitas', 10)->nullable();
$table->float('skor_d4_k4_2_keaktifan_pertemuan', 10)->nullable();
$table->float('skor_d4_k4_3_peran_dalam_kelompok', 10)->nullable();
$table->float('skor_d4_k4_4_manfaat_dirasakan', 10)->nullable();
$table->float('skor_d4_k5_1_kepemilikan_rekening', 10)->nullable();
$table->float('skor_d4_k5_2_pengalaman_kredit_formal', 10)->nullable();
$table->float('skor_d4_k5_3_kepemilikan_aset_produktif', 10)->nullable();
//$table->float('skor_d4_k5_4_kepemilikan_aset_tidak_produktif', 10)->nullable();
//$table->float('skor_d4_k5_4_akses_program_bantuan_formal', 10)->nullable();
$table->float('skor_d4_k5_4_akses_program_bantuan', 10)->nullable();
$table->float('skor_d4_k6_3_keberadaan_hutang_terkait_panen', 10)->nullable();
$table->float('skor_d4_k6_5a_praktik_ijon', 10)->nullable();
$table->float('skor_d4_k6_5b_kebebasan_memilih_pembeli', 10)->nullable();
$table->float('skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda', 10)->nullable();
$table->float('skor_d6_k4_1_kesadaran_akses_pasar_premium', 10)->nullable();
$table->float('skor_d6_k5_1_hambatan_mutu', 10)->nullable();
$table->foreignId('created_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('updated_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('deleted_by')->nullable()->constrained('users')->onDelete('set null');
$table->timestamps();
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('petani_skor');
}
};
@@ -0,0 +1,26 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('map_lahan', function (Blueprint $table) {
$table->json('komoditas_lain')->nullable();
$table->json('tanaman_penaung')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
}
};
@@ -32,7 +32,7 @@
<div class="col-md-12">
@include('produktivitas.petani.header', ['petani' => $petani])
@include('produktivitas.petani.header')
<div class="card mb-6">
<div class="card-body pt-12">
@@ -135,6 +135,28 @@
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3 form-control-validation">
<label class="form-label">Komoditas Lain</label>
<select id="komoditas_lain" name="komoditas_lain[]" class="form-select @error('komoditas_lain[]') is-invalid @enderror" multiple>
<option value="">Pilih Komoditas</option>
@foreach($komoditas as $k)
<option value="{{ $k->id }}">{{ $k->nama }}</option>
@endforeach
</select>
@error('komoditas_lain')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3 form-control-validation">
<label class="form-label">Tanaman Penaung</label>
<select id="tanaman_penaung" name="tanaman_penaung[]" class="form-select @error('tanaman_penaung[]') is-invalid @enderror" multiple>
<option value="">Pilih Komoditas</option>
@foreach($komoditas as $k)
<option value="{{ $k->id }}">{{ $k->nama }}</option>
@endforeach
</select>
@error('tanaman_penaung[]')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
</div>
</div>
@@ -229,6 +251,8 @@
$('#serangan_hama').select2();
$('#penyakit_tanaman').select2();
$('#keparahan_serangan').select2();
$('#komoditas_lain').select2();
$('#tanaman_penaung').select2();
$('#provinsi_id').select2().change(function(e) {
e.preventDefault();
@@ -46,7 +46,7 @@
<input type="hidden" name="status_kepemilikan" value="sendiri">
<div class="row">
<div class="col-lg-12 mb-4">
<h6 class="mb-3">Data Lahan dan Komoditas</h6>
<h6 class="mb-3">Data Lahan dan Tanaman</h6>
<div class="row">
<div class="col-md-3 mb-3 form-control-validation">
@@ -147,7 +147,34 @@
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3 form-control-validation">
<label class="form-label">Komoditas Lain</label>
<select id="komoditas_lain" name="komoditas_lain[]" class="form-select @error('komoditas_lain[]') is-invalid @enderror" multiple>
<option value="">Pilih Komoditas</option>
@foreach($komoditas as $k)
<option value="{{ $k->id }}"
{{ in_array($k->id, old('komoditas_lain', $lahanSelected->komoditas_lain ?? [])) ? 'selected' : '' }}>
{{ $k->nama }}
</option>
@endforeach
</select>
@error('komoditas_lain')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3 form-control-validation">
<label class="form-label">Tanaman Penaung</label>
<select id="tanaman_penaung" name="tanaman_penaung[]" class="form-select @error('tanaman_penaung[]') is-invalid @enderror" multiple>
<option value="">Pilih Komoditas</option>
@foreach($komoditas as $k)
<option value="{{ $k->id }}"
{{ in_array($k->id, old('tanaman_penaung', $lahanSelected->tanaman_penaung ?? [])) ? 'selected' : '' }}>
{{ $k->nama }}
</option>
@endforeach
</select>
@error('tanaman_penaung[]')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
</div>
</div>
<div class="row mt-4">
@@ -320,6 +347,8 @@
</div>
</div>
</div>
@include('produktivitas.petani.lahan.tanaman.edit')
@include('produktivitas.petani.lahan.tanaman.delete')
@@ -342,6 +371,13 @@
const selectedJenisKomoditas = "{{ optional($lahanSelected->jenisKomoditas)->id }}";
const selectedVarietas = "{{ optional($lahanSelected->varietas)->id }}";
$('#kondisi_tanaman').select2();
$('#serangan_hama').select2();
$('#penyakit_tanaman').select2();
$('#keparahan_serangan').select2();
$('#komoditas_lain').select2();
$('#tanaman_penaung').select2();
$('#table-tanaman').DataTable({
"paging": true,
"lengthChange": true,
@@ -2,94 +2,70 @@
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="tanamanModalLabel">Ubah Data Tanaman</h5>
<h5 class="modal-title" id="deleteTanamanModalLabel">Hapus Data Tanaman</h5>
<button
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="deleteTanamanForm" method="POST" action="{{ route('petani.lahan-tanaman.tanaman.destroy', ['petani' => $petani->id, 'lahan_tanaman' => $lahanSelected->id, 'tanaman' => ':id']) }}">
@csrf
@method('DELETE')
<input type="hidden" name="id" id="deleteTanamanFormId">
<div class="row mb-3">
<div class="col-md-6">
<label for="komoditas" class="form-label">Komoditas</label>
<input type="text" class="form-control" id="delete-komoditas" name="komoditas" disabled>
</div>
<div class="col-md-6">
<label for="jenis_komoditas" class="form-label">Jenis Komoditas</label>
<input type="text" class="form-control" id="delete-jenis_komoditas" name="jenis_komoditas" disabled>
</div>
aria-label="Close">
</button>
</div>
<div class="modal-body">
<form id="deleteTanamanForm" method="POST" action="{{ route('petani.lahan-tanaman.tanaman.destroy', ['petani' => $petani->id, 'lahan_tanaman' => $lahanSelected->id, 'tanaman' => ':id']) }}">
@csrf
@method('DELETE')
<input type="hidden" name="id" id="deleteTanamanFormId">
<div class="row mb-3">
<div class="col-md-6">
<label for="komoditas" class="form-label">Komoditas</label>
<input type="text" class="form-control" id="delete-komoditas" name="komoditas" readonly>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="varietas" class="form-label">Varietas</label>
<input type="text" class="form-control" id="delete-varietas" name="varietas" disabled>
</div>
<div class="col-md-6">
<label for="jenis_komoditas" class="form-label">Jenis Komoditas</label>
<input type="text" class="form-control" id="delete-jenis_komoditas" name="jenis_komoditas" readonly>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="latitude" class="form-label">Latitude</label>
<input type="number" class="form-control" id="delete-latitude" name="latitude">
</div>
<div class="col-md-6">
<label for="longitude" class="form-label">Longitude</label>
<input type="number" class="form-control" id="delete-longitude" name="longitude">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="varietas" class="form-label">Varietas</label>
<input type="text" class="form-control" id="delete-varietas" name="varietas" readonly>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="kondisi" class="form-label">Kondisi Tanaman</label>
<select class="form-select" id="kondisi" name="kondisi_tanaman" required>
<option value="">Pilih Kondisi Tanaman</option>
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK->value ? 'selected' : '' }}>Baik</option>
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK->value ? 'selected' : '' }}>Buruk</option>
</select>
</div>
<div class="col-md-6 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>
<option value="{{ \App\Enums\SeranganHama::ULAT }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::ULAT->value ? 'selected' : '' }}>Ulat</option>
<option value="{{ \App\Enums\SeranganHama::BELALANG }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::BELALANG->value ? 'selected' : '' }}>Belalang</option>
<option value="{{ \App\Enums\SeranganHama::KUTU }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::KUTU->value ? 'selected' : '' }}>Kutu</option>
</select>
@error('serangan_hama')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="latitude" class="form-label">Latitude</label>
<input type="number" class="form-control" id="delete-latitude" name="latitude" readonly>
</div>
<div class="row mb-3">
<div class="col-md-6 form-control-validation">
<label class="form-label">Penyakit Tanaman</label>
<select id="penyakit_tanaman" name="penyakit_tanaman" class="form-select @error('penyakit_tanaman') is-invalid @enderror">
<option value="">Pilih Penyakit</option>
<option value="{{ \App\Enums\PenyakitTanaman::BUSUK_BUAH }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::BUSUK_BUAH->value ? 'selected' : '' }}>Busuk Buah</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_MENGUNING }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_MENGUNING->value ? 'selected' : '' }}>Daun Menguning</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK->value ? 'selected' : '' }}>Daun Bercak</option>
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU->value ? 'selected' : '' }}>Tanaman Layu</option>
</select>
@error('penyakit_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Keparahan Serangan</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->value ? 'selected' : '' }}>Ringan</option>
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT->value ? 'selected' : '' }}>Berat</option>
</select>
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6">
<label for="longitude" class="form-label">Longitude</label>
<input type="number" class="form-control" id="delete-longitude" name="longitude" readonly>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="kondisi" class="form-label">Kondisi Tanaman</label>
<input type="text" class="form-control" id="delete-kondisi" name="kondisi_tanaman" readonly>
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Serangan Hama</label>
<input type="text" class="form-control" id="delete-serangan_hama" name="serangan_hama" readonly>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6 form-control-validation">
<label class="form-label">Penyakit Tanaman</label>
<input type="text" class="form-control" id="delete-penyakit_tanaman" name="penyakit_tanaman" readonly>
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Keparahan Serangan</label>
<input type="text" class="form-control" id="delete-keparahan_serangan" name="keparahan_serangan" readonly>
</div>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-danger">Hapus Tanaman</button>
</div>
</form>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-danger">Hapus Tanaman</button>
</div>
</form>
</div>
</div>
</div>
@@ -100,6 +76,15 @@
$(document).ready(function() {
let currentRow = null;
function snakeToTitleCase(str) {
return str
.toLowerCase() // Ensure everything else is lowercase
.replace(/_/g, ' ') // Replace all underscores with spaces
.replace(/\b\w/g, function(letter) { // Find the first letter of each word
return letter.toUpperCase(); // Capitalize it
});
}
$('.delete-tanaman').on('click', function(e) {
e.preventDefault();
currentRow = $(this).closest('tr');
@@ -115,10 +100,10 @@
$('#delete-varietas').val(response.data.varietas.nama);
$('#delete-latitude').val(response.data.latitude);
$('#delete-longitude').val(response.data.longitude);
$('#delete-kondisi').val(response.data.kondisi_tanaman);
$('#delete-serangan_hama').val(response.data.serangan_hama);
$('#delete-penyakit_tanaman').val(response.data.penyakit_tanaman);
$('#delete-keparahan_serangan').val(response.data.keparahan_serangan);
$('#delete-kondisi').val(snakeToTitleCase(response.data.kondisi_tanaman));
$('#delete-serangan_hama').val(snakeToTitleCase(response.data.serangan_hama));
$('#delete-penyakit_tanaman').val(snakeToTitleCase(response.data.penyakit_tanaman));
$('#delete-keparahan_serangan').val(snakeToTitleCase(response.data.keparahan_serangan));
$('#deleteTanamanFormId').val(response.data.id);
$('#deleteTanamanModal').modal('show');
@@ -7,89 +7,89 @@
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="editTanamanForm" method="POST" action="{{ route('petani.lahan-tanaman.tanaman.update', ['petani' => $petani->id, 'lahan_tanaman' => $lahanSelected->id, 'tanaman' => ':id']) }}">
@csrf
@method('PUT')
<input type="hidden" name="id" id="editTanamanFormId">
<div class="row mb-3">
<div class="col-md-6">
<label for="komoditas" class="form-label">Komoditas</label>
<input type="text" class="form-control" id="komoditas" name="komoditas" disabled>
</div>
<div class="col-md-6">
<label for="jenis_komoditas" class="form-label">Jenis Komoditas</label>
<input type="text" class="form-control" id="jenis_komoditas" name="jenis_komoditas" disabled>
</div>
aria-label="Close">
</button>
</div>
<div class="modal-body">
<form id="editTanamanForm" method="POST" action="{{ route('petani.lahan-tanaman.tanaman.update', ['petani' => $petani->id, 'lahan_tanaman' => $lahanSelected->id, 'tanaman' => ':id']) }}">
@csrf
@method('PUT')
<input type="hidden" name="id" id="editTanamanFormId">
<div class="row mb-3">
<div class="col-md-6">
<label for="komoditas" class="form-label">Komoditas</label>
<input type="text" class="form-control" id="komoditas" name="komoditas" disabled>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="varietas" class="form-label">Varietas</label>
<input type="text" class="form-control" id="varietas" name="varietas" disabled>
</div>
<div class="col-md-6">
<label for="jenis_komoditas" class="form-label">Jenis Komoditas</label>
<input type="text" class="form-control" id="jenis_komoditas" name="jenis_komoditas" disabled>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="latitude" class="form-label">Latitude</label>
<input type="number" class="form-control" id="latitude" name="latitude">
</div>
<div class="col-md-6">
<label for="longitude" class="form-label">Longitude</label>
<input type="number" class="form-control" id="longitude" name="longitude">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="varietas" class="form-label">Varietas</label>
<input type="text" class="form-control" id="varietas" name="varietas" disabled>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="kondisi" class="form-label">Kondisi Tanaman</label>
<select class="form-select" id="kondisi" name="kondisi_tanaman" required>
<option value="">Pilih Kondisi Tanaman</option>
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK->value ? 'selected' : '' }}>Baik</option>
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK->value ? 'selected' : '' }}>Buruk</option>
</select>
</div>
<div class="col-md-6 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>
<option value="{{ \App\Enums\SeranganHama::ULAT }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::ULAT->value ? 'selected' : '' }}>Ulat</option>
<option value="{{ \App\Enums\SeranganHama::BELALANG }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::BELALANG->value ? 'selected' : '' }}>Belalang</option>
<option value="{{ \App\Enums\SeranganHama::KUTU }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::KUTU->value ? 'selected' : '' }}>Kutu</option>
</select>
@error('serangan_hama')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="latitude" class="form-label">Latitude</label>
<input type="number" class="form-control" id="latitude" name="latitude">
</div>
<div class="row mb-3">
<div class="col-md-6 form-control-validation">
<label class="form-label">Penyakit Tanaman</label>
<select id="penyakit_tanaman" name="penyakit_tanaman" class="form-select @error('penyakit_tanaman') is-invalid @enderror">
<option value="">Pilih Penyakit</option>
<option value="{{ \App\Enums\PenyakitTanaman::BUSUK_BUAH }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::BUSUK_BUAH->value ? 'selected' : '' }}>Busuk Buah</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_MENGUNING }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_MENGUNING->value ? 'selected' : '' }}>Daun Menguning</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK->value ? 'selected' : '' }}>Daun Bercak</option>
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU->value ? 'selected' : '' }}>Tanaman Layu</option>
</select>
@error('penyakit_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Keparahan Serangan</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->value ? 'selected' : '' }}>Ringan</option>
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT->value ? 'selected' : '' }}>Berat</option>
</select>
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6">
<label for="longitude" class="form-label">Longitude</label>
<input type="number" class="form-control" id="longitude" name="longitude">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="kondisi" class="form-label">Kondisi Tanaman</label>
<select class="form-select" id="kondisi" name="kondisi_tanaman" required>
<option value="">Pilih Kondisi Tanaman</option>
<option value="{{ \App\Enums\KondisiTanaman::BAIK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BAIK->value ? 'selected' : '' }}>Baik</option>
<option value="{{ \App\Enums\KondisiTanaman::SEDANG }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KondisiTanaman::BURUK }}" {{ old('kondisi_tanaman', $lahanSelected->kondisi_tanaman) == \App\Enums\KondisiTanaman::BURUK->value ? 'selected' : '' }}>Buruk</option>
</select>
</div>
<div class="col-md-6 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>
<option value="{{ \App\Enums\SeranganHama::ULAT }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::ULAT->value ? 'selected' : '' }}>Ulat</option>
<option value="{{ \App\Enums\SeranganHama::BELALANG }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::BELALANG->value ? 'selected' : '' }}>Belalang</option>
<option value="{{ \App\Enums\SeranganHama::KUTU }}" {{ old('serangan_hama', $lahanSelected->serangan_hama) == \App\Enums\SeranganHama::KUTU->value ? 'selected' : '' }}>Kutu</option>
</select>
@error('serangan_hama')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="row mb-3">
<div class="col-md-6 form-control-validation">
<label class="form-label">Penyakit Tanaman</label>
<select id="penyakit_tanaman" name="penyakit_tanaman" class="form-select @error('penyakit_tanaman') is-invalid @enderror">
<option value="">Pilih Penyakit</option>
<option value="{{ \App\Enums\PenyakitTanaman::BUSUK_BUAH }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::BUSUK_BUAH->value ? 'selected' : '' }}>Busuk Buah</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_MENGUNING }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_MENGUNING->value ? 'selected' : '' }}>Daun Menguning</option>
<option value="{{ \App\Enums\PenyakitTanaman::DAUN_BERCAK }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::DAUN_BERCAK->value ? 'selected' : '' }}>Daun Bercak</option>
<option value="{{ \App\Enums\PenyakitTanaman::TANAMAN_LAYU }}" {{ old('penyakit_tanaman', $lahanSelected->penyakit_tanaman) == \App\Enums\PenyakitTanaman::TANAMAN_LAYU->value ? 'selected' : '' }}>Tanaman Layu</option>
</select>
@error('penyakit_tanaman')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 form-control-validation">
<label class="form-label">Keparahan Serangan</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->value ? 'selected' : '' }}>Ringan</option>
<option value="{{ \App\Enums\KeparahanSerangan::SEDANG }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::SEDANG->value ? 'selected' : '' }}>Sedang</option>
<option value="{{ \App\Enums\KeparahanSerangan::BERAT }}" {{ old('keparahan_serangan', $lahanSelected->keparahan_serangan) == \App\Enums\KeparahanSerangan::BERAT->value ? 'selected' : '' }}>Berat</option>
</select>
@error('keparahan_serangan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-primary">Simpan Perubahan</button>
</div>
</form>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-primary">Simpan Perubahan</button>
</div>
</form>
</div>
</div>
</div>