235 lines
9.8 KiB
PHP
235 lines
9.8 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Pertanian;
|
|
|
|
use App\Enums\SosialEkonomi\AlasanKreditDitolak;
|
|
use App\Enums\SosialEkonomi\BisaBeliPupukBersubsidi;
|
|
use App\Enums\SosialEkonomi\JenisAsetProduktif;
|
|
use App\Enums\SosialEkonomi\KemauanIkutProgram;
|
|
use App\Enums\SosialEkonomi\KemauanMencobaPraktikBaru;
|
|
use App\Enums\SosialEkonomi\KeaktifanPertemuanKelompok;
|
|
use App\Enums\SosialEkonomi\KedekatanSesamaAnggota;
|
|
use App\Enums\SosialEkonomi\KebebasanMemilihPembeli;
|
|
use App\Enums\SosialEkonomi\KeterikatanHutangPanen;
|
|
use App\Enums\SosialEkonomi\KeterlibatanProgramKeuanganFormal;
|
|
use App\Enums\SosialEkonomi\KondisiAsetProduktif;
|
|
use App\Enums\SosialEkonomi\ManfaatKelompokTani;
|
|
use App\Enums\SosialEkonomi\MinatPembeliHargaStabil;
|
|
use App\Enums\SosialEkonomi\OrientasiRencanaJangkaPanjang;
|
|
use App\Enums\SosialEkonomi\PanutanPetaniSukses;
|
|
use App\Enums\SosialEkonomi\PemahamanMutuHarga;
|
|
use App\Enums\SosialEkonomi\PengetahuanHargaHasilOlah;
|
|
use App\Enums\SosialEkonomi\PengalamanKreditKebun;
|
|
use App\Enums\SosialEkonomi\PeranDalamKelompok;
|
|
use App\Enums\SosialEkonomi\PernahBantuanNgoPerusahaan;
|
|
use App\Enums\SosialEkonomi\PernahJualHargaLebihTinggi;
|
|
use App\Enums\SosialEkonomi\PinjamanTokohAdatPanen;
|
|
use App\Enums\SosialEkonomi\PihakMembantuKonflik;
|
|
use App\Enums\SosialEkonomi\PraktikIjon;
|
|
use App\Enums\SosialEkonomi\SkorKecukupanPenghasilan;
|
|
use App\Enums\SosialEkonomi\SkorKejelasanStatusLahan;
|
|
use App\Enums\SosialEkonomi\SkorKemampuanMenabung;
|
|
use App\Enums\SosialEkonomi\SkorPeriodePaceklik;
|
|
use App\Enums\SosialEkonomi\StatusKartuTani;
|
|
use App\Enums\SosialEkonomi\StatusKepemilikanLahanSosialEkonomi;
|
|
use App\Enums\SosialEkonomi\StatusKonflik;
|
|
use App\Enums\SosialEkonomi\StatusProgramKeuanganFormal;
|
|
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
|
|
{
|
|
use SoftDeletes;
|
|
|
|
protected $table = 'sosial_ekonomi';
|
|
|
|
protected $fillable = [
|
|
'uid',
|
|
'petani_id',
|
|
'jumlah_tanggungan',
|
|
'anak_masih_sekolah',
|
|
'yang_ikut_bekerja',
|
|
'skor_periode_paceklik',
|
|
'bulan_paceklik',
|
|
'sumber_penghasilan_paceklik',
|
|
'total_estimasi_biaya_kebun_per_musim',
|
|
'skor_kemampuan_menabung',
|
|
'estimasi_tabungan_per_bulan',
|
|
'skor_kecukupan_penghasilan',
|
|
'alasan_kecukupan_penghasilan',
|
|
'status_kepemilikan_lahan',
|
|
'skor_kejelasan_status_lahan',
|
|
'ada_sertifikat_dokumen',
|
|
'ada_sengketa',
|
|
'keterangan_sengketa',
|
|
'pihak_membantu_konflik',
|
|
'pihak_membantu_konflik_nama',
|
|
'tahun_bantuan_konflik',
|
|
'status_konflik',
|
|
'kemauan_mencoba_praktik_baru',
|
|
'alasan_mencoba_praktik_baru',
|
|
'hambatan_mengubah_cara_bertani',
|
|
'pemahaman_mutu_harga',
|
|
'contoh_pemahaman_mutu_harga',
|
|
'pengetahuan_harga_hasil_olah',
|
|
'pernah_jual_harga_lebih_tinggi',
|
|
'penyebab_harga_lebih_tinggi',
|
|
'usaha_mutu_tambahan_harga',
|
|
'alasan_usaha_mutu_tambahan_harga',
|
|
'panutan_petani_sukses',
|
|
'nama_lokasi_panutan',
|
|
'kemauan_ikut_program',
|
|
'harapan_program',
|
|
'orientasi_rencana_jangka_panjang',
|
|
'rencana_jangka_panjang',
|
|
'terdaftar_kelompok_tani',
|
|
'nama_kelompok_tani',
|
|
'lama_bergabung_kelompok_tahun',
|
|
'kedekatan_sesama_anggota',
|
|
'keaktifan_pertemuan_kelompok',
|
|
'topik_biasa_dibahas',
|
|
'peran_dalam_kelompok',
|
|
'manfaat_kelompok_tani',
|
|
'status_kartu_tani',
|
|
'bisa_beli_pupuk_bersubsidi',
|
|
'manfaat_lain_kartu_tani',
|
|
'status_rekening_tabungan',
|
|
'nama_bank',
|
|
'pengalaman_kredit_kebun',
|
|
'alasan_kredit_ditolak',
|
|
'alasan_kredit_ditolak_lainnya',
|
|
'kondisi_aset_produktif',
|
|
'jenis_aset_produktif',
|
|
'jenis_aset_produktif_lainnya',
|
|
'keterangan_kondisi_aset',
|
|
'keterlibatan_program_keuangan_formal',
|
|
'status_program_keuangan_formal',
|
|
'program_keuangan_formal_lainnya_nama',
|
|
'pernah_bantuan_ngo_perusahaan',
|
|
'detail_bantuan_ngo_perusahaan',
|
|
'keterikatan_hutang_panen',
|
|
'pinjaman_tokoh_adat_panen',
|
|
'keterangan_pinjaman_tokoh_adat',
|
|
'total_hutang_rupiah',
|
|
'total_hutang_setara_kg_panen',
|
|
'total_hutang_tidak_bersedia',
|
|
'praktik_ijon',
|
|
'tekanan_jual_segera',
|
|
'penyebab_tekanan_jual_segera',
|
|
'kebebasan_memilih_pembeli',
|
|
'alasan_tidak_bebas_memilih_pembeli',
|
|
'minat_pembeli_harga_stabil',
|
|
'alasan_minat_pembeli_harga_stabil',
|
|
'created_by',
|
|
'updated_by',
|
|
'deleted_by',
|
|
];
|
|
|
|
protected $casts = [
|
|
'jumlah_tanggungan' => 'integer',
|
|
'anak_masih_sekolah' => 'integer',
|
|
'yang_ikut_bekerja' => 'integer',
|
|
'skor_periode_paceklik' => SkorPeriodePaceklik::class,
|
|
'total_estimasi_biaya_kebun_per_musim' => 'integer',
|
|
'skor_kemampuan_menabung' => SkorKemampuanMenabung::class,
|
|
'estimasi_tabungan_per_bulan' => 'integer',
|
|
'skor_kecukupan_penghasilan' => SkorKecukupanPenghasilan::class,
|
|
'status_kepemilikan_lahan' => StatusKepemilikanLahanSosialEkonomi::class,
|
|
'skor_kejelasan_status_lahan' => SkorKejelasanStatusLahan::class,
|
|
'ada_sertifikat_dokumen' => 'boolean',
|
|
'ada_sengketa' => 'boolean',
|
|
'pihak_membantu_konflik' => PihakMembantuKonflik::class,
|
|
'tahun_bantuan_konflik' => 'integer',
|
|
'status_konflik' => StatusKonflik::class,
|
|
'kemauan_mencoba_praktik_baru' => KemauanMencobaPraktikBaru::class,
|
|
'pemahaman_mutu_harga' => PemahamanMutuHarga::class,
|
|
'pengetahuan_harga_hasil_olah' => PengetahuanHargaHasilOlah::class,
|
|
'pernah_jual_harga_lebih_tinggi' => PernahJualHargaLebihTinggi::class,
|
|
'usaha_mutu_tambahan_harga' => UsahaMutuTambahanHarga::class,
|
|
'panutan_petani_sukses' => PanutanPetaniSukses::class,
|
|
'kemauan_ikut_program' => KemauanIkutProgram::class,
|
|
'orientasi_rencana_jangka_panjang' => OrientasiRencanaJangkaPanjang::class,
|
|
'terdaftar_kelompok_tani' => TerdaftarKelompokTani::class,
|
|
'lama_bergabung_kelompok_tahun' => 'integer',
|
|
'kedekatan_sesama_anggota' => KedekatanSesamaAnggota::class,
|
|
'keaktifan_pertemuan_kelompok' => KeaktifanPertemuanKelompok::class,
|
|
'peran_dalam_kelompok' => PeranDalamKelompok::class,
|
|
'manfaat_kelompok_tani' => ManfaatKelompokTani::class,
|
|
'status_kartu_tani' => StatusKartuTani::class,
|
|
'bisa_beli_pupuk_bersubsidi' => BisaBeliPupukBersubsidi::class,
|
|
'status_rekening_tabungan' => StatusRekeningTabungan::class,
|
|
'pengalaman_kredit_kebun' => PengalamanKreditKebun::class,
|
|
'alasan_kredit_ditolak' => 'array',
|
|
'kondisi_aset_produktif' => KondisiAsetProduktif::class,
|
|
'jenis_aset_produktif' => 'array',
|
|
'keterlibatan_program_keuangan_formal' => KeterlibatanProgramKeuanganFormal::class,
|
|
'status_program_keuangan_formal' => 'array',
|
|
'pernah_bantuan_ngo_perusahaan' => PernahBantuanNgoPerusahaan::class,
|
|
'detail_bantuan_ngo_perusahaan' => 'array',
|
|
'keterikatan_hutang_panen' => KeterikatanHutangPanen::class,
|
|
'pinjaman_tokoh_adat_panen' => PinjamanTokohAdatPanen::class,
|
|
'total_hutang_rupiah' => 'integer',
|
|
'total_hutang_setara_kg_panen' => 'float',
|
|
'total_hutang_tidak_bersedia' => 'boolean',
|
|
'praktik_ijon' => PraktikIjon::class,
|
|
'tekanan_jual_segera' => TekananJualSegera::class,
|
|
'kebebasan_memilih_pembeli' => KebebasanMemilihPembeli::class,
|
|
'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');
|
|
}
|
|
|
|
public function pendapatanKomoditas(): HasMany
|
|
{
|
|
return $this->hasMany(PendapatanKomoditas::class, 'sosial_ekonomi_id');
|
|
}
|
|
|
|
public function pendapatanLuarPertanian(): HasMany
|
|
{
|
|
return $this->hasMany(PendapatanLuarPertanian::class, 'sosial_ekonomi_id');
|
|
}
|
|
}
|