update kondisi tanaman
This commit is contained in:
@@ -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',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,24 +2,21 @@
|
|||||||
|
|
||||||
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
|
||||||
{
|
{
|
||||||
use SoftDeletes;
|
use SoftDeletes;
|
||||||
|
|
||||||
protected $table = 'petani';
|
protected $table = 'petani';
|
||||||
|
|
||||||
@@ -29,19 +26,19 @@ class Petani extends Model
|
|||||||
|
|
||||||
'nomor_telepon',
|
'nomor_telepon',
|
||||||
'alamat',
|
'alamat',
|
||||||
|
|
||||||
'kk',
|
'kk',
|
||||||
'ktp',
|
'ktp',
|
||||||
'uid',
|
'uid',
|
||||||
'desa_kelurahan_id',
|
'desa_kelurahan_id',
|
||||||
|
|
||||||
'foto',
|
'foto',
|
||||||
|
|
||||||
'path_kk',
|
'path_kk',
|
||||||
'file_kk',
|
'file_kk',
|
||||||
'path_ktp',
|
'path_ktp',
|
||||||
'file_ktp',
|
'file_ktp',
|
||||||
|
|
||||||
'jenis_kelamin',
|
'jenis_kelamin',
|
||||||
'tempat_lahir',
|
'tempat_lahir',
|
||||||
'tanggal_lahir',
|
'tanggal_lahir',
|
||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user