update kondisi tanaman

This commit is contained in:
2026-07-10 13:39:28 +07:00
parent 1788efaed5
commit 350df6adcf
2 changed files with 36 additions and 33 deletions
+6 -2
View File
@@ -7,16 +7,20 @@ enum KondisiTanaman: string
case BAIK = 'baik'; case BAIK = 'baik';
case SEDANG = 'sedang'; case SEDANG = 'sedang';
case BURUK = 'buruk'; case BURUK = 'buruk';
//case SAKIT= 'sakit';
case MATI = 'mati'; case MATI = 'mati';
case SEHAT = 'sehat';
case SAKIT = 'sakit';
public function label(): string public function label(): string
{ {
return match($this) { return match ($this) {
self::BAIK => 'Baik', self::BAIK => 'Baik',
self::SEDANG => 'Sedang', self::SEDANG => 'Sedang',
self::BURUK => 'Buruk', self::BURUK => 'Buruk',
self::MATI => 'Mati', self::MATI => 'Mati',
self::SEHAT => 'Sehat',
self::SAKIT => 'Sakit',
}; };
} }
+26 -27
View File
@@ -2,20 +2,17 @@
namespace App\Models\Pertanian; 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\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
use Carbon\Carbon; use Illuminate\Support\Str;
use App\Models\Wilayah\DesaKelurahan;
use App\Enums\Pendidikan;
use App\Enums\Pernikahan;
use App\Models\Pertanian\SkorPetani;
class Petani extends Model class Petani extends Model
{ {
@@ -50,7 +47,7 @@ class Petani extends Model
'created_by', 'created_by',
'updated_by', 'updated_by',
'deleted_by' 'deleted_by',
]; ];
protected $casts = [ protected $casts = [
@@ -63,7 +60,7 @@ class Petani extends Model
public function getUmurAttribute(): ?int public function getUmurAttribute(): ?int
{ {
if (!$this->tanggal_lahir) { if (! $this->tanggal_lahir) {
return null; return null;
} }
@@ -85,13 +82,13 @@ class Petani extends Model
static::saved(function (Petani $petani) { static::saved(function (Petani $petani) {
$skor = SkorPetani::where('petani_id')->orderBy('id')->first(); $skor = SkorPetani::where('petani_id')->orderBy('id')->first();
if (!$skor) { if (! $skor) {
$petaniUid = $petani->uid; $petaniUid = $petani->uid;
$part = explode('-', $petaniUid); $part = explode('-', $petaniUid);
$skor = SkorPetani::create([ $skor = SkorPetani::create([
'uid' => 'SKR-' . $part[1] . '-' . strtoupper(Str::random(10)), 'uid' => 'SKR-'.$part[1].'-'.strtoupper(Str::random(10)),
'created_by' => $petani->created_by, '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 public function skorLahanTanaman(): ?float
{ {
if (!Schema::hasTable('map_lahan')) { if (! Schema::hasTable('map_lahan')) {
return null; return null;
} }
@@ -146,13 +143,15 @@ class Petani extends Model
$nilaiKondisi = $lahan $nilaiKondisi = $lahan
->map(fn ($item) => match ($this->enumValue($item->kondisi_tanaman)) { ->map(fn ($item) => match ($this->enumValue($item->kondisi_tanaman)) {
'sehat' => 5,
'baik' => 5, 'baik' => 5,
'sedang' => 3, 'sedang' => 3,
'sakit' => 1,
'buruk' => 1, 'buruk' => 1,
'mati' => 0, 'mati' => 0,
default => null, default => null,
}) })
->filter(fn ($value) => !is_null($value)); ->filter(fn ($value) => ! is_null($value));
if ($nilaiKondisi->isEmpty()) { if ($nilaiKondisi->isEmpty()) {
return null; return null;
@@ -163,13 +162,13 @@ class Petani extends Model
public function skorPraktikBudidaya(): ?float public function skorPraktikBudidaya(): ?float
{ {
if (!Schema::hasTable('praktik_budidaya')) { if (! Schema::hasTable('praktik_budidaya')) {
return null; return null;
} }
$praktikBudidaya = $this->praktikBudidaya()->first(); $praktikBudidaya = $this->praktikBudidaya()->first();
if (!$praktikBudidaya) { if (! $praktikBudidaya) {
return null; return null;
} }
@@ -181,7 +180,7 @@ class Petani extends Model
$praktikBudidaya->penanganan_gulma, $praktikBudidaya->penanganan_gulma,
$praktikBudidaya->kondisi_pengelolaan_air, $praktikBudidaya->kondisi_pengelolaan_air,
$praktikBudidaya->nilai_konservasi_tanah, $praktikBudidaya->nilai_konservasi_tanah,
])->filter(fn ($value) => !is_null($value) && $value !== ''); ])->filter(fn ($value) => ! is_null($value) && $value !== '');
if ($nilai->isEmpty()) { if ($nilai->isEmpty()) {
return null; return null;
@@ -192,7 +191,7 @@ class Petani extends Model
public function skorPendidikan(): ?float public function skorPendidikan(): ?float
{ {
if (!$this->pendidikan_terakhir) { if (! $this->pendidikan_terakhir) {
return null; return null;
} }
@@ -215,13 +214,13 @@ class Petani extends Model
public function skorSosialEkonomi(): ?float public function skorSosialEkonomi(): ?float
{ {
if (!Schema::hasTable('sosial_ekonomi')) { if (! Schema::hasTable('sosial_ekonomi')) {
return null; return null;
} }
$sosialEkonomi = $this->sosialEkonomi()->first(); $sosialEkonomi = $this->sosialEkonomi()->first();
if (!$sosialEkonomi) { if (! $sosialEkonomi) {
return null; return null;
} }
@@ -245,7 +244,7 @@ class Petani extends Model
$this->enumValue($sosialEkonomi->keterikatan_hutang_panen), $this->enumValue($sosialEkonomi->keterikatan_hutang_panen),
$this->enumValue($sosialEkonomi->praktik_ijon), $this->enumValue($sosialEkonomi->praktik_ijon),
$this->enumValue($sosialEkonomi->kebebasan_memilih_pembeli), $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()) { if ($nilai->isEmpty()) {
return null; return null;
@@ -256,20 +255,20 @@ class Petani extends Model
public function skorAksesPasar(): ?float public function skorAksesPasar(): ?float
{ {
if (!Schema::hasTable('akses_pasar')) { if (! Schema::hasTable('akses_pasar')) {
return null; return null;
} }
$aksesPasar = $this->aksesPasar()->first(); $aksesPasar = $this->aksesPasar()->first();
if (!$aksesPasar) { if (! $aksesPasar) {
return null; return null;
} }
$nilai = collect(Schema::getColumnListing($aksesPasar->getTable())) $nilai = collect(Schema::getColumnListing($aksesPasar->getTable()))
->filter(fn ($field) => str_starts_with($field, 'skor_')) ->filter(fn ($field) => str_starts_with($field, 'skor_'))
->map(fn ($field) => $aksesPasar->getAttribute($field)) ->map(fn ($field) => $aksesPasar->getAttribute($field))
->filter(fn ($value) => !is_null($value) && $value !== ''); ->filter(fn ($value) => ! is_null($value) && $value !== '');
if ($nilai->isEmpty()) { if ($nilai->isEmpty()) {
return null; return null;
@@ -286,7 +285,7 @@ class Petani extends Model
$this->skorPendidikan(), $this->skorPendidikan(),
$this->skorSosialEkonomi(), $this->skorSosialEkonomi(),
$this->skorAksesPasar(), $this->skorAksesPasar(),
])->filter(fn ($value) => !is_null($value)); ])->filter(fn ($value) => ! is_null($value));
if ($nilai->isEmpty()) { if ($nilai->isEmpty()) {
return null; return null;