petani lahan dan skor
This commit is contained in:
@@ -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
|
||||
{
|
||||
@@ -38,6 +40,30 @@ class AksesPasar extends Model
|
||||
protected $casts = [
|
||||
'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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -5,9 +5,13 @@ 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 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');
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
<?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',
|
||||
];
|
||||
|
||||
}
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user