update sosial ekonomi
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum AlasanKreditDitolak: string
|
||||||
|
{
|
||||||
|
case TIDAK_PUNYA_JAMINAN_AGUNAN = 'tidak_punya_jaminan_agunan';
|
||||||
|
case PROSES_TERLALU_RUMIT = 'proses_terlalu_rumit';
|
||||||
|
case TAKUT_TIDAK_BISA_BAYAR = 'takut_tidak_bisa_bayar';
|
||||||
|
case TIDAK_TAHU_CARANYA = 'tidak_tahu_caranya';
|
||||||
|
case LAINNYA = 'lainnya';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_PUNYA_JAMINAN_AGUNAN => 'Tidak punya jaminan-agunan',
|
||||||
|
self::PROSES_TERLALU_RUMIT => 'Proses terlalu rumit',
|
||||||
|
self::TAKUT_TIDAK_BISA_BAYAR => 'Takut tidak bisa bayar',
|
||||||
|
self::TIDAK_TAHU_CARANYA => 'Tidak tahu caranya',
|
||||||
|
self::LAINNYA => 'Lainnya',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum BisaBeliPupukBersubsidi: string
|
||||||
|
{
|
||||||
|
case YA = 'ya';
|
||||||
|
case TIDAK = 'tidak';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::YA => 'Ya',
|
||||||
|
self::TIDAK => 'Tidak',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum JenisAsetProduktif: string
|
||||||
|
{
|
||||||
|
case TERNAK = 'ternak';
|
||||||
|
case KENDARAAN = 'kendaraan';
|
||||||
|
case ALAT_PERTANIAN = 'alat_pertanian';
|
||||||
|
case LAINNYA = 'lainnya';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TERNAK => 'Ternak',
|
||||||
|
self::KENDARAAN => 'Kendaraan',
|
||||||
|
self::ALAT_PERTANIAN => 'Alat pertanian',
|
||||||
|
self::LAINNYA => 'Lainnya',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum KategoriPendapatanKomoditas: string
|
enum KategoriPendapatanKomoditas: string
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KeaktifanPertemuanKelompok: int
|
||||||
|
{
|
||||||
|
case TIDAK_PERNAH_HADIR = 1;
|
||||||
|
case JARANG_HADIR = 2;
|
||||||
|
case SERING_HADIR_LEBIH_BANYAK_DIAM = 3;
|
||||||
|
case HAMPIR_SELALU_HADIR_KADANG_DISKUSI = 4;
|
||||||
|
case SELALU_HADIR_AKTIF_DISKUSI = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_PERNAH_HADIR => 'Tidak pernah hadir',
|
||||||
|
self::JARANG_HADIR => 'Jarang hadir',
|
||||||
|
self::SERING_HADIR_LEBIH_BANYAK_DIAM => 'Sering hadir tapi lebih banyak diam',
|
||||||
|
self::HAMPIR_SELALU_HADIR_KADANG_DISKUSI => 'Hampir selalu hadir & kadang diskusi',
|
||||||
|
self::SELALU_HADIR_AKTIF_DISKUSI => 'Selalu hadir & aktif diskusi',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KebebasanMemilihPembeli: int
|
||||||
|
{
|
||||||
|
case TIDAK_BEBAS_TERIKAT_SATU_PEMBELI = 1;
|
||||||
|
case AGAK_TERIKAT_ADA_TEKANAN = 2;
|
||||||
|
case AGAK_BEBAS_CENDERUNG_PEMBELI_SAMA = 3;
|
||||||
|
case CUKUP_BEBAS_SESEKALI_PINDAH = 4;
|
||||||
|
case SANGAT_BEBAS_PINDAH_KAPAN_SAJA = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_BEBAS_TERIKAT_SATU_PEMBELI => 'Tidak bebas, terikat satu pembeli',
|
||||||
|
self::AGAK_TERIKAT_ADA_TEKANAN => 'Agak terikat, ada tekanan',
|
||||||
|
self::AGAK_BEBAS_CENDERUNG_PEMBELI_SAMA => 'Agak bebas, cenderung pembeli sama',
|
||||||
|
self::CUKUP_BEBAS_SESEKALI_PINDAH => 'Cukup bebas, sesekali pindah',
|
||||||
|
self::SANGAT_BEBAS_PINDAH_KAPAN_SAJA => 'Sangat bebas, pindah kapan saja',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KedekatanSesamaAnggota: string
|
||||||
|
{
|
||||||
|
case SANGAT_DEKAT = 'sangat_dekat';
|
||||||
|
case CUKUP_DEKAT = 'cukup_dekat';
|
||||||
|
case SEBATAS_KENAL = 'sebatas_kenal';
|
||||||
|
case TIDAK_BEGITU_KENAL = 'tidak_begitu_kenal';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::SANGAT_DEKAT => 'Sangat dekat',
|
||||||
|
self::CUKUP_DEKAT => 'Cukup dekat',
|
||||||
|
self::SEBATAS_KENAL => 'Sebatas kenal',
|
||||||
|
self::TIDAK_BEGITU_KENAL => 'Tidak begitu kenal',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KemauanIkutProgram: int
|
||||||
|
{
|
||||||
|
case TIDAK_MAU = 1;
|
||||||
|
case RAGU_RAGU = 2;
|
||||||
|
case MAU_PERLU_DIPASTIKAN_MANFAAT = 3;
|
||||||
|
case MAU_LIHAT_PROGRAM_DULU = 4;
|
||||||
|
case MAU_LANGSUNG_IKUT = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_MAU => 'Tidak mau',
|
||||||
|
self::RAGU_RAGU => 'Ragu-ragu',
|
||||||
|
self::MAU_PERLU_DIPASTIKAN_MANFAAT => 'Mau, perlu dipastikan manfaatnya',
|
||||||
|
self::MAU_LIHAT_PROGRAM_DULU => 'Mau, ingin lihat programnya dulu',
|
||||||
|
self::MAU_LANGSUNG_IKUT => 'Mau, langsung ikut',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KemauanMencobaPraktikBaru: int
|
||||||
|
{
|
||||||
|
case TIDAK_MAU = 1;
|
||||||
|
case RAGU_RAGU = 2;
|
||||||
|
case MAU_LIHAT_HASIL_DULU = 3;
|
||||||
|
case MAU_LANGSUNG_COBA = 4;
|
||||||
|
case MAU_COBA_SAMPAI_BERHASIL = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_MAU => 'Tidak mau',
|
||||||
|
self::RAGU_RAGU => 'Ragu-ragu',
|
||||||
|
self::MAU_LIHAT_HASIL_DULU => 'Mau, lihat hasil dulu',
|
||||||
|
self::MAU_LANGSUNG_COBA => 'Mau langsung coba',
|
||||||
|
self::MAU_COBA_SAMPAI_BERHASIL => 'Mau coba sampai berhasil',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KeterikatanHutangPanen: int
|
||||||
|
{
|
||||||
|
case TIDAK_BERSEDIA_MENJAWAB = 0;
|
||||||
|
case HUTANG_BESAR_HAMPIR_SELURUH_PANEN_TERIKAT = 1;
|
||||||
|
case HUTANG_LEBIH_DARI_SEPARUH_PANEN_TERIKAT = 2;
|
||||||
|
case HUTANG_SEBAGIAN_KECIL_TERIKAT = 3;
|
||||||
|
case HUTANG_KECIL_TIDAK_MENGIKAT_PANEN = 4;
|
||||||
|
case TIDAK_ADA = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_BERSEDIA_MENJAWAB => 'Tidak bersedia menjawab',
|
||||||
|
self::HUTANG_BESAR_HAMPIR_SELURUH_PANEN_TERIKAT => 'Ada hutang besar, hampir seluruh panen terikat',
|
||||||
|
self::HUTANG_LEBIH_DARI_SEPARUH_PANEN_TERIKAT => 'Ada hutang, >separuh panen terikat',
|
||||||
|
self::HUTANG_SEBAGIAN_KECIL_TERIKAT => 'Ada hutang, sebagian kecil terikat',
|
||||||
|
self::HUTANG_KECIL_TIDAK_MENGIKAT_PANEN => 'Ada hutang kecil, tidak mengikat panen',
|
||||||
|
self::TIDAK_ADA => 'Tidak ada',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KeterlibatanProgramKeuanganFormal: int
|
||||||
|
{
|
||||||
|
case TIDAK_PERNAH_MENERIMA = 1;
|
||||||
|
case PERNAH_SATU_TIDAK_BERMANFAAT = 2;
|
||||||
|
case SEDANG_MENERIMA_SATU = 3;
|
||||||
|
case SEDANG_MENERIMA_LEBIH_DARI_SATU = 4;
|
||||||
|
case AKTIF_BEBERAPA_PROGRAM_BERMANFAAT = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_PERNAH_MENERIMA => 'Tidak pernah menerima',
|
||||||
|
self::PERNAH_SATU_TIDAK_BERMANFAAT => 'Pernah 1 program, tidak lagi & tidak bermanfaat',
|
||||||
|
self::SEDANG_MENERIMA_SATU => 'Sedang menerima 1 program',
|
||||||
|
self::SEDANG_MENERIMA_LEBIH_DARI_SATU => 'Sedang menerima >1 program',
|
||||||
|
self::AKTIF_BEBERAPA_PROGRAM_BERMANFAAT => 'Aktif beberapa program & merasakan manfaat nyata',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum KondisiAsetProduktif: int
|
||||||
|
{
|
||||||
|
case TIDAK_ADA = 1;
|
||||||
|
case ADA_SATU_KURANG_BAIK = 2;
|
||||||
|
case ADA_SATU_BAIK = 3;
|
||||||
|
case ADA_DUA_LEBIH_SEBAGIAN_KURANG_BAIK = 4;
|
||||||
|
case ADA_DUA_LEBIH_SEMUA_BAIK = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_ADA => 'Tidak ada',
|
||||||
|
self::ADA_SATU_KURANG_BAIK => 'Ada 1 jenis, kondisi kurang baik',
|
||||||
|
self::ADA_SATU_BAIK => 'Ada 1 jenis, kondisi baik',
|
||||||
|
self::ADA_DUA_LEBIH_SEBAGIAN_KURANG_BAIK => 'Ada 2+ jenis, sebagian kurang baik',
|
||||||
|
self::ADA_DUA_LEBIH_SEMUA_BAIK => 'Ada 2+ jenis, semua kondisi baik',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum ManfaatKelompokTani: int
|
||||||
|
{
|
||||||
|
case TIDAK_ADA_MANFAAT = 1;
|
||||||
|
case MANFAAT_SOSIAL_SAJA = 2;
|
||||||
|
case SEDIKIT_MANFAAT_PRODUKSI_PEMASARAN = 3;
|
||||||
|
case MANFAAT_CUKUP_TERASA = 4;
|
||||||
|
case MANFAAT_NYATA_SIGNIFIKAN = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_ADA_MANFAAT => 'Tidak ada manfaat',
|
||||||
|
self::MANFAAT_SOSIAL_SAJA => 'Manfaat sosial saja',
|
||||||
|
self::SEDIKIT_MANFAAT_PRODUKSI_PEMASARAN => 'Sedikit manfaat produksi-pemasaran',
|
||||||
|
self::MANFAAT_CUKUP_TERASA => 'Manfaat cukup terasa',
|
||||||
|
self::MANFAAT_NYATA_SIGNIFIKAN => 'Manfaat nyata & signifikan',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum MinatPembeliHargaStabil: string
|
||||||
|
{
|
||||||
|
case MAU_HARGA_STABIL_LEBIH_PENTING = 'mau_harga_stabil_lebih_penting';
|
||||||
|
case MAU_TAPI_INGIN_BANDINGKAN_DULU = 'mau_tapi_ingin_bandingkan_dulu';
|
||||||
|
case RAGU_RAGU = 'ragu_ragu';
|
||||||
|
case TIDAK_MAU_CARI_HARGA_TERBAIK = 'tidak_mau_cari_harga_terbaik';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::MAU_HARGA_STABIL_LEBIH_PENTING => 'Mau-harga stabil lebih penting',
|
||||||
|
self::MAU_TAPI_INGIN_BANDINGKAN_DULU => 'Mau tapi ingin bandingkan dulu',
|
||||||
|
self::RAGU_RAGU => 'Ragu-ragu',
|
||||||
|
self::TIDAK_MAU_CARI_HARGA_TERBAIK => 'Tidak mau-cari harga terbaik tiap jual',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum OrientasiRencanaJangkaPanjang: int
|
||||||
|
{
|
||||||
|
case BELUM_KEPIKIRAN = 1;
|
||||||
|
case INGIN_TETAP_SEPERTI_SEKARANG = 2;
|
||||||
|
case INGIN_BERUBAH_BELUM_TAHU_CARANYA = 3;
|
||||||
|
case INGIN_SUDAH_MULAI_DIPIKIRKAN = 4;
|
||||||
|
case PUNYA_RENCANA_KONKRET = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::BELUM_KEPIKIRAN => 'Belum kepikiran',
|
||||||
|
self::INGIN_TETAP_SEPERTI_SEKARANG => 'Ingin tetap seperti sekarang',
|
||||||
|
self::INGIN_BERUBAH_BELUM_TAHU_CARANYA => 'Ada keinginan berubah tapi belum tahu caranya',
|
||||||
|
self::INGIN_SUDAH_MULAI_DIPIKIRKAN => 'Ada keinginan & sudah mulai dipikirkan',
|
||||||
|
self::PUNYA_RENCANA_KONKRET => 'Sudah punya rencana konkret',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PanutanPetaniSukses: int
|
||||||
|
{
|
||||||
|
case TIDAK_ADA = 1;
|
||||||
|
case ADA_DENGAR_DARI_ORANG_LAIN = 2;
|
||||||
|
case TAHU_SIAPA_TIDAK_KENAL = 3;
|
||||||
|
case KENAL_BELUM_DISKUSI = 4;
|
||||||
|
case KENAL_PERNAH_DISKUSI_LANGSUNG = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_ADA => 'Tidak ada',
|
||||||
|
self::ADA_DENGAR_DARI_ORANG_LAIN => 'Ada, dengar dari orang lain saja',
|
||||||
|
self::TAHU_SIAPA_TIDAK_KENAL => 'Tahu siapa, tapi tidak kenal',
|
||||||
|
self::KENAL_BELUM_DISKUSI => 'Kenal, belum pernah diskusi',
|
||||||
|
self::KENAL_PERNAH_DISKUSI_LANGSUNG => 'Kenal & pernah diskusi langsung',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PemahamanMutuHarga: int
|
||||||
|
{
|
||||||
|
case TIDAK_TAHU = 1;
|
||||||
|
case PERNAH_DENGAR_TIDAK_YAKIN = 2;
|
||||||
|
case TAHU_BEDA_BELUM_BUKTIKAN = 3;
|
||||||
|
case TAHU_PERNAH_HARGA_LEBIH_TINGGI = 4;
|
||||||
|
case TAHU_BETUL_BISA_JELASKAN_RINCI = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_TAHU => 'Tidak tahu',
|
||||||
|
self::PERNAH_DENGAR_TIDAK_YAKIN => 'Pernah dengar, tidak yakin',
|
||||||
|
self::TAHU_BEDA_BELUM_BUKTIKAN => 'Tahu ada beda, belum buktikan',
|
||||||
|
self::TAHU_PERNAH_HARGA_LEBIH_TINGGI => 'Tahu & pernah dapat harga lebih tinggi',
|
||||||
|
self::TAHU_BETUL_BISA_JELASKAN_RINCI => 'Tahu betul & bisa jelaskan rinci',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PengalamanKreditKebun: int
|
||||||
|
{
|
||||||
|
case TIDAK_PERNAH_MENCOBA = 1;
|
||||||
|
case PERNAH_COBA_DITOLAK = 2;
|
||||||
|
case SEDANG_PROSES = 3;
|
||||||
|
case BERHASIL_MASIH_PELUNASAN = 4;
|
||||||
|
case BERHASIL_SUDAH_LUNAS = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_PERNAH_MENCOBA => 'Tidak pernah mencoba',
|
||||||
|
self::PERNAH_COBA_DITOLAK => 'Pernah coba tapi ditolak',
|
||||||
|
self::SEDANG_PROSES => 'Sedang dalam proses',
|
||||||
|
self::BERHASIL_MASIH_PELUNASAN => 'Berhasil, masih proses pelunasan',
|
||||||
|
self::BERHASIL_SUDAH_LUNAS => 'Berhasil & sudah lunas',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PengetahuanHargaHasilOlah: string
|
||||||
|
{
|
||||||
|
case TIDAK_TAHU = 'tidak_tahu';
|
||||||
|
case PERNAH_DENGAR_TIDAK_TAHU_PENGARUH = 'pernah_dengar_tidak_tahu_pengaruh';
|
||||||
|
case TAHU_BEDA_HARGA_BELUM_COBA = 'tahu_beda_harga_belum_coba';
|
||||||
|
case PERNAH_JUAL_HASIL_OLAH_HARGA_LEBIH_TINGGI = 'pernah_jual_hasil_olah_harga_lebih_tinggi';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_TAHU => 'Tidak tahu',
|
||||||
|
self::PERNAH_DENGAR_TIDAK_TAHU_PENGARUH => 'Pernah dengar tapi tidak tahu pengaruh ke harga',
|
||||||
|
self::TAHU_BEDA_HARGA_BELUM_COBA => 'Tahu ada beda harga tapi belum coba',
|
||||||
|
self::PERNAH_JUAL_HASIL_OLAH_HARGA_LEBIH_TINGGI => 'Sudah pernah jual hasil olah dengan harga lebih tinggi',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PeranDalamKelompok: int
|
||||||
|
{
|
||||||
|
case ANGGOTA_PASIF = 1;
|
||||||
|
case ANGGOTA_BIASA_KADANG_DILIBATKAN = 2;
|
||||||
|
case ANGGOTA_BIASA_CUKUP_AKTIF = 3;
|
||||||
|
case PENGURUS_BELUM_BANYAK_TANGGUNG_JAWAB = 4;
|
||||||
|
case KETUA_PENGURUS_AKTIF = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::ANGGOTA_PASIF => 'Anggota pasif',
|
||||||
|
self::ANGGOTA_BIASA_KADANG_DILIBATKAN => 'Anggota biasa, kadang dilibatkan',
|
||||||
|
self::ANGGOTA_BIASA_CUKUP_AKTIF => 'Anggota biasa, cukup aktif',
|
||||||
|
self::PENGURUS_BELUM_BANYAK_TANGGUNG_JAWAB => 'Pengurus, belum banyak menjalankan tanggung jawab',
|
||||||
|
self::KETUA_PENGURUS_AKTIF => 'Ketua-pengurus aktif & menjalankan tanggung jawab nyata',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum PeriodePendapatan: string
|
enum PeriodePendapatan: string
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PernahBantuanNgoPerusahaan: string
|
||||||
|
{
|
||||||
|
case PERNAH = 'pernah';
|
||||||
|
case TIDAK_PERNAH = 'tidak_pernah';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::PERNAH => 'Pernah',
|
||||||
|
self::TIDAK_PERNAH => 'Tidak pernah',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PernahJualHargaLebihTinggi: string
|
||||||
|
{
|
||||||
|
case BELUM_PERNAH = 'belum_pernah';
|
||||||
|
case PERNAH = 'pernah';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::BELUM_PERNAH => 'Belum pernah',
|
||||||
|
self::PERNAH => 'Pernah',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum PihakMembantuKonflik: string
|
enum PihakMembantuKonflik: string
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PinjamanTokohAdatPanen: string
|
||||||
|
{
|
||||||
|
case TIDAK_ADA = 'tidak_ada';
|
||||||
|
case ADA = 'ada';
|
||||||
|
case TIDAK_BERSEDIA_MENJAWAB = 'tidak_bersedia_menjawab';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_ADA => 'Tidak ada',
|
||||||
|
self::ADA => 'Ada',
|
||||||
|
self::TIDAK_BERSEDIA_MENJAWAB => 'Tidak bersedia menjawab',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum PraktikIjon: int
|
||||||
|
{
|
||||||
|
case TIDAK_BERSEDIA_MENJAWAB = 0;
|
||||||
|
case HAMPIR_SELURUH_PANEN_TERIKAT = 1;
|
||||||
|
case SEBAGIAN_BESAR_TERIKAT = 2;
|
||||||
|
case SESEKALI_SEBAGIAN_KECIL = 3;
|
||||||
|
case PERNAH_SUDAH_LAMA_TIDAK_LAGI = 4;
|
||||||
|
case TIDAK_PERNAH = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_BERSEDIA_MENJAWAB => 'Tidak bersedia menjawab',
|
||||||
|
self::HAMPIR_SELURUH_PANEN_TERIKAT => 'Hampir seluruh panen terikat ijon',
|
||||||
|
self::SEBAGIAN_BESAR_TERIKAT => 'Sebagian besar terikat',
|
||||||
|
self::SESEKALI_SEBAGIAN_KECIL => 'Sesekali-sebagian kecil',
|
||||||
|
self::PERNAH_SUDAH_LAMA_TIDAK_LAGI => 'Pernah, sudah lama tidak lagi',
|
||||||
|
self::TIDAK_PERNAH => 'Tidak pernah',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum SkorKecukupanPenghasilan: int
|
enum SkorKecukupanPenghasilan: int
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum SkorKejelasanStatusLahan: int
|
enum SkorKejelasanStatusLahan: int
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum SkorKemampuanMenabung: int
|
enum SkorKemampuanMenabung: int
|
||||||
{
|
{
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum SkorPeriodePaceklik: int
|
enum SkorPeriodePaceklik: int
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum StatusKartuTani: string
|
||||||
|
{
|
||||||
|
case BELUM_PUNYA = 'belum_punya';
|
||||||
|
case SUDAH_PUNYA_BELUM_AKTIF = 'sudah_punya_belum_aktif';
|
||||||
|
case SUDAH_PUNYA_AKTIF_DIGUNAKAN = 'sudah_punya_aktif_digunakan';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::BELUM_PUNYA => 'Belum punya',
|
||||||
|
self::SUDAH_PUNYA_BELUM_AKTIF => 'Sudah punya tapi belum aktif',
|
||||||
|
self::SUDAH_PUNYA_AKTIF_DIGUNAKAN => 'Sudah punya & aktif digunakan',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum StatusKepemilikanLahanSosialEkonomi: string
|
enum StatusKepemilikanLahanSosialEkonomi: string
|
||||||
{
|
{
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Enums;
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
enum StatusKonflik: string
|
enum StatusKonflik: string
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum StatusProgramKeuanganFormal: string
|
||||||
|
{
|
||||||
|
case SEDANG_MENERIMA = 'sedang_menerima';
|
||||||
|
case PERNAH_TAPI_TIDAK_LAGI = 'pernah_tapi_tidak_lagi';
|
||||||
|
case BELUM_PERNAH = 'belum_pernah';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::SEDANG_MENERIMA => 'Sedang Menerima',
|
||||||
|
self::PERNAH_TAPI_TIDAK_LAGI => 'Pernah tapi Tidak Lagi',
|
||||||
|
self::BELUM_PERNAH => 'Belum Pernah',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum StatusRekeningTabungan: int
|
||||||
|
{
|
||||||
|
case TIDAK_PUNYA_REKENING = 1;
|
||||||
|
case PUNYA_TIDAK_AKTIF = 2;
|
||||||
|
case PUNYA_KADANG_DIGUNAKAN = 3;
|
||||||
|
case PUNYA_CUKUP_RUTIN = 4;
|
||||||
|
case AKTIF_RUTIN_DIGUNAKAN = 5;
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_PUNYA_REKENING => 'Tidak punya rekening',
|
||||||
|
self::PUNYA_TIDAK_AKTIF => 'Punya tapi tidak aktif',
|
||||||
|
self::PUNYA_KADANG_DIGUNAKAN => 'Punya, kadang digunakan',
|
||||||
|
self::PUNYA_CUKUP_RUTIN => 'Punya, cukup rutin',
|
||||||
|
self::AKTIF_RUTIN_DIGUNAKAN => 'Aktif & rutin digunakan',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum TekananJualSegera: string
|
||||||
|
{
|
||||||
|
case TIDAK_ADA = 'tidak_ada';
|
||||||
|
case ADA = 'ada';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::TIDAK_ADA => 'Tidak ada',
|
||||||
|
self::ADA => 'Ada',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum TerdaftarKelompokTani: string
|
||||||
|
{
|
||||||
|
case YA = 'ya';
|
||||||
|
case TIDAK = 'tidak';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::YA => 'Ya',
|
||||||
|
self::TIDAK => 'Tidak',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Enums\SosialEkonomi;
|
||||||
|
|
||||||
|
enum UsahaMutuTambahanHarga: string
|
||||||
|
{
|
||||||
|
case SEBANDING_COCOK_DICOBA = 'sebanding_cocok_dicoba';
|
||||||
|
case TIDAK_YAKIN = 'tidak_yakin';
|
||||||
|
case TIDAK_SEBANDING_TERLALU_BANYAK_USAHA = 'tidak_sebanding_terlalu_banyak_usaha';
|
||||||
|
|
||||||
|
public function label(): string
|
||||||
|
{
|
||||||
|
return match ($this) {
|
||||||
|
self::SEBANDING_COCOK_DICOBA => 'Sebanding-cocok dicoba',
|
||||||
|
self::TIDAK_YAKIN => 'Tidak yakin',
|
||||||
|
self::TIDAK_SEBANDING_TERLALU_BANYAK_USAHA => 'Tidak sebanding-terlalu banyak usaha',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function options(): array
|
||||||
|
{
|
||||||
|
return collect(self::cases())->map(fn ($case) => [
|
||||||
|
'value' => $case->value,
|
||||||
|
'label' => $case->label(),
|
||||||
|
])->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function values(): array
|
||||||
|
{
|
||||||
|
return array_column(self::cases(), 'value');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,15 +3,44 @@
|
|||||||
namespace App\Http\Controllers\Web\Produktivitas;
|
namespace App\Http\Controllers\Web\Produktivitas;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Enums\KategoriPendapatanKomoditas;
|
use App\Enums\SosialEkonomi\AlasanKreditDitolak;
|
||||||
use App\Enums\PeriodePendapatan;
|
use App\Enums\SosialEkonomi\BisaBeliPupukBersubsidi;
|
||||||
use App\Enums\PihakMembantuKonflik;
|
use App\Enums\SosialEkonomi\JenisAsetProduktif;
|
||||||
use App\Enums\SkorKecukupanPenghasilan;
|
use App\Enums\SosialEkonomi\KategoriPendapatanKomoditas;
|
||||||
use App\Enums\SkorKejelasanStatusLahan;
|
use App\Enums\SosialEkonomi\KemauanIkutProgram;
|
||||||
use App\Enums\SkorKemampuanMenabung;
|
use App\Enums\SosialEkonomi\KemauanMencobaPraktikBaru;
|
||||||
use App\Enums\SkorPeriodePaceklik;
|
use App\Enums\SosialEkonomi\KeaktifanPertemuanKelompok;
|
||||||
use App\Enums\StatusKepemilikanLahanSosialEkonomi;
|
use App\Enums\SosialEkonomi\KedekatanSesamaAnggota;
|
||||||
use App\Enums\StatusKonflik;
|
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\PeriodePendapatan;
|
||||||
|
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\Komoditas;
|
use App\Models\Pertanian\Komoditas;
|
||||||
use App\Models\Pertanian\Lahan;
|
use App\Models\Pertanian\Lahan;
|
||||||
use App\Models\Pertanian\Petani;
|
use App\Models\Pertanian\Petani;
|
||||||
@@ -35,20 +64,14 @@ class SosialEkonomiController extends Controller
|
|||||||
->where('petani_id', $petaniId)
|
->where('petani_id', $petaniId)
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
$pendapatanKomoditas = $sosialEkonomi?->pendapatanKomoditas ?? collect();
|
return $this->formView(
|
||||||
$pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values();
|
request(),
|
||||||
$pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values();
|
$petani,
|
||||||
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
|
$sosialEkonomi,
|
||||||
$komoditasPetani = $this->komoditasPetani($petani);
|
$sosialEkonomi
|
||||||
|
? 'produktivitas.petani.sosial-ekonomi.edit'
|
||||||
return view('produktivitas.petani.sosial-ekonomi.index', array_merge(compact(
|
: 'produktivitas.petani.sosial-ekonomi.index'
|
||||||
'petani',
|
);
|
||||||
'sosialEkonomi',
|
|
||||||
'pendapatanKomoditasUtama',
|
|
||||||
'pendapatanKomoditasLainnya',
|
|
||||||
'pendapatanLuarPertanian',
|
|
||||||
'komoditasPetani'
|
|
||||||
), $this->sosialEkonomiOptions()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function index(Request $request, Petani $petani)
|
public function index(Request $request, Petani $petani)
|
||||||
@@ -163,7 +186,7 @@ class SosialEkonomiController extends Controller
|
|||||||
$validated = $this->validateData($request, $sosialEkonomi->id);
|
$validated = $this->validateData($request, $sosialEkonomi->id);
|
||||||
|
|
||||||
$sosialEkonomi = DB::transaction(function () use ($request, $validated, $sosialEkonomi) {
|
$sosialEkonomi = DB::transaction(function () use ($request, $validated, $sosialEkonomi) {
|
||||||
$sosialEkonomi->update($this->sosialEkonomiPayload($validated) + [
|
$sosialEkonomi->update($this->sosialEkonomiPayload($validated, $sosialEkonomi) + [
|
||||||
'updated_by' => auth()->id(),
|
'updated_by' => auth()->id(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -212,14 +235,17 @@ class SosialEkonomiController extends Controller
|
|||||||
|
|
||||||
private function validateData(Request $request, ?int $id = null): array
|
private function validateData(Request $request, ?int $id = null): array
|
||||||
{
|
{
|
||||||
return $request->validate([
|
$section = $request->input('form_section');
|
||||||
|
|
||||||
|
$rules = [
|
||||||
|
'form_section' => ['required', 'string', Rule::in(['utama', 'sosial_budaya', 'keanggotaan_kelompok', 'akses_keuangan', 'keterikatan_hutang'])],
|
||||||
'uid' => [
|
'uid' => [
|
||||||
'nullable',
|
'nullable',
|
||||||
'string',
|
'string',
|
||||||
'max:255',
|
'max:255',
|
||||||
Rule::unique('sosial_ekonomi', 'uid')->ignore($id),
|
Rule::unique('sosial_ekonomi', 'uid')->ignore($id),
|
||||||
],
|
],
|
||||||
'petani_id' => ['nullable', 'exists:petani,id'],
|
'petani_id' => ['required', 'exists:petani,id'],
|
||||||
'jumlah_tanggungan' => ['nullable', 'integer', 'min:0'],
|
'jumlah_tanggungan' => ['nullable', 'integer', 'min:0'],
|
||||||
'anak_masih_sekolah' => ['nullable', 'integer', 'min:0'],
|
'anak_masih_sekolah' => ['nullable', 'integer', 'min:0'],
|
||||||
'yang_ikut_bekerja' => ['nullable', 'integer', 'min:0'],
|
'yang_ikut_bekerja' => ['nullable', 'integer', 'min:0'],
|
||||||
@@ -240,6 +266,67 @@ class SosialEkonomiController extends Controller
|
|||||||
'pihak_membantu_konflik_nama' => ['nullable', 'string', 'max:255'],
|
'pihak_membantu_konflik_nama' => ['nullable', 'string', 'max:255'],
|
||||||
'tahun_bantuan_konflik' => ['nullable', 'integer', 'digits:4'],
|
'tahun_bantuan_konflik' => ['nullable', 'integer', 'digits:4'],
|
||||||
'status_konflik' => ['nullable', 'string', Rule::in(StatusKonflik::values())],
|
'status_konflik' => ['nullable', 'string', Rule::in(StatusKonflik::values())],
|
||||||
|
'kemauan_mencoba_praktik_baru' => ['nullable', 'integer', Rule::in(KemauanMencobaPraktikBaru::values())],
|
||||||
|
'alasan_mencoba_praktik_baru' => ['nullable', 'string'],
|
||||||
|
'hambatan_mengubah_cara_bertani' => ['nullable', 'string'],
|
||||||
|
'pemahaman_mutu_harga' => ['nullable', 'integer', Rule::in(PemahamanMutuHarga::values())],
|
||||||
|
'contoh_pemahaman_mutu_harga' => ['nullable', 'string'],
|
||||||
|
'pengetahuan_harga_hasil_olah' => ['nullable', 'string', Rule::in(PengetahuanHargaHasilOlah::values())],
|
||||||
|
'pernah_jual_harga_lebih_tinggi' => ['nullable', 'string', Rule::in(PernahJualHargaLebihTinggi::values())],
|
||||||
|
'penyebab_harga_lebih_tinggi' => ['nullable', 'string'],
|
||||||
|
'usaha_mutu_tambahan_harga' => ['nullable', 'string', Rule::in(UsahaMutuTambahanHarga::values())],
|
||||||
|
'alasan_usaha_mutu_tambahan_harga' => ['nullable', 'string'],
|
||||||
|
'panutan_petani_sukses' => ['nullable', 'integer', Rule::in(PanutanPetaniSukses::values())],
|
||||||
|
'nama_lokasi_panutan' => ['nullable', 'string'],
|
||||||
|
'kemauan_ikut_program' => ['nullable', 'integer', Rule::in(KemauanIkutProgram::values())],
|
||||||
|
'harapan_program' => ['nullable', 'string'],
|
||||||
|
'orientasi_rencana_jangka_panjang' => ['nullable', 'integer', Rule::in(OrientasiRencanaJangkaPanjang::values())],
|
||||||
|
'rencana_jangka_panjang' => ['nullable', 'string'],
|
||||||
|
'terdaftar_kelompok_tani' => ['nullable', 'string', Rule::in(TerdaftarKelompokTani::values())],
|
||||||
|
'nama_kelompok_tani' => ['nullable', 'string', 'max:255'],
|
||||||
|
'lama_bergabung_kelompok_tahun' => ['nullable', 'integer', 'min:0'],
|
||||||
|
'kedekatan_sesama_anggota' => ['nullable', 'string', Rule::in(KedekatanSesamaAnggota::values())],
|
||||||
|
'keaktifan_pertemuan_kelompok' => ['nullable', 'integer', Rule::in(KeaktifanPertemuanKelompok::values())],
|
||||||
|
'topik_biasa_dibahas' => ['nullable', 'string'],
|
||||||
|
'peran_dalam_kelompok' => ['nullable', 'integer', Rule::in(PeranDalamKelompok::values())],
|
||||||
|
'manfaat_kelompok_tani' => ['nullable', 'integer', Rule::in(ManfaatKelompokTani::values())],
|
||||||
|
'status_kartu_tani' => ['nullable', 'string', Rule::in(StatusKartuTani::values())],
|
||||||
|
'bisa_beli_pupuk_bersubsidi' => ['nullable', 'string', Rule::in(BisaBeliPupukBersubsidi::values())],
|
||||||
|
'manfaat_lain_kartu_tani' => ['nullable', 'string'],
|
||||||
|
'status_rekening_tabungan' => ['nullable', 'integer', Rule::in(StatusRekeningTabungan::values())],
|
||||||
|
'nama_bank' => ['nullable', 'string', 'max:255'],
|
||||||
|
'pengalaman_kredit_kebun' => ['nullable', 'integer', Rule::in(PengalamanKreditKebun::values())],
|
||||||
|
'alasan_kredit_ditolak' => ['nullable', 'array'],
|
||||||
|
'alasan_kredit_ditolak.*' => ['string', Rule::in(AlasanKreditDitolak::values())],
|
||||||
|
'alasan_kredit_ditolak_lainnya' => ['nullable', 'string', 'max:255'],
|
||||||
|
'kondisi_aset_produktif' => ['nullable', 'integer', Rule::in(KondisiAsetProduktif::values())],
|
||||||
|
'jenis_aset_produktif' => ['nullable', 'array'],
|
||||||
|
'jenis_aset_produktif.*' => ['string', Rule::in(JenisAsetProduktif::values())],
|
||||||
|
'jenis_aset_produktif_lainnya' => ['nullable', 'string', 'max:255'],
|
||||||
|
'keterangan_kondisi_aset' => ['nullable', 'string'],
|
||||||
|
'keterlibatan_program_keuangan_formal' => ['nullable', 'integer', Rule::in(KeterlibatanProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal' => ['nullable', 'array'],
|
||||||
|
'status_program_keuangan_formal.*' => ['nullable', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'program_keuangan_formal_lainnya_nama' => ['nullable', 'string', 'max:255'],
|
||||||
|
'pernah_bantuan_ngo_perusahaan' => ['nullable', 'string', Rule::in(PernahBantuanNgoPerusahaan::values())],
|
||||||
|
'detail_bantuan_ngo_perusahaan' => ['nullable', 'array'],
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.nama_lembaga' => ['nullable', 'string', 'max:255'],
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.bentuk_bantuan' => ['nullable', 'string', 'max:255'],
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.frekuensi' => ['nullable', 'integer', 'min:0'],
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.tahun_terakhir' => ['nullable', 'integer', 'digits:4'],
|
||||||
|
'keterikatan_hutang_panen' => ['nullable', 'integer', Rule::in(KeterikatanHutangPanen::values())],
|
||||||
|
'pinjaman_tokoh_adat_panen' => ['nullable', 'string', Rule::in(PinjamanTokohAdatPanen::values())],
|
||||||
|
'keterangan_pinjaman_tokoh_adat' => ['nullable', 'string'],
|
||||||
|
'total_hutang_rupiah' => ['nullable', 'integer', 'min:0'],
|
||||||
|
'total_hutang_setara_kg_panen' => ['nullable', 'numeric', 'min:0'],
|
||||||
|
'total_hutang_tidak_bersedia' => ['nullable', 'boolean'],
|
||||||
|
'praktik_ijon' => ['nullable', 'integer', Rule::in(PraktikIjon::values())],
|
||||||
|
'tekanan_jual_segera' => ['nullable', 'string', Rule::in(TekananJualSegera::values())],
|
||||||
|
'penyebab_tekanan_jual_segera' => ['nullable', 'string'],
|
||||||
|
'kebebasan_memilih_pembeli' => ['nullable', 'integer', Rule::in(KebebasanMemilihPembeli::values())],
|
||||||
|
'alasan_tidak_bebas_memilih_pembeli' => ['nullable', 'string'],
|
||||||
|
'minat_pembeli_harga_stabil' => ['nullable', 'string', Rule::in(MinatPembeliHargaStabil::values())],
|
||||||
|
'alasan_minat_pembeli_harga_stabil' => ['nullable', 'string'],
|
||||||
|
|
||||||
'pendapatan_komoditas' => ['nullable', 'array'],
|
'pendapatan_komoditas' => ['nullable', 'array'],
|
||||||
'pendapatan_komoditas.*.kategori' => ['required_with:pendapatan_komoditas', 'string', Rule::in(KategoriPendapatanKomoditas::values())],
|
'pendapatan_komoditas.*.kategori' => ['required_with:pendapatan_komoditas', 'string', Rule::in(KategoriPendapatanKomoditas::values())],
|
||||||
@@ -250,18 +337,208 @@ class SosialEkonomiController extends Controller
|
|||||||
'pendapatan_luar_pertanian' => ['nullable', 'array'],
|
'pendapatan_luar_pertanian' => ['nullable', 'array'],
|
||||||
'pendapatan_luar_pertanian.*.jenis_pekerjaan' => ['nullable', 'string', 'max:255'],
|
'pendapatan_luar_pertanian.*.jenis_pekerjaan' => ['nullable', 'string', 'max:255'],
|
||||||
'pendapatan_luar_pertanian.*.estimasi_per_bulan' => ['nullable', 'integer', 'min:0'],
|
'pendapatan_luar_pertanian.*.estimasi_per_bulan' => ['nullable', 'integer', 'min:0'],
|
||||||
]);
|
];
|
||||||
|
|
||||||
|
if ($section === 'utama') {
|
||||||
|
$rules = array_merge($rules, [
|
||||||
|
'jumlah_tanggungan' => ['required', 'integer', 'min:0'],
|
||||||
|
'anak_masih_sekolah' => ['required', 'integer', 'min:0'],
|
||||||
|
'yang_ikut_bekerja' => ['required', 'integer', 'min:0'],
|
||||||
|
'skor_periode_paceklik' => ['required', 'integer', Rule::in(SkorPeriodePaceklik::values())],
|
||||||
|
'bulan_paceklik' => ['required', 'string', 'max:255'],
|
||||||
|
'sumber_penghasilan_paceklik' => ['required', 'string'],
|
||||||
|
'total_estimasi_biaya_kebun_per_musim' => ['required', 'integer', 'min:0'],
|
||||||
|
'skor_kemampuan_menabung' => ['required', 'integer', Rule::in(SkorKemampuanMenabung::values())],
|
||||||
|
'estimasi_tabungan_per_bulan' => ['required', 'integer', 'min:0'],
|
||||||
|
'skor_kecukupan_penghasilan' => ['required', 'integer', Rule::in(SkorKecukupanPenghasilan::values())],
|
||||||
|
'alasan_kecukupan_penghasilan' => ['required', 'string'],
|
||||||
|
'status_kepemilikan_lahan' => ['required', 'string', Rule::in(StatusKepemilikanLahanSosialEkonomi::values())],
|
||||||
|
'skor_kejelasan_status_lahan' => ['required', 'integer', Rule::in(SkorKejelasanStatusLahan::values())],
|
||||||
|
'ada_sertifikat_dokumen' => ['required', 'boolean'],
|
||||||
|
'ada_sengketa' => ['required', 'boolean'],
|
||||||
|
'keterangan_sengketa' => ['required_if:ada_sengketa,1', 'nullable', 'string'],
|
||||||
|
'pihak_membantu_konflik' => ['required_if:ada_sengketa,1', 'nullable', 'string', Rule::in(PihakMembantuKonflik::values())],
|
||||||
|
'pihak_membantu_konflik_nama' => ['required_if:pihak_membantu_konflik,' . PihakMembantuKonflik::ADA->value, 'nullable', 'string', 'max:255'],
|
||||||
|
'tahun_bantuan_konflik' => ['required_if:pihak_membantu_konflik,' . PihakMembantuKonflik::ADA->value, 'nullable', 'integer', 'digits:4'],
|
||||||
|
'status_konflik' => ['required_if:ada_sengketa,1', 'nullable', 'string', Rule::in(StatusKonflik::values())],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($section === 'sosial_budaya') {
|
||||||
|
$rules = array_merge($rules, [
|
||||||
|
'kemauan_mencoba_praktik_baru' => ['required', 'integer', Rule::in(KemauanMencobaPraktikBaru::values())],
|
||||||
|
'alasan_mencoba_praktik_baru' => ['required', 'string'],
|
||||||
|
'hambatan_mengubah_cara_bertani' => ['required', 'string'],
|
||||||
|
'pemahaman_mutu_harga' => ['required', 'integer', Rule::in(PemahamanMutuHarga::values())],
|
||||||
|
'contoh_pemahaman_mutu_harga' => ['required', 'string'],
|
||||||
|
'pengetahuan_harga_hasil_olah' => ['required', 'string', Rule::in(PengetahuanHargaHasilOlah::values())],
|
||||||
|
'pernah_jual_harga_lebih_tinggi' => ['required', 'string', Rule::in(PernahJualHargaLebihTinggi::values())],
|
||||||
|
'penyebab_harga_lebih_tinggi' => ['required_if:pernah_jual_harga_lebih_tinggi,' . PernahJualHargaLebihTinggi::PERNAH->value, 'nullable', 'string'],
|
||||||
|
'usaha_mutu_tambahan_harga' => ['required', 'string', Rule::in(UsahaMutuTambahanHarga::values())],
|
||||||
|
'alasan_usaha_mutu_tambahan_harga' => ['required_if:usaha_mutu_tambahan_harga,' . UsahaMutuTambahanHarga::TIDAK_SEBANDING_TERLALU_BANYAK_USAHA->value, 'nullable', 'string'],
|
||||||
|
'panutan_petani_sukses' => ['required', 'integer', Rule::in(PanutanPetaniSukses::values())],
|
||||||
|
'nama_lokasi_panutan' => ['required_unless:panutan_petani_sukses,' . PanutanPetaniSukses::TIDAK_ADA->value, 'nullable', 'string'],
|
||||||
|
'kemauan_ikut_program' => ['required', 'integer', Rule::in(KemauanIkutProgram::values())],
|
||||||
|
'harapan_program' => ['required', 'string'],
|
||||||
|
'orientasi_rencana_jangka_panjang' => ['required', 'integer', Rule::in(OrientasiRencanaJangkaPanjang::values())],
|
||||||
|
'rencana_jangka_panjang' => ['required', 'string'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($section === 'keanggotaan_kelompok') {
|
||||||
|
$rules = array_merge($rules, [
|
||||||
|
'terdaftar_kelompok_tani' => ['nullable', 'string', Rule::in(TerdaftarKelompokTani::values())],
|
||||||
|
'nama_kelompok_tani' => ['required_if:terdaftar_kelompok_tani,' . TerdaftarKelompokTani::YA->value, 'nullable', 'string', 'max:255'],
|
||||||
|
'lama_bergabung_kelompok_tahun' => ['required_if:terdaftar_kelompok_tani,' . TerdaftarKelompokTani::YA->value, 'nullable', 'integer', 'min:0'],
|
||||||
|
'kedekatan_sesama_anggota' => ['required_if:terdaftar_kelompok_tani,' . TerdaftarKelompokTani::YA->value, 'nullable', 'string', Rule::in(KedekatanSesamaAnggota::values())],
|
||||||
|
'keaktifan_pertemuan_kelompok' => ['required', 'integer', Rule::in(KeaktifanPertemuanKelompok::values())],
|
||||||
|
'topik_biasa_dibahas' => ['required', 'string'],
|
||||||
|
'peran_dalam_kelompok' => ['required', 'integer', Rule::in(PeranDalamKelompok::values())],
|
||||||
|
'manfaat_kelompok_tani' => ['required', 'integer', Rule::in(ManfaatKelompokTani::values())],
|
||||||
|
'status_kartu_tani' => ['nullable', 'string', Rule::in(StatusKartuTani::values())],
|
||||||
|
'bisa_beli_pupuk_bersubsidi' => ['nullable', 'string', Rule::in(BisaBeliPupukBersubsidi::values())],
|
||||||
|
'manfaat_lain_kartu_tani' => ['nullable', 'string'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($section === 'akses_keuangan') {
|
||||||
|
$pengalamanKredit = (int) $request->input('pengalaman_kredit_kebun');
|
||||||
|
$kondisiAset = (int) $request->input('kondisi_aset_produktif');
|
||||||
|
|
||||||
|
$rules = array_merge($rules, [
|
||||||
|
'status_rekening_tabungan' => ['required', 'integer', Rule::in(StatusRekeningTabungan::values())],
|
||||||
|
'nama_bank' => [
|
||||||
|
Rule::requiredIf(fn () => (int) $request->input('status_rekening_tabungan') > StatusRekeningTabungan::TIDAK_PUNYA_REKENING->value),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
'max:255',
|
||||||
|
],
|
||||||
|
'pengalaman_kredit_kebun' => ['required', 'integer', Rule::in(PengalamanKreditKebun::values())],
|
||||||
|
'alasan_kredit_ditolak' => [
|
||||||
|
Rule::requiredIf(fn () => in_array($pengalamanKredit, [
|
||||||
|
PengalamanKreditKebun::TIDAK_PERNAH_MENCOBA->value,
|
||||||
|
PengalamanKreditKebun::PERNAH_COBA_DITOLAK->value,
|
||||||
|
], true)),
|
||||||
|
'nullable',
|
||||||
|
'array',
|
||||||
|
],
|
||||||
|
'alasan_kredit_ditolak.*' => ['string', Rule::in(AlasanKreditDitolak::values())],
|
||||||
|
'alasan_kredit_ditolak_lainnya' => [
|
||||||
|
Rule::requiredIf(fn () => in_array(AlasanKreditDitolak::LAINNYA->value, $request->input('alasan_kredit_ditolak', []), true)),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
'max:255',
|
||||||
|
],
|
||||||
|
'kondisi_aset_produktif' => ['required', 'integer', Rule::in(KondisiAsetProduktif::values())],
|
||||||
|
'jenis_aset_produktif' => [
|
||||||
|
Rule::requiredIf(fn () => $kondisiAset > KondisiAsetProduktif::TIDAK_ADA->value),
|
||||||
|
'nullable',
|
||||||
|
'array',
|
||||||
|
],
|
||||||
|
'jenis_aset_produktif.*' => ['string', Rule::in(JenisAsetProduktif::values())],
|
||||||
|
'jenis_aset_produktif_lainnya' => [
|
||||||
|
Rule::requiredIf(fn () => in_array(JenisAsetProduktif::LAINNYA->value, $request->input('jenis_aset_produktif', []), true)),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
'max:255',
|
||||||
|
],
|
||||||
|
'keterangan_kondisi_aset' => [
|
||||||
|
Rule::requiredIf(fn () => $kondisiAset > KondisiAsetProduktif::TIDAK_ADA->value),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
],
|
||||||
|
'keterlibatan_program_keuangan_formal' => ['required', 'integer', Rule::in(KeterlibatanProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal' => ['required', 'array'],
|
||||||
|
'status_program_keuangan_formal.pkh' => ['required', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal.blt' => ['required', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal.kur' => ['required', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal.kredit_koperasi_resmi' => ['required', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal.credit_union_cu' => ['required', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal.pinjaman_bumdes' => ['required', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal.modal_hibah_dinas_pertanian' => ['required', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'status_program_keuangan_formal.lainnya' => ['nullable', 'string', Rule::in(StatusProgramKeuanganFormal::values())],
|
||||||
|
'program_keuangan_formal_lainnya_nama' => [
|
||||||
|
Rule::requiredIf(fn () => filled($request->input('status_program_keuangan_formal.lainnya'))),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
'max:255',
|
||||||
|
],
|
||||||
|
'pernah_bantuan_ngo_perusahaan' => ['required', 'string', Rule::in(PernahBantuanNgoPerusahaan::values())],
|
||||||
|
'detail_bantuan_ngo_perusahaan' => [
|
||||||
|
Rule::requiredIf(fn () => $request->input('pernah_bantuan_ngo_perusahaan') === PernahBantuanNgoPerusahaan::PERNAH->value),
|
||||||
|
'nullable',
|
||||||
|
'array',
|
||||||
|
],
|
||||||
|
'detail_bantuan_ngo_perusahaan.0.nama_lembaga' => [
|
||||||
|
Rule::requiredIf(fn () => $request->input('pernah_bantuan_ngo_perusahaan') === PernahBantuanNgoPerusahaan::PERNAH->value),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
'max:255',
|
||||||
|
],
|
||||||
|
'detail_bantuan_ngo_perusahaan.0.bentuk_bantuan' => [
|
||||||
|
Rule::requiredIf(fn () => $request->input('pernah_bantuan_ngo_perusahaan') === PernahBantuanNgoPerusahaan::PERNAH->value),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
'max:255',
|
||||||
|
],
|
||||||
|
'detail_bantuan_ngo_perusahaan.0.frekuensi' => [
|
||||||
|
Rule::requiredIf(fn () => $request->input('pernah_bantuan_ngo_perusahaan') === PernahBantuanNgoPerusahaan::PERNAH->value),
|
||||||
|
'nullable',
|
||||||
|
'integer',
|
||||||
|
'min:0',
|
||||||
|
],
|
||||||
|
'detail_bantuan_ngo_perusahaan.0.tahun_terakhir' => [
|
||||||
|
Rule::requiredIf(fn () => $request->input('pernah_bantuan_ngo_perusahaan') === PernahBantuanNgoPerusahaan::PERNAH->value),
|
||||||
|
'nullable',
|
||||||
|
'integer',
|
||||||
|
'digits:4',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($section === 'keterikatan_hutang') {
|
||||||
|
$totalHutangTidakBersedia = $request->boolean('total_hutang_tidak_bersedia');
|
||||||
|
$kebebasanMemilihPembeli = (int) $request->input('kebebasan_memilih_pembeli');
|
||||||
|
|
||||||
|
$rules = array_merge($rules, [
|
||||||
|
'keterikatan_hutang_panen' => ['required', 'integer', Rule::in(KeterikatanHutangPanen::values())],
|
||||||
|
'pinjaman_tokoh_adat_panen' => ['required', 'string', Rule::in(PinjamanTokohAdatPanen::values())],
|
||||||
|
'keterangan_pinjaman_tokoh_adat' => ['required_if:pinjaman_tokoh_adat_panen,' . PinjamanTokohAdatPanen::ADA->value, 'nullable', 'string'],
|
||||||
|
'total_hutang_rupiah' => [
|
||||||
|
Rule::requiredIf(fn () => !$totalHutangTidakBersedia && !filled($request->input('total_hutang_setara_kg_panen'))),
|
||||||
|
'nullable',
|
||||||
|
'integer',
|
||||||
|
'min:0',
|
||||||
|
],
|
||||||
|
'total_hutang_setara_kg_panen' => ['nullable', 'numeric', 'min:0'],
|
||||||
|
'total_hutang_tidak_bersedia' => ['nullable', 'boolean'],
|
||||||
|
'praktik_ijon' => ['required', 'integer', Rule::in(PraktikIjon::values())],
|
||||||
|
'tekanan_jual_segera' => ['required', 'string', Rule::in(TekananJualSegera::values())],
|
||||||
|
'penyebab_tekanan_jual_segera' => ['required_if:tekanan_jual_segera,' . TekananJualSegera::ADA->value, 'nullable', 'string'],
|
||||||
|
'kebebasan_memilih_pembeli' => ['required', 'integer', Rule::in(KebebasanMemilihPembeli::values())],
|
||||||
|
'alasan_tidak_bebas_memilih_pembeli' => [
|
||||||
|
Rule::requiredIf(fn () => $kebebasanMemilihPembeli > 0 && $kebebasanMemilihPembeli < KebebasanMemilihPembeli::CUKUP_BEBAS_SESEKALI_PINDAH->value),
|
||||||
|
'nullable',
|
||||||
|
'string',
|
||||||
|
],
|
||||||
|
'minat_pembeli_harga_stabil' => ['required', 'string', Rule::in(MinatPembeliHargaStabil::values())],
|
||||||
|
'alasan_minat_pembeli_harga_stabil' => ['required', 'string'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $request->validate($rules, $this->validationMessages(), $this->validationAttributes());
|
||||||
}
|
}
|
||||||
|
|
||||||
private function sosialEkonomiPayload(array $validated): array
|
private function sosialEkonomiPayload(array $validated, ?SosialEkonomi $sosialEkonomi = null): array
|
||||||
{
|
{
|
||||||
$payload = collect($validated)
|
$payload = collect($validated)
|
||||||
->except(['pendapatan_komoditas', 'pendapatan_luar_pertanian'])
|
->except(['form_section', 'pendapatan_komoditas', 'pendapatan_luar_pertanian'])
|
||||||
->merge([
|
|
||||||
'uid' => $validated['uid'] ?? 'SEK-' . Str::uuid(),
|
|
||||||
])
|
|
||||||
->all();
|
->all();
|
||||||
|
|
||||||
|
if (!$sosialEkonomi && !array_key_exists('uid', $payload)) {
|
||||||
|
$payload['uid'] = 'SEK-' . Str::uuid();
|
||||||
|
}
|
||||||
|
|
||||||
$payload = $this->normalizeSkorPayload($payload);
|
$payload = $this->normalizeSkorPayload($payload);
|
||||||
|
|
||||||
if (($payload['pihak_membantu_konflik'] ?? null) === PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value) {
|
if (($payload['pihak_membantu_konflik'] ?? null) === PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value) {
|
||||||
@@ -269,9 +546,233 @@ class SosialEkonomiController extends Controller
|
|||||||
$payload['tahun_bantuan_konflik'] = null;
|
$payload['tahun_bantuan_konflik'] = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('pernah_jual_harga_lebih_tinggi', $payload)
|
||||||
|
&& ($payload['pernah_jual_harga_lebih_tinggi'] ?? null) !== PernahJualHargaLebihTinggi::PERNAH->value
|
||||||
|
) {
|
||||||
|
$payload['penyebab_harga_lebih_tinggi'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('panutan_petani_sukses', $payload)
|
||||||
|
&& (int) ($payload['panutan_petani_sukses'] ?? 0) === PanutanPetaniSukses::TIDAK_ADA->value
|
||||||
|
) {
|
||||||
|
$payload['nama_lokasi_panutan'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('terdaftar_kelompok_tani', $payload)
|
||||||
|
&& ($payload['terdaftar_kelompok_tani'] ?? null) === TerdaftarKelompokTani::TIDAK->value
|
||||||
|
) {
|
||||||
|
$payload['nama_kelompok_tani'] = null;
|
||||||
|
$payload['lama_bergabung_kelompok_tahun'] = null;
|
||||||
|
$payload['kedekatan_sesama_anggota'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('status_rekening_tabungan', $payload)
|
||||||
|
&& (int) ($payload['status_rekening_tabungan'] ?? 0) === StatusRekeningTabungan::TIDAK_PUNYA_REKENING->value
|
||||||
|
) {
|
||||||
|
$payload['nama_bank'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('pengalaman_kredit_kebun', $payload)
|
||||||
|
&& !in_array((int) ($payload['pengalaman_kredit_kebun'] ?? 0), [
|
||||||
|
PengalamanKreditKebun::TIDAK_PERNAH_MENCOBA->value,
|
||||||
|
PengalamanKreditKebun::PERNAH_COBA_DITOLAK->value,
|
||||||
|
], true)
|
||||||
|
) {
|
||||||
|
$payload['alasan_kredit_ditolak'] = null;
|
||||||
|
$payload['alasan_kredit_ditolak_lainnya'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('alasan_kredit_ditolak', $payload)
|
||||||
|
&& !in_array(AlasanKreditDitolak::LAINNYA->value, $payload['alasan_kredit_ditolak'] ?? [], true)
|
||||||
|
) {
|
||||||
|
$payload['alasan_kredit_ditolak_lainnya'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('kondisi_aset_produktif', $payload)
|
||||||
|
&& (int) ($payload['kondisi_aset_produktif'] ?? 0) === KondisiAsetProduktif::TIDAK_ADA->value
|
||||||
|
) {
|
||||||
|
$payload['jenis_aset_produktif'] = null;
|
||||||
|
$payload['jenis_aset_produktif_lainnya'] = null;
|
||||||
|
$payload['keterangan_kondisi_aset'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('jenis_aset_produktif', $payload)
|
||||||
|
&& !in_array(JenisAsetProduktif::LAINNYA->value, $payload['jenis_aset_produktif'] ?? [], true)
|
||||||
|
) {
|
||||||
|
$payload['jenis_aset_produktif_lainnya'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!filled($payload['status_program_keuangan_formal']['lainnya'] ?? null)) {
|
||||||
|
$payload['program_keuangan_formal_lainnya_nama'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('pernah_bantuan_ngo_perusahaan', $payload)
|
||||||
|
&& ($payload['pernah_bantuan_ngo_perusahaan'] ?? null) === PernahBantuanNgoPerusahaan::TIDAK_PERNAH->value
|
||||||
|
) {
|
||||||
|
$payload['detail_bantuan_ngo_perusahaan'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_key_exists('detail_bantuan_ngo_perusahaan', $payload) && is_array($payload['detail_bantuan_ngo_perusahaan'])) {
|
||||||
|
$payload['detail_bantuan_ngo_perusahaan'] = collect($payload['detail_bantuan_ngo_perusahaan'])
|
||||||
|
->filter(fn ($row) => collect($row)->filter(fn ($value) => filled($value))->isNotEmpty())
|
||||||
|
->values()
|
||||||
|
->all();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('pinjaman_tokoh_adat_panen', $payload)
|
||||||
|
&& ($payload['pinjaman_tokoh_adat_panen'] ?? null) !== PinjamanTokohAdatPanen::ADA->value
|
||||||
|
) {
|
||||||
|
$payload['keterangan_pinjaman_tokoh_adat'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($payload['total_hutang_tidak_bersedia'])) {
|
||||||
|
$payload['total_hutang_rupiah'] = null;
|
||||||
|
$payload['total_hutang_setara_kg_panen'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('tekanan_jual_segera', $payload)
|
||||||
|
&& ($payload['tekanan_jual_segera'] ?? null) !== TekananJualSegera::ADA->value
|
||||||
|
) {
|
||||||
|
$payload['penyebab_tekanan_jual_segera'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
array_key_exists('kebebasan_memilih_pembeli', $payload)
|
||||||
|
&& (int) ($payload['kebebasan_memilih_pembeli'] ?? 0) >= KebebasanMemilihPembeli::CUKUP_BEBAS_SESEKALI_PINDAH->value
|
||||||
|
) {
|
||||||
|
$payload['alasan_tidak_bebas_memilih_pembeli'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
return $payload;
|
return $payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function validationMessages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'required' => ':attribute wajib diisi.',
|
||||||
|
'required_if' => ':attribute wajib diisi.',
|
||||||
|
'required_unless' => ':attribute wajib diisi.',
|
||||||
|
'required_with' => ':attribute wajib diisi.',
|
||||||
|
'integer' => ':attribute harus berupa angka.',
|
||||||
|
'numeric' => ':attribute harus berupa angka.',
|
||||||
|
'boolean' => ':attribute harus dipilih.',
|
||||||
|
'min' => ':attribute tidak boleh kurang dari :min.',
|
||||||
|
'max' => ':attribute tidak boleh lebih dari :max karakter.',
|
||||||
|
'digits' => ':attribute harus terdiri dari :digits digit.',
|
||||||
|
'exists' => ':attribute tidak valid.',
|
||||||
|
'in' => ':attribute tidak valid.',
|
||||||
|
'array' => ':attribute harus berupa daftar data.',
|
||||||
|
'string' => ':attribute harus berupa teks.',
|
||||||
|
'unique' => ':attribute sudah digunakan.',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validationAttributes(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'form_section' => 'Bagian form',
|
||||||
|
'petani_id' => 'Petani',
|
||||||
|
'jumlah_tanggungan' => 'Jumlah tanggungan',
|
||||||
|
'anak_masih_sekolah' => 'Anak masih sekolah',
|
||||||
|
'yang_ikut_bekerja' => 'Yang ikut bekerja',
|
||||||
|
'skor_periode_paceklik' => 'Periode paceklik',
|
||||||
|
'bulan_paceklik' => 'Bulan paceklik biasanya',
|
||||||
|
'sumber_penghasilan_paceklik' => 'Sumber penghasilan saat paceklik',
|
||||||
|
'total_estimasi_biaya_kebun_per_musim' => 'Total estimasi biaya kebun per musim',
|
||||||
|
'skor_kemampuan_menabung' => 'Kemampuan menabung',
|
||||||
|
'estimasi_tabungan_per_bulan' => 'Estimasi tabungan per bulan',
|
||||||
|
'skor_kecukupan_penghasilan' => 'Kecukupan penghasilan untuk keluarga',
|
||||||
|
'alasan_kecukupan_penghasilan' => 'Alasan kecukupan penghasilan',
|
||||||
|
'status_kepemilikan_lahan' => 'Status kepemilikan lahan',
|
||||||
|
'skor_kejelasan_status_lahan' => 'Kejelasan status lahan',
|
||||||
|
'ada_sertifikat_dokumen' => 'Ada sertifikat/dokumen',
|
||||||
|
'ada_sengketa' => 'Ada sengketa',
|
||||||
|
'keterangan_sengketa' => 'Keterangan sengketa',
|
||||||
|
'pihak_membantu_konflik' => 'Pihak yang membantu',
|
||||||
|
'pihak_membantu_konflik_nama' => 'Nama pihak',
|
||||||
|
'tahun_bantuan_konflik' => 'Tahun bantuan',
|
||||||
|
'status_konflik' => 'Status konflik',
|
||||||
|
'kemauan_mencoba_praktik_baru' => 'Kemauan mencoba cara baru',
|
||||||
|
'alasan_mencoba_praktik_baru' => 'Alasan mencoba praktik baru',
|
||||||
|
'hambatan_mengubah_cara_bertani' => 'Hambatan utama mengubah cara berkebun',
|
||||||
|
'pemahaman_mutu_harga' => 'Pemahaman mutu vs. harga jual',
|
||||||
|
'contoh_pemahaman_mutu_harga' => 'Contoh/penjelasan petani',
|
||||||
|
'pengetahuan_harga_hasil_olah' => 'Pengetahuan harga hasil olah',
|
||||||
|
'pernah_jual_harga_lebih_tinggi' => 'Pengalaman jual dengan harga lebih tinggi',
|
||||||
|
'penyebab_harga_lebih_tinggi' => 'Penyebab harga lebih tinggi',
|
||||||
|
'usaha_mutu_tambahan_harga' => 'Usaha meningkatkan mutu vs. tambahan harga',
|
||||||
|
'alasan_usaha_mutu_tambahan_harga' => 'Alasan usaha mutu tambahan harga',
|
||||||
|
'panutan_petani_sukses' => 'Panutan di sekitar petani',
|
||||||
|
'nama_lokasi_panutan' => 'Nama dan lokasi panutan',
|
||||||
|
'kemauan_ikut_program' => 'Kemauan ikut program',
|
||||||
|
'harapan_program' => 'Harapan dari program',
|
||||||
|
'orientasi_rencana_jangka_panjang' => 'Orientasi rencana 3-5 tahun ke depan',
|
||||||
|
'rencana_jangka_panjang' => 'Rencana yang akan dilakukan',
|
||||||
|
'terdaftar_kelompok_tani' => 'Status terdaftar di kelompok tani',
|
||||||
|
'nama_kelompok_tani' => 'Nama kelompok',
|
||||||
|
'lama_bergabung_kelompok_tahun' => 'Lama bergabung',
|
||||||
|
'kedekatan_sesama_anggota' => 'Kedekatan dengan sesama anggota',
|
||||||
|
'keaktifan_pertemuan_kelompok' => 'Kehadiran dan keaktifan di pertemuan',
|
||||||
|
'topik_biasa_dibahas' => 'Topik yang biasa dibahas',
|
||||||
|
'peran_dalam_kelompok' => 'Jabatan atau peran di kelompok',
|
||||||
|
'manfaat_kelompok_tani' => 'Manfaat dari kelompok tani',
|
||||||
|
'status_kartu_tani' => 'Status Kartu Tani',
|
||||||
|
'bisa_beli_pupuk_bersubsidi' => 'Kemampuan menggunakan Kartu Tani untuk membeli pupuk bersubsidi',
|
||||||
|
'manfaat_lain_kartu_tani' => 'Manfaat lain setelah daftar Kartu Tani',
|
||||||
|
'status_rekening_tabungan' => 'Status rekening atau tabungan',
|
||||||
|
'nama_bank' => 'Nama bank',
|
||||||
|
'pengalaman_kredit_kebun' => 'Pengalaman kredit untuk kebun',
|
||||||
|
'alasan_kredit_ditolak' => 'Alasan kredit ditolak atau tidak jadi',
|
||||||
|
'alasan_kredit_ditolak.*' => 'Alasan kredit ditolak atau tidak jadi',
|
||||||
|
'alasan_kredit_ditolak_lainnya' => 'Alasan kredit lainnya',
|
||||||
|
'kondisi_aset_produktif' => 'Kondisi aset produktif selain lahan',
|
||||||
|
'jenis_aset_produktif' => 'Jenis aset',
|
||||||
|
'jenis_aset_produktif.*' => 'Jenis aset',
|
||||||
|
'jenis_aset_produktif_lainnya' => 'Jenis aset lainnya',
|
||||||
|
'keterangan_kondisi_aset' => 'Keterangan kondisi aset',
|
||||||
|
'keterlibatan_program_keuangan_formal' => 'Keterlibatan dalam program bantuan',
|
||||||
|
'status_program_keuangan_formal' => 'Status per program',
|
||||||
|
'status_program_keuangan_formal.*' => 'Status per program',
|
||||||
|
'program_keuangan_formal_lainnya_nama' => 'Nama program lainnya',
|
||||||
|
'pernah_bantuan_ngo_perusahaan' => 'Status bantuan NGO atau perusahaan',
|
||||||
|
'detail_bantuan_ngo_perusahaan' => 'Detail bantuan NGO atau perusahaan',
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.nama_lembaga' => 'Nama lembaga',
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.bentuk_bantuan' => 'Bentuk bantuan',
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.frekuensi' => 'Frekuensi bantuan',
|
||||||
|
'detail_bantuan_ngo_perusahaan.*.tahun_terakhir' => 'Tahun terakhir bantuan',
|
||||||
|
'keterikatan_hutang_panen' => 'Hutang yang dikaitkan dengan hasil panen',
|
||||||
|
'pinjaman_tokoh_adat_panen' => 'Pinjaman dari tokoh adat atau mosalaki terkait panen',
|
||||||
|
'keterangan_pinjaman_tokoh_adat' => 'Keterangan pinjaman dari tokoh adat atau mosalaki',
|
||||||
|
'total_hutang_rupiah' => 'Total hutang saat ini',
|
||||||
|
'total_hutang_setara_kg_panen' => 'Total hutang setara hasil panen',
|
||||||
|
'total_hutang_tidak_bersedia' => 'Status tidak bersedia menjawab total hutang',
|
||||||
|
'praktik_ijon' => 'Praktik ijon',
|
||||||
|
'tekanan_jual_segera' => 'Tekanan jual segera meski harga rendah',
|
||||||
|
'penyebab_tekanan_jual_segera' => 'Penyebab tekanan jual segera',
|
||||||
|
'kebebasan_memilih_pembeli' => 'Kebebasan memilih pembeli',
|
||||||
|
'alasan_tidak_bebas_memilih_pembeli' => 'Alasan jika tidak bebas',
|
||||||
|
'minat_pembeli_harga_stabil' => 'Minat ke pembeli harga stabil jangka panjang',
|
||||||
|
'alasan_minat_pembeli_harga_stabil' => 'Alasan minat ke pembeli harga stabil',
|
||||||
|
'pendapatan_komoditas.*.kategori' => 'Kategori pendapatan komoditas',
|
||||||
|
'pendapatan_komoditas.*.komoditas' => 'Komoditas',
|
||||||
|
'pendapatan_komoditas.*.pendapatan' => 'Pendapatan',
|
||||||
|
'pendapatan_komoditas.*.periode' => 'Periode',
|
||||||
|
'pendapatan_luar_pertanian.*.jenis_pekerjaan' => 'Jenis pekerjaan',
|
||||||
|
'pendapatan_luar_pertanian.*.estimasi_per_bulan' => 'Estimasi per bulan',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
private function normalizeSkorPayload(array $payload): array
|
private function normalizeSkorPayload(array $payload): array
|
||||||
{
|
{
|
||||||
foreach ([
|
foreach ([
|
||||||
@@ -279,6 +780,21 @@ class SosialEkonomiController extends Controller
|
|||||||
'skor_kemampuan_menabung',
|
'skor_kemampuan_menabung',
|
||||||
'skor_kecukupan_penghasilan',
|
'skor_kecukupan_penghasilan',
|
||||||
'skor_kejelasan_status_lahan',
|
'skor_kejelasan_status_lahan',
|
||||||
|
'kemauan_mencoba_praktik_baru',
|
||||||
|
'pemahaman_mutu_harga',
|
||||||
|
'panutan_petani_sukses',
|
||||||
|
'kemauan_ikut_program',
|
||||||
|
'orientasi_rencana_jangka_panjang',
|
||||||
|
'keaktifan_pertemuan_kelompok',
|
||||||
|
'peran_dalam_kelompok',
|
||||||
|
'manfaat_kelompok_tani',
|
||||||
|
'status_rekening_tabungan',
|
||||||
|
'pengalaman_kredit_kebun',
|
||||||
|
'kondisi_aset_produktif',
|
||||||
|
'keterlibatan_program_keuangan_formal',
|
||||||
|
'keterikatan_hutang_panen',
|
||||||
|
'praktik_ijon',
|
||||||
|
'kebebasan_memilih_pembeli',
|
||||||
] as $field) {
|
] as $field) {
|
||||||
if (array_key_exists($field, $payload) && !is_null($payload[$field]) && $payload[$field] !== '') {
|
if (array_key_exists($field, $payload) && !is_null($payload[$field]) && $payload[$field] !== '') {
|
||||||
$payload[$field] = (int) $payload[$field];
|
$payload[$field] = (int) $payload[$field];
|
||||||
@@ -371,6 +887,61 @@ class SosialEkonomiController extends Controller
|
|||||||
'pihakMembantuKonflikOptions' => PihakMembantuKonflik::options(),
|
'pihakMembantuKonflikOptions' => PihakMembantuKonflik::options(),
|
||||||
'pihakMembantuTanpaBantuanValue' => PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value,
|
'pihakMembantuTanpaBantuanValue' => PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value,
|
||||||
'statusKonflikOptions' => StatusKonflik::options(),
|
'statusKonflikOptions' => StatusKonflik::options(),
|
||||||
|
'kemauanMencobaPraktikBaruOptions' => KemauanMencobaPraktikBaru::options(),
|
||||||
|
'pemahamanMutuHargaOptions' => PemahamanMutuHarga::options(),
|
||||||
|
'pengetahuanHargaHasilOlahOptions' => PengetahuanHargaHasilOlah::options(),
|
||||||
|
'pernahJualHargaLebihTinggiOptions' => PernahJualHargaLebihTinggi::options(),
|
||||||
|
'pernahJualHargaLebihTinggiPernahValue' => PernahJualHargaLebihTinggi::PERNAH->value,
|
||||||
|
'usahaMutuTambahanHargaOptions' => UsahaMutuTambahanHarga::options(),
|
||||||
|
'panutanPetaniSuksesOptions' => PanutanPetaniSukses::options(),
|
||||||
|
'panutanPetaniSuksesTidakAdaValue' => PanutanPetaniSukses::TIDAK_ADA->value,
|
||||||
|
'kemauanIkutProgramOptions' => KemauanIkutProgram::options(),
|
||||||
|
'orientasiRencanaJangkaPanjangOptions' => OrientasiRencanaJangkaPanjang::options(),
|
||||||
|
'terdaftarKelompokTaniOptions' => TerdaftarKelompokTani::options(),
|
||||||
|
'terdaftarKelompokTaniYaValue' => TerdaftarKelompokTani::YA->value,
|
||||||
|
'terdaftarKelompokTaniTidakValue' => TerdaftarKelompokTani::TIDAK->value,
|
||||||
|
'kedekatanSesamaAnggotaOptions' => KedekatanSesamaAnggota::options(),
|
||||||
|
'keaktifanPertemuanKelompokOptions' => KeaktifanPertemuanKelompok::options(),
|
||||||
|
'peranDalamKelompokOptions' => PeranDalamKelompok::options(),
|
||||||
|
'manfaatKelompokTaniOptions' => ManfaatKelompokTani::options(),
|
||||||
|
'statusKartuTaniOptions' => StatusKartuTani::options(),
|
||||||
|
'bisaBeliPupukBersubsidiOptions' => BisaBeliPupukBersubsidi::options(),
|
||||||
|
'statusRekeningTabunganOptions' => StatusRekeningTabungan::options(),
|
||||||
|
'statusRekeningTidakPunyaValue' => StatusRekeningTabungan::TIDAK_PUNYA_REKENING->value,
|
||||||
|
'pengalamanKreditKebunOptions' => PengalamanKreditKebun::options(),
|
||||||
|
'pengalamanKreditPerluAlasanValues' => [
|
||||||
|
PengalamanKreditKebun::TIDAK_PERNAH_MENCOBA->value,
|
||||||
|
PengalamanKreditKebun::PERNAH_COBA_DITOLAK->value,
|
||||||
|
],
|
||||||
|
'alasanKreditDitolakOptions' => AlasanKreditDitolak::options(),
|
||||||
|
'alasanKreditLainnyaValue' => AlasanKreditDitolak::LAINNYA->value,
|
||||||
|
'kondisiAsetProduktifOptions' => KondisiAsetProduktif::options(),
|
||||||
|
'kondisiAsetTidakAdaValue' => KondisiAsetProduktif::TIDAK_ADA->value,
|
||||||
|
'jenisAsetProduktifOptions' => JenisAsetProduktif::options(),
|
||||||
|
'jenisAsetLainnyaValue' => JenisAsetProduktif::LAINNYA->value,
|
||||||
|
'keterlibatanProgramKeuanganFormalOptions' => KeterlibatanProgramKeuanganFormal::options(),
|
||||||
|
'statusProgramKeuanganFormalOptions' => StatusProgramKeuanganFormal::options(),
|
||||||
|
'programKeuanganFormalRows' => [
|
||||||
|
'pkh' => 'PKH',
|
||||||
|
'blt' => 'BLT',
|
||||||
|
'kur' => 'KUR',
|
||||||
|
'kredit_koperasi_resmi' => 'Kredit koperasi resmi',
|
||||||
|
'credit_union_cu' => 'Credit Union (CU)',
|
||||||
|
'pinjaman_bumdes' => 'Pinjaman BUMDes',
|
||||||
|
'modal_hibah_dinas_pertanian' => 'Modal-hibah dinas pertanian',
|
||||||
|
'lainnya' => 'Lainnya',
|
||||||
|
],
|
||||||
|
'pernahBantuanNgoPerusahaanOptions' => PernahBantuanNgoPerusahaan::options(),
|
||||||
|
'pernahBantuanNgoPerusahaanPernahValue' => PernahBantuanNgoPerusahaan::PERNAH->value,
|
||||||
|
'keterikatanHutangPanenOptions' => KeterikatanHutangPanen::options(),
|
||||||
|
'pinjamanTokohAdatPanenOptions' => PinjamanTokohAdatPanen::options(),
|
||||||
|
'pinjamanTokohAdatAdaValue' => PinjamanTokohAdatPanen::ADA->value,
|
||||||
|
'praktikIjonOptions' => PraktikIjon::options(),
|
||||||
|
'tekananJualSegeraOptions' => TekananJualSegera::options(),
|
||||||
|
'tekananJualSegeraAdaValue' => TekananJualSegera::ADA->value,
|
||||||
|
'kebebasanMemilihPembeliOptions' => KebebasanMemilihPembeli::options(),
|
||||||
|
'kebebasanMemilihPembeliCukupBebasValue' => KebebasanMemilihPembeli::CUKUP_BEBAS_SESEKALI_PINDAH->value,
|
||||||
|
'minatPembeliHargaStabilOptions' => MinatPembeliHargaStabil::options(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class SurveyProduktivitasController extends Controller
|
|||||||
public function store($petaniId, Request $request)
|
public function store($petaniId, Request $request)
|
||||||
{
|
{
|
||||||
$petani = Petani::findOrFail($petaniId);
|
$petani = Petani::findOrFail($petaniId);
|
||||||
dd($request->all());
|
// dd($request->all());
|
||||||
$validated = $request->validate([
|
$validated = $request->validate([
|
||||||
'produktivitas_komoditas' => ['required', 'array'],
|
'produktivitas_komoditas' => ['required', 'array'],
|
||||||
'produktivitas_komoditas.*.komoditas_id' => ['nullable', 'exists:master_komoditas,id'],
|
'produktivitas_komoditas.*.komoditas_id' => ['nullable', 'exists:master_komoditas,id'],
|
||||||
|
|||||||
@@ -206,7 +206,22 @@ class Petani extends Model
|
|||||||
$this->enumValue($sosialEkonomi->skor_kemampuan_menabung),
|
$this->enumValue($sosialEkonomi->skor_kemampuan_menabung),
|
||||||
$this->enumValue($sosialEkonomi->skor_kecukupan_penghasilan),
|
$this->enumValue($sosialEkonomi->skor_kecukupan_penghasilan),
|
||||||
$this->enumValue($sosialEkonomi->skor_kejelasan_status_lahan),
|
$this->enumValue($sosialEkonomi->skor_kejelasan_status_lahan),
|
||||||
])->filter(fn ($value) => !is_null($value) && $value !== '');
|
$this->enumValue($sosialEkonomi->kemauan_mencoba_praktik_baru),
|
||||||
|
$this->enumValue($sosialEkonomi->pemahaman_mutu_harga),
|
||||||
|
$this->enumValue($sosialEkonomi->panutan_petani_sukses),
|
||||||
|
$this->enumValue($sosialEkonomi->kemauan_ikut_program),
|
||||||
|
$this->enumValue($sosialEkonomi->orientasi_rencana_jangka_panjang),
|
||||||
|
$this->enumValue($sosialEkonomi->keaktifan_pertemuan_kelompok),
|
||||||
|
$this->enumValue($sosialEkonomi->peran_dalam_kelompok),
|
||||||
|
$this->enumValue($sosialEkonomi->manfaat_kelompok_tani),
|
||||||
|
$this->enumValue($sosialEkonomi->status_rekening_tabungan),
|
||||||
|
$this->enumValue($sosialEkonomi->pengalaman_kredit_kebun),
|
||||||
|
$this->enumValue($sosialEkonomi->kondisi_aset_produktif),
|
||||||
|
$this->enumValue($sosialEkonomi->keterlibatan_program_keuangan_formal),
|
||||||
|
$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);
|
||||||
|
|
||||||
if ($nilai->isEmpty()) {
|
if ($nilai->isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -2,13 +2,42 @@
|
|||||||
|
|
||||||
namespace App\Models\Pertanian;
|
namespace App\Models\Pertanian;
|
||||||
|
|
||||||
use App\Enums\PihakMembantuKonflik;
|
use App\Enums\SosialEkonomi\AlasanKreditDitolak;
|
||||||
use App\Enums\SkorKecukupanPenghasilan;
|
use App\Enums\SosialEkonomi\BisaBeliPupukBersubsidi;
|
||||||
use App\Enums\SkorKejelasanStatusLahan;
|
use App\Enums\SosialEkonomi\JenisAsetProduktif;
|
||||||
use App\Enums\SkorKemampuanMenabung;
|
use App\Enums\SosialEkonomi\KemauanIkutProgram;
|
||||||
use App\Enums\SkorPeriodePaceklik;
|
use App\Enums\SosialEkonomi\KemauanMencobaPraktikBaru;
|
||||||
use App\Enums\StatusKepemilikanLahanSosialEkonomi;
|
use App\Enums\SosialEkonomi\KeaktifanPertemuanKelompok;
|
||||||
use App\Enums\StatusKonflik;
|
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 Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
@@ -43,6 +72,60 @@ class SosialEkonomi extends Model
|
|||||||
'pihak_membantu_konflik_nama',
|
'pihak_membantu_konflik_nama',
|
||||||
'tahun_bantuan_konflik',
|
'tahun_bantuan_konflik',
|
||||||
'status_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',
|
'created_by',
|
||||||
'updated_by',
|
'updated_by',
|
||||||
'deleted_by',
|
'deleted_by',
|
||||||
@@ -64,6 +147,40 @@ class SosialEkonomi extends Model
|
|||||||
'pihak_membantu_konflik' => PihakMembantuKonflik::class,
|
'pihak_membantu_konflik' => PihakMembantuKonflik::class,
|
||||||
'tahun_bantuan_konflik' => 'integer',
|
'tahun_bantuan_konflik' => 'integer',
|
||||||
'status_konflik' => StatusKonflik::class,
|
'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,
|
||||||
];
|
];
|
||||||
|
|
||||||
public function petani(): BelongsTo
|
public function petani(): BelongsTo
|
||||||
|
|||||||
@@ -0,0 +1,153 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('sosial_ekonomi', function (Blueprint $table) {
|
||||||
|
// Sosial Budaya Fields
|
||||||
|
$table->tinyInteger('kemauan_mencoba_praktik_baru')->nullable()->after('status_konflik');
|
||||||
|
$table->text('alasan_mencoba_praktik_baru')->nullable()->after('kemauan_mencoba_praktik_baru');
|
||||||
|
$table->text('hambatan_mengubah_cara_bertani')->nullable()->after('alasan_mencoba_praktik_baru');
|
||||||
|
|
||||||
|
$table->tinyInteger('pemahaman_mutu_harga')->nullable()->after('hambatan_mengubah_cara_bertani');
|
||||||
|
$table->text('contoh_pemahaman_mutu_harga')->nullable()->after('pemahaman_mutu_harga');
|
||||||
|
$table->string('pengetahuan_harga_hasil_olah')->nullable()->after('contoh_pemahaman_mutu_harga');
|
||||||
|
$table->string('pernah_jual_harga_lebih_tinggi')->nullable()->after('pengetahuan_harga_hasil_olah');
|
||||||
|
$table->text('penyebab_harga_lebih_tinggi')->nullable()->after('pernah_jual_harga_lebih_tinggi');
|
||||||
|
$table->string('usaha_mutu_tambahan_harga')->nullable()->after('penyebab_harga_lebih_tinggi');
|
||||||
|
$table->text('alasan_usaha_mutu_tambahan_harga')->nullable()->after('usaha_mutu_tambahan_harga');
|
||||||
|
|
||||||
|
$table->tinyInteger('panutan_petani_sukses')->nullable()->after('alasan_usaha_mutu_tambahan_harga');
|
||||||
|
$table->text('nama_lokasi_panutan')->nullable()->after('panutan_petani_sukses');
|
||||||
|
|
||||||
|
$table->tinyInteger('kemauan_ikut_program')->nullable()->after('nama_lokasi_panutan');
|
||||||
|
$table->text('harapan_program')->nullable()->after('kemauan_ikut_program');
|
||||||
|
|
||||||
|
$table->tinyInteger('orientasi_rencana_jangka_panjang')->nullable()->after('harapan_program');
|
||||||
|
$table->text('rencana_jangka_panjang')->nullable()->after('orientasi_rencana_jangka_panjang');
|
||||||
|
|
||||||
|
// Keanggotaan Kelompok Fields
|
||||||
|
$table->string('terdaftar_kelompok_tani')->nullable()->after('rencana_jangka_panjang');
|
||||||
|
$table->string('nama_kelompok_tani')->nullable()->after('terdaftar_kelompok_tani');
|
||||||
|
$table->unsignedInteger('lama_bergabung_kelompok_tahun')->nullable()->after('nama_kelompok_tani');
|
||||||
|
$table->string('kedekatan_sesama_anggota')->nullable()->after('lama_bergabung_kelompok_tahun');
|
||||||
|
|
||||||
|
$table->tinyInteger('keaktifan_pertemuan_kelompok')->nullable()->after('kedekatan_sesama_anggota');
|
||||||
|
$table->text('topik_biasa_dibahas')->nullable()->after('keaktifan_pertemuan_kelompok');
|
||||||
|
|
||||||
|
$table->tinyInteger('peran_dalam_kelompok')->nullable()->after('topik_biasa_dibahas');
|
||||||
|
$table->tinyInteger('manfaat_kelompok_tani')->nullable()->after('peran_dalam_kelompok');
|
||||||
|
|
||||||
|
$table->string('status_kartu_tani')->nullable()->after('manfaat_kelompok_tani');
|
||||||
|
$table->string('bisa_beli_pupuk_bersubsidi')->nullable()->after('status_kartu_tani');
|
||||||
|
$table->text('manfaat_lain_kartu_tani')->nullable()->after('bisa_beli_pupuk_bersubsidi');
|
||||||
|
|
||||||
|
// Akses Keuangan Fields
|
||||||
|
$table->tinyInteger('status_rekening_tabungan')->nullable()->after('manfaat_lain_kartu_tani');
|
||||||
|
$table->string('nama_bank')->nullable()->after('status_rekening_tabungan');
|
||||||
|
|
||||||
|
$table->tinyInteger('pengalaman_kredit_kebun')->nullable()->after('nama_bank');
|
||||||
|
$table->json('alasan_kredit_ditolak')->nullable()->after('pengalaman_kredit_kebun');
|
||||||
|
$table->string('alasan_kredit_ditolak_lainnya')->nullable()->after('alasan_kredit_ditolak');
|
||||||
|
|
||||||
|
$table->tinyInteger('kondisi_aset_produktif')->nullable()->after('alasan_kredit_ditolak_lainnya');
|
||||||
|
$table->json('jenis_aset_produktif')->nullable()->after('kondisi_aset_produktif');
|
||||||
|
$table->string('jenis_aset_produktif_lainnya')->nullable()->after('jenis_aset_produktif');
|
||||||
|
$table->text('keterangan_kondisi_aset')->nullable()->after('jenis_aset_produktif_lainnya');
|
||||||
|
|
||||||
|
$table->tinyInteger('keterlibatan_program_keuangan_formal')->nullable()->after('keterangan_kondisi_aset');
|
||||||
|
$table->json('status_program_keuangan_formal')->nullable()->after('keterlibatan_program_keuangan_formal');
|
||||||
|
$table->string('program_keuangan_formal_lainnya_nama')->nullable()->after('status_program_keuangan_formal');
|
||||||
|
|
||||||
|
$table->string('pernah_bantuan_ngo_perusahaan')->nullable()->after('program_keuangan_formal_lainnya_nama');
|
||||||
|
$table->json('detail_bantuan_ngo_perusahaan')->nullable()->after('pernah_bantuan_ngo_perusahaan');
|
||||||
|
|
||||||
|
// Keterikatan Hutang Fields
|
||||||
|
$table->tinyInteger('keterikatan_hutang_panen')->nullable()->after('detail_bantuan_ngo_perusahaan');
|
||||||
|
$table->string('pinjaman_tokoh_adat_panen')->nullable()->after('keterikatan_hutang_panen');
|
||||||
|
$table->text('keterangan_pinjaman_tokoh_adat')->nullable()->after('pinjaman_tokoh_adat_panen');
|
||||||
|
$table->unsignedBigInteger('total_hutang_rupiah')->nullable()->after('keterangan_pinjaman_tokoh_adat');
|
||||||
|
$table->decimal('total_hutang_setara_kg_panen', 12, 2)->nullable()->after('total_hutang_rupiah');
|
||||||
|
$table->boolean('total_hutang_tidak_bersedia')->nullable()->after('total_hutang_setara_kg_panen');
|
||||||
|
$table->tinyInteger('praktik_ijon')->nullable()->after('total_hutang_tidak_bersedia');
|
||||||
|
$table->string('tekanan_jual_segera')->nullable()->after('praktik_ijon');
|
||||||
|
$table->text('penyebab_tekanan_jual_segera')->nullable()->after('tekanan_jual_segera');
|
||||||
|
|
||||||
|
$table->tinyInteger('kebebasan_memilih_pembeli')->nullable()->after('penyebab_tekanan_jual_segera');
|
||||||
|
$table->text('alasan_tidak_bebas_memilih_pembeli')->nullable()->after('kebebasan_memilih_pembeli');
|
||||||
|
$table->string('minat_pembeli_harga_stabil')->nullable()->after('alasan_tidak_bebas_memilih_pembeli');
|
||||||
|
$table->text('alasan_minat_pembeli_harga_stabil')->nullable()->after('minat_pembeli_harga_stabil');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('sosial_ekonomi', function (Blueprint $table) {
|
||||||
|
$table->dropColumn([
|
||||||
|
// Sosial Budaya
|
||||||
|
'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',
|
||||||
|
// Keanggotaan Kelompok
|
||||||
|
'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',
|
||||||
|
// Akses Keuangan
|
||||||
|
'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
|
||||||
|
'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',
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user