From 350df6adcf5ed01f75e2e9fb2e73c54021379af4 Mon Sep 17 00:00:00 2001 From: SyaharaniSalsabilla Date: Fri, 10 Jul 2026 13:39:28 +0700 Subject: [PATCH] update kondisi tanaman --- app/Enums/KondisiTanaman.php | 8 +++-- app/Models/Pertanian/Petani.php | 61 ++++++++++++++++----------------- 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/app/Enums/KondisiTanaman.php b/app/Enums/KondisiTanaman.php index ae73179..46e5c35 100644 --- a/app/Enums/KondisiTanaman.php +++ b/app/Enums/KondisiTanaman.php @@ -7,16 +7,20 @@ enum KondisiTanaman: string case BAIK = 'baik'; case SEDANG = 'sedang'; case BURUK = 'buruk'; - //case SAKIT= 'sakit'; case MATI = 'mati'; + case SEHAT = 'sehat'; + case SAKIT = 'sakit'; + public function label(): string { - return match($this) { + return match ($this) { self::BAIK => 'Baik', self::SEDANG => 'Sedang', self::BURUK => 'Buruk', self::MATI => 'Mati', + self::SEHAT => 'Sehat', + self::SAKIT => 'Sakit', }; } diff --git a/app/Models/Pertanian/Petani.php b/app/Models/Pertanian/Petani.php index 2efbda8..459381c 100644 --- a/app/Models/Pertanian/Petani.php +++ b/app/Models/Pertanian/Petani.php @@ -2,24 +2,21 @@ namespace App\Models\Pertanian; +use App\Enums\Pendidikan; +use App\Enums\Pernikahan; +use App\Models\Wilayah\DesaKelurahan; +use Carbon\Carbon; 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\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Schema; -use Carbon\Carbon; - -use App\Models\Wilayah\DesaKelurahan; -use App\Enums\Pendidikan; -use App\Enums\Pernikahan; - -use App\Models\Pertanian\SkorPetani; +use Illuminate\Support\Str; class Petani extends Model { - use SoftDeletes; + use SoftDeletes; protected $table = 'petani'; @@ -29,19 +26,19 @@ class Petani extends Model 'nomor_telepon', 'alamat', - + 'kk', 'ktp', 'uid', 'desa_kelurahan_id', 'foto', - + 'path_kk', 'file_kk', 'path_ktp', 'file_ktp', - + 'jenis_kelamin', 'tempat_lahir', 'tanggal_lahir', @@ -50,7 +47,7 @@ class Petani extends Model 'created_by', 'updated_by', - 'deleted_by' + 'deleted_by', ]; protected $casts = [ @@ -63,7 +60,7 @@ class Petani extends Model public function getUmurAttribute(): ?int { - if (!$this->tanggal_lahir) { + if (! $this->tanggal_lahir) { return null; } @@ -85,13 +82,13 @@ class Petani extends Model static::saved(function (Petani $petani) { $skor = SkorPetani::where('petani_id')->orderBy('id')->first(); - if (!$skor) { + if (! $skor) { $petaniUid = $petani->uid; $part = explode('-', $petaniUid); $skor = SkorPetani::create([ - 'uid' => 'SKR-' . $part[1] . '-' . strtoupper(Str::random(10)), + 'uid' => 'SKR-'.$part[1].'-'.strtoupper(Str::random(10)), 'created_by' => $petani->created_by, - 'updated_by' => $petani->updated_by + 'updated_by' => $petani->updated_by, ]); } }); @@ -134,7 +131,7 @@ class Petani extends Model public function skorLahanTanaman(): ?float { - if (!Schema::hasTable('map_lahan')) { + if (! Schema::hasTable('map_lahan')) { return null; } @@ -146,13 +143,15 @@ class Petani extends Model $nilaiKondisi = $lahan ->map(fn ($item) => match ($this->enumValue($item->kondisi_tanaman)) { + 'sehat' => 5, 'baik' => 5, 'sedang' => 3, + 'sakit' => 1, 'buruk' => 1, 'mati' => 0, default => null, }) - ->filter(fn ($value) => !is_null($value)); + ->filter(fn ($value) => ! is_null($value)); if ($nilaiKondisi->isEmpty()) { return null; @@ -163,13 +162,13 @@ class Petani extends Model public function skorPraktikBudidaya(): ?float { - if (!Schema::hasTable('praktik_budidaya')) { + if (! Schema::hasTable('praktik_budidaya')) { return null; } $praktikBudidaya = $this->praktikBudidaya()->first(); - if (!$praktikBudidaya) { + if (! $praktikBudidaya) { return null; } @@ -181,7 +180,7 @@ class Petani extends Model $praktikBudidaya->penanganan_gulma, $praktikBudidaya->kondisi_pengelolaan_air, $praktikBudidaya->nilai_konservasi_tanah, - ])->filter(fn ($value) => !is_null($value) && $value !== ''); + ])->filter(fn ($value) => ! is_null($value) && $value !== ''); if ($nilai->isEmpty()) { return null; @@ -192,7 +191,7 @@ class Petani extends Model public function skorPendidikan(): ?float { - if (!$this->pendidikan_terakhir) { + if (! $this->pendidikan_terakhir) { return null; } @@ -215,13 +214,13 @@ class Petani extends Model public function skorSosialEkonomi(): ?float { - if (!Schema::hasTable('sosial_ekonomi')) { + if (! Schema::hasTable('sosial_ekonomi')) { return null; } $sosialEkonomi = $this->sosialEkonomi()->first(); - if (!$sosialEkonomi) { + if (! $sosialEkonomi) { return null; } @@ -245,7 +244,7 @@ class Petani extends Model $this->enumValue($sosialEkonomi->keterikatan_hutang_panen), $this->enumValue($sosialEkonomi->praktik_ijon), $this->enumValue($sosialEkonomi->kebebasan_memilih_pembeli), - ])->filter(fn ($value) => !is_null($value) && $value !== '' && (int) $value > 0); + ])->filter(fn ($value) => ! is_null($value) && $value !== '' && (int) $value > 0); if ($nilai->isEmpty()) { return null; @@ -256,20 +255,20 @@ class Petani extends Model public function skorAksesPasar(): ?float { - if (!Schema::hasTable('akses_pasar')) { + if (! Schema::hasTable('akses_pasar')) { return null; } $aksesPasar = $this->aksesPasar()->first(); - if (!$aksesPasar) { + if (! $aksesPasar) { return null; } $nilai = collect(Schema::getColumnListing($aksesPasar->getTable())) ->filter(fn ($field) => str_starts_with($field, 'skor_')) ->map(fn ($field) => $aksesPasar->getAttribute($field)) - ->filter(fn ($value) => !is_null($value) && $value !== ''); + ->filter(fn ($value) => ! is_null($value) && $value !== ''); if ($nilai->isEmpty()) { return null; @@ -286,7 +285,7 @@ class Petani extends Model $this->skorPendidikan(), $this->skorSosialEkonomi(), $this->skorAksesPasar(), - ])->filter(fn ($value) => !is_null($value)); + ])->filter(fn ($value) => ! is_null($value)); if ($nilai->isEmpty()) { return null;