enums sosial ekonomi

This commit is contained in:
2026-07-07 15:41:02 +07:00
parent b3d805fe98
commit 2eb40f8a1a
15 changed files with 451 additions and 108 deletions
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Enums;
enum KategoriPendapatanKomoditas: string
{
case UTAMA = 'utama';
case LAINNYA = 'lainnya';
public static function values(): array
{
return array_column(self::cases(), 'value');
}
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Enums;
enum PeriodePendapatan: string
{
case MUSIM = 'musim';
case TAHUN = 'tahun';
public static function values(): array
{
return array_column(self::cases(), 'value');
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Enums;
enum PihakMembantuKonflik: string
{
case TIDAK_ADA_SELESAIKAN_SENDIRI = 'Tidak ada-selesaikan sendiri';
case ADA = 'Ada';
public function label(): string
{
return $this->value;
}
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');
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Enums;
enum SkorKecukupanPenghasilan: int
{
case SANGAT_TIDAK_CUKUP = 1;
case KURANG_SERING_BERHUTANG = 2;
case CUKUP_PAS_PASAN = 3;
case CUKUP_ADA_SISA = 4;
case LEBIH_DARI_CUKUP = 5;
public function label(): string
{
return match ($this) {
self::SANGAT_TIDAK_CUKUP => 'Sangat tidak cukup',
self::KURANG_SERING_BERHUTANG => 'Kurang, sering berhutang',
self::CUKUP_PAS_PASAN => 'Cukup pas-pasan',
self::CUKUP_ADA_SISA => 'Cukup, kadang ada sisa',
self::LEBIH_DARI_CUKUP => 'Lebih dari cukup',
};
}
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');
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Enums;
enum SkorKejelasanStatusLahan: int
{
case TIDAK_ADA_DOKUMEN_ADA_SENGKETA = 1;
case ADA_DOKUMEN_MASIH_SENGKETA = 2;
case PERNAH_SENGKETA_SELESAI = 3;
case LAHAN_ADAT_TANPA_SENGKETA = 4;
case BERSERTIFIKAT_TANPA_SENGKETA = 5;
public function label(): string
{
return match ($this) {
self::TIDAK_ADA_DOKUMEN_ADA_SENGKETA => 'Tidak ada dokumen & ada sengketa',
self::ADA_DOKUMEN_MASIH_SENGKETA => 'Ada dokumen tapi masih sengketa',
self::PERNAH_SENGKETA_SELESAI => 'Pernah sengketa, sudah selesai',
self::LAHAN_ADAT_TANPA_SENGKETA => 'Lahan adat/keluarga/perhutanan sosial tanpa sengketa',
self::BERSERTIFIKAT_TANPA_SENGKETA => 'Bersertifikat & tidak ada sengketa',
};
}
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');
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Enums;
enum SkorKemampuanMenabung: int
{
case TIDAK_BISA = 1;
case PERNAH_TERPAKAI = 2;
case KADANG_KADANG = 3;
case BISA_TIDAK_TETAP = 4;
case RUTIN_TETAP = 5;
public function label(): string
{
return match ($this) {
self::TIDAK_BISA => 'Tidak bisa sama sekali',
self::PERNAH_TERPAKAI => 'Pernah tapi selalu terpakai',
self::KADANG_KADANG => 'Kadang-kadang',
self::BISA_TIDAK_TETAP => 'Bisa tapi tidak tetap',
self::RUTIN_TETAP => 'Rutin & jumlah tetap',
};
}
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');
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Enums;
enum SkorPeriodePaceklik: int
{
case LEBIH_DARI_EMPAT_BULAN = 1;
case TIGA_SAMPAI_EMPAT_BULAN = 2;
case SATU_SAMPAI_DUA_BULAN = 3;
case SEBENTAR_TIDAK_MENENTU = 4;
case TIDAK_ADA_STABIL = 5;
public function label(): string
{
return match ($this) {
self::LEBIH_DARI_EMPAT_BULAN => '>4 bulan',
self::TIGA_SAMPAI_EMPAT_BULAN => '3-4 bulan',
self::SATU_SAMPAI_DUA_BULAN => '1-2 bulan',
self::SEBENTAR_TIDAK_MENENTU => 'Sebentar & tidak menentu',
self::TIDAK_ADA_STABIL => 'Tidak ada, stabil',
};
}
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;
enum StatusKepemilikanLahanSosialEkonomi: string
{
case MILIK_PRIBADI = 'Milik pribadi';
case MILIK_ORANG_TUA_KELUARGA = 'Milik orang tua-keluarga';
case SEWA_BAGI_HASIL = 'Sewa-bagi hasil';
case LAHAN_ADAT = 'Lahan adat';
case PERHUTANAN_SOSIAL = 'Perhutanan sosial';
public function label(): string
{
return $this->value;
}
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');
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Enums;
enum StatusKonflik: string
{
case SUDAH_SELESAI = 'Sudah selesai';
case BELUM_MASIH_BERLANJUT = 'Belum, masih berlanjut';
public function label(): string
{
return $this->value;
}
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,20 @@
<?php
namespace App\Http\Controllers\Web\Dashboard;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Gate;
class DistribusiController extends Controller
{
public function index()
{
if (!Gate::allows('super_admin') && !Gate::allows('admin')) {
abort(403);
}
$title = 'Distribusi Dashboard';
return view('dashboard.distribusi', compact('title'));
}
}
@@ -3,6 +3,15 @@
namespace App\Http\Controllers\Web\Produktivitas;
use App\Http\Controllers\Controller;
use App\Enums\KategoriPendapatanKomoditas;
use App\Enums\PeriodePendapatan;
use App\Enums\PihakMembantuKonflik;
use App\Enums\SkorKecukupanPenghasilan;
use App\Enums\SkorKejelasanStatusLahan;
use App\Enums\SkorKemampuanMenabung;
use App\Enums\SkorPeriodePaceklik;
use App\Enums\StatusKepemilikanLahanSosialEkonomi;
use App\Enums\StatusKonflik;
use App\Models\Pertanian\Komoditas;
use App\Models\Pertanian\Lahan;
use App\Models\Pertanian\Petani;
@@ -32,14 +41,14 @@ class SosialEkonomiController extends Controller
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
$komoditasPetani = $this->komoditasPetani($petani);
return view('produktivitas.petani.sosial-ekonomi.index', compact(
return view('produktivitas.petani.sosial-ekonomi.index', array_merge(compact(
'petani',
'sosialEkonomi',
'pendapatanKomoditasUtama',
'pendapatanKomoditasLainnya',
'pendapatanLuarPertanian',
'komoditasPetani'
));
), $this->sosialEkonomiOptions()));
}
public function index(Request $request, Petani $petani)
@@ -87,14 +96,14 @@ class SosialEkonomiController extends Controller
return response()->json($sosialEkonomi);
}
return view($view, compact(
return view($view, array_merge(compact(
'petani',
'sosialEkonomi',
'komoditasPetani',
'pendapatanKomoditasUtama',
'pendapatanKomoditasLainnya',
'pendapatanLuarPertanian',
));
), $this->sosialEkonomiOptions()));
}
public function store(Request $request, ?Petani $petani = null): JsonResponse|RedirectResponse
@@ -214,29 +223,29 @@ class SosialEkonomiController extends Controller
'jumlah_tanggungan' => ['nullable', 'integer', 'min:0'],
'anak_masih_sekolah' => ['nullable', 'integer', 'min:0'],
'yang_ikut_bekerja' => ['nullable', 'integer', 'min:0'],
'skor_periode_paceklik' => ['nullable', 'integer', 'min:1', 'max:5'],
'skor_periode_paceklik' => ['nullable', 'integer', Rule::in(SkorPeriodePaceklik::values())],
'bulan_paceklik' => ['nullable', 'string', 'max:255'],
'sumber_penghasilan_paceklik' => ['nullable', 'string'],
'total_estimasi_biaya_kebun_per_musim' => ['nullable', 'integer', 'min:0'],
'skor_kemampuan_menabung' => ['nullable', 'integer', 'min:1', 'max:5'],
'skor_kemampuan_menabung' => ['nullable', 'integer', Rule::in(SkorKemampuanMenabung::values())],
'estimasi_tabungan_per_bulan' => ['nullable', 'integer', 'min:0'],
'skor_kecukupan_penghasilan' => ['nullable', 'integer', 'min:1', 'max:5'],
'skor_kecukupan_penghasilan' => ['nullable', 'integer', Rule::in(SkorKecukupanPenghasilan::values())],
'alasan_kecukupan_penghasilan' => ['nullable', 'string'],
'status_kepemilikan_lahan' => ['nullable', 'string', 'max:255'],
'skor_kejelasan_status_lahan' => ['nullable', 'integer', 'min:1', 'max:5'],
'status_kepemilikan_lahan' => ['nullable', 'string', Rule::in(StatusKepemilikanLahanSosialEkonomi::values())],
'skor_kejelasan_status_lahan' => ['nullable', 'integer', Rule::in(SkorKejelasanStatusLahan::values())],
'ada_sertifikat_dokumen' => ['nullable', 'boolean'],
'ada_sengketa' => ['nullable', 'boolean'],
'keterangan_sengketa' => ['nullable', 'string'],
'pihak_membantu_konflik' => ['nullable', 'string', 'max:255'],
'pihak_membantu_konflik' => ['nullable', 'string', Rule::in(PihakMembantuKonflik::values())],
'pihak_membantu_konflik_nama' => ['nullable', 'string', 'max:255'],
'tahun_bantuan_konflik' => ['nullable', 'integer', 'digits:4'],
'status_konflik' => ['nullable', 'string', 'max:255'],
'status_konflik' => ['nullable', 'string', Rule::in(StatusKonflik::values())],
'pendapatan_komoditas' => ['nullable', 'array'],
'pendapatan_komoditas.*.kategori' => ['required_with:pendapatan_komoditas', 'string', 'in:utama,lainnya'],
'pendapatan_komoditas.*.kategori' => ['required_with:pendapatan_komoditas', 'string', Rule::in(KategoriPendapatanKomoditas::values())],
'pendapatan_komoditas.*.komoditas' => ['nullable', 'string', 'max:255'],
'pendapatan_komoditas.*.pendapatan' => ['nullable', 'integer', 'min:0'],
'pendapatan_komoditas.*.periode' => ['nullable', 'string', 'in:musim,tahun'],
'pendapatan_komoditas.*.periode' => ['nullable', 'string', Rule::in(PeriodePendapatan::values())],
'pendapatan_luar_pertanian' => ['nullable', 'array'],
'pendapatan_luar_pertanian.*.jenis_pekerjaan' => ['nullable', 'string', 'max:255'],
@@ -253,7 +262,9 @@ class SosialEkonomiController extends Controller
])
->all();
if (($payload['pihak_membantu_konflik'] ?? null) === 'Tidak ada-selesaikan sendiri') {
$payload = $this->normalizeSkorPayload($payload);
if (($payload['pihak_membantu_konflik'] ?? null) === PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value) {
$payload['pihak_membantu_konflik_nama'] = null;
$payload['tahun_bantuan_konflik'] = null;
}
@@ -261,6 +272,22 @@ class SosialEkonomiController extends Controller
return $payload;
}
private function normalizeSkorPayload(array $payload): array
{
foreach ([
'skor_periode_paceklik',
'skor_kemampuan_menabung',
'skor_kecukupan_penghasilan',
'skor_kejelasan_status_lahan',
] as $field) {
if (array_key_exists($field, $payload) && !is_null($payload[$field]) && $payload[$field] !== '') {
$payload[$field] = (int) $payload[$field];
}
}
return $payload;
}
private function syncPendapatanKomoditas(SosialEkonomi $sosialEkonomi, array $items): void
{
$sosialEkonomi->pendapatanKomoditas()->delete();
@@ -333,4 +360,18 @@ class SosialEkonomiController extends Controller
->get();
}
private function sosialEkonomiOptions(): array
{
return [
'periodePaceklikOptions' => SkorPeriodePaceklik::options(),
'kemampuanMenabungOptions' => SkorKemampuanMenabung::options(),
'kecukupanPenghasilanOptions' => SkorKecukupanPenghasilan::options(),
'kejelasanStatusLahanOptions' => SkorKejelasanStatusLahan::options(),
'statusKepemilikanLahanOptions' => StatusKepemilikanLahanSosialEkonomi::options(),
'pihakMembantuKonflikOptions' => PihakMembantuKonflik::options(),
'pihakMembantuTanpaBantuanValue' => PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value,
'statusKonflikOptions' => StatusKonflik::options(),
];
}
}
+14 -4
View File
@@ -2,6 +2,13 @@
namespace App\Models\Pertanian;
use App\Enums\PihakMembantuKonflik;
use App\Enums\SkorKecukupanPenghasilan;
use App\Enums\SkorKejelasanStatusLahan;
use App\Enums\SkorKemampuanMenabung;
use App\Enums\SkorPeriodePaceklik;
use App\Enums\StatusKepemilikanLahanSosialEkonomi;
use App\Enums\StatusKonflik;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
@@ -45,15 +52,18 @@ class SosialEkonomi extends Model
'jumlah_tanggungan' => 'integer',
'anak_masih_sekolah' => 'integer',
'yang_ikut_bekerja' => 'integer',
'skor_periode_paceklik' => 'integer',
'skor_periode_paceklik' => SkorPeriodePaceklik::class,
'total_estimasi_biaya_kebun_per_musim' => 'integer',
'skor_kemampuan_menabung' => 'integer',
'skor_kemampuan_menabung' => SkorKemampuanMenabung::class,
'estimasi_tabungan_per_bulan' => 'integer',
'skor_kecukupan_penghasilan' => 'integer',
'skor_kejelasan_status_lahan' => 'integer',
'skor_kecukupan_penghasilan' => SkorKecukupanPenghasilan::class,
'status_kepemilikan_lahan' => StatusKepemilikanLahanSosialEkonomi::class,
'skor_kejelasan_status_lahan' => SkorKejelasanStatusLahan::class,
'ada_sertifikat_dokumen' => 'boolean',
'ada_sengketa' => 'boolean',
'pihak_membantu_konflik' => PihakMembantuKonflik::class,
'tahun_bantuan_konflik' => 'integer',
'status_konflik' => StatusKonflik::class,
];
public function petani(): BelongsTo
@@ -0,0 +1,16 @@
@extends('layout.main')
@section('content')
<div class="container-xxl flex-grow-1 container-p-y">
<div class="card">
<div class="card-header border-bottom">
<h5 class="card-title mb-0">{{ $title }}</h5>
</div>
<div class="card-body">
<p class="text-muted mb-0">
Dashboard distribusi sedang disiapkan.
</p>
</div>
</div>
</div>
@endsection
@@ -202,15 +202,14 @@
<h5 class="pb-4 border-bottom mb-4 mt-4">Stabilitas Penghasilan</h5>
<div class="row">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-periode-paceklik">Periode Paceklik</label>
<select class="form-control @error('skor_periode_paceklik') is-invalid @enderror" id="skor-periode-paceklik" name="skor_periode_paceklik">
<option value="">Pilih Periode Paceklik</option>
<option value="1" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 1 ? 'selected' : '' }}>&gt;4 bulan</option>
<option value="2" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 2 ? 'selected' : '' }}>3-4 bulan</option>
<option value="3" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 3 ? 'selected' : '' }}>1-2 bulan</option>
<option value="4" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 4 ? 'selected' : '' }}>Sebentar & tidak menentu</option>
<option value="5" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 5 ? 'selected' : '' }}>Tidak ada, stabil</option>
</select>
@php $skorPeriodePaceklikValue = old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik?->value); @endphp
<label class="form-label d-block">Periode Paceklik</label>
@foreach($periodePaceklikOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_periode_paceklik') is-invalid @enderror" type="radio" id="skor-periode-paceklik-{{ $option['value'] }}" name="skor_periode_paceklik" value="{{ $option['value'] }}" {{ (string) $skorPeriodePaceklikValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-periode-paceklik-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_periode_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
@@ -237,15 +236,14 @@
@error('total_estimasi_biaya_kebun_per_musim')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-menabung">Kemampuan Menabung</label>
<select class="form-control @error('skor_kemampuan_menabung') is-invalid @enderror" id="skor-menabung" name="skor_kemampuan_menabung">
<option value="">Pilih Kemampuan Menabung</option>
<option value="1" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 1 ? 'selected' : '' }}>Tidak bisa sama sekali</option>
<option value="2" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 2 ? 'selected' : '' }}>Pernah tapi selalu terpakai</option>
<option value="3" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 3 ? 'selected' : '' }}>Kadang-kadang</option>
<option value="4" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 4 ? 'selected' : '' }}>Bisa tapi tidak tetap</option>
<option value="5" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 5 ? 'selected' : '' }}>Rutin & jumlah tetap</option>
</select>
@php $skorKemampuanMenabungValue = old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung?->value); @endphp
<label class="form-label d-block">Kemampuan Menabung</label>
@foreach($kemampuanMenabungOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_kemampuan_menabung') is-invalid @enderror" type="radio" id="skor-menabung-{{ $option['value'] }}" name="skor_kemampuan_menabung" value="{{ $option['value'] }}" {{ (string) $skorKemampuanMenabungValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-menabung-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_kemampuan_menabung')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
@@ -262,15 +260,14 @@
<h5 class="pb-4 border-bottom mb-4 mt-4">Persepsi Kecukupan Penghasilan</h5>
<div class="row">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-kecukupan">Kecukupan Penghasilan untuk Keluarga</label>
<select class="form-control @error('skor_kecukupan_penghasilan') is-invalid @enderror" id="skor-kecukupan" name="skor_kecukupan_penghasilan">
<option value="">Pilih Kecukupan Penghasilan</option>
<option value="1" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 1 ? 'selected' : '' }}>Sangat tidak cukup</option>
<option value="2" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 2 ? 'selected' : '' }}>Kurang, sering berhutang</option>
<option value="3" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 3 ? 'selected' : '' }}>Cukup pas-pasan</option>
<option value="4" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 4 ? 'selected' : '' }}>Cukup, kadang ada sisa</option>
<option value="5" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 5 ? 'selected' : '' }}>Lebih dari cukup</option>
</select>
@php $skorKecukupanPenghasilanValue = old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan?->value); @endphp
<label class="form-label d-block">Kecukupan Penghasilan untuk Keluarga</label>
@foreach($kecukupanPenghasilanOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_kecukupan_penghasilan') is-invalid @enderror" type="radio" id="skor-kecukupan-{{ $option['value'] }}" name="skor_kecukupan_penghasilan" value="{{ $option['value'] }}" {{ (string) $skorKecukupanPenghasilanValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-kecukupan-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_kecukupan_penghasilan')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-8 mb-4 form-control-validation">
@@ -286,22 +283,21 @@
<label class="form-label" for="status-kepemilikan-lahan">Status Kepemilikan Lahan</label>
<select class="form-control @error('status_kepemilikan_lahan') is-invalid @enderror" id="status-kepemilikan-lahan" name="status_kepemilikan_lahan">
<option value="">Pilih Status Kepemilikan Lahan</option>
@foreach(['Milik pribadi', 'Milik orang tua-keluarga', 'Sewa-bagi hasil', 'Lahan adat', 'Perhutanan sosial'] as $status)
<option value="{{ $status }}" {{ old('status_kepemilikan_lahan', $sosialEkonomi?->status_kepemilikan_lahan) === $status ? 'selected' : '' }}>{{ $status }}</option>
@foreach($statusKepemilikanLahanOptions as $option)
<option value="{{ $option['value'] }}" {{ old('status_kepemilikan_lahan', $sosialEkonomi?->status_kepemilikan_lahan?->value) === $option['value'] ? 'selected' : '' }}>{{ $option['label'] }}</option>
@endforeach
</select>
@error('status_kepemilikan_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-kejelasan-lahan">Kejelasan Status Lahan</label>
<select class="form-control @error('skor_kejelasan_status_lahan') is-invalid @enderror" id="skor-kejelasan-lahan" name="skor_kejelasan_status_lahan">
<option value="">Pilih Kejelasan Status Lahan</option>
<option value="1" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 1 ? 'selected' : '' }}>Tidak ada dokumen & ada sengketa</option>
<option value="2" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 2 ? 'selected' : '' }}>Ada dokumen tapi masih sengketa</option>
<option value="3" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 3 ? 'selected' : '' }}>Pernah sengketa, sudah selesai</option>
<option value="4" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 4 ? 'selected' : '' }}>Lahan adat/keluarga/perhutanan sosial tanpa sengketa</option>
<option value="5" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 5 ? 'selected' : '' }}>Bersertifikat & tidak ada sengketa</option>
</select>
@php $skorKejelasanStatusLahanValue = old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan?->value); @endphp
<label class="form-label d-block">Kejelasan Status Lahan</label>
@foreach($kejelasanStatusLahanOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_kejelasan_status_lahan') is-invalid @enderror" type="radio" id="skor-kejelasan-lahan-{{ $option['value'] }}" name="skor_kejelasan_status_lahan" value="{{ $option['value'] }}" {{ (string) $skorKejelasanStatusLahanValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-kejelasan-lahan-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_kejelasan_status_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-2 mb-4 form-control-validation">
@@ -345,8 +341,9 @@
<label class="form-label" for="pihak-membantu">Pihak yang Membantu</label>
<select class="form-control @error('pihak_membantu_konflik') is-invalid @enderror" id="pihak-membantu" name="pihak_membantu_konflik">
<option value="">Pilih</option>
<option value="Tidak ada-selesaikan sendiri" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik) === 'Tidak ada-selesaikan sendiri' ? 'selected' : '' }}>Tidak ada-selesaikan sendiri</option>
<option value="Ada" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik) === 'Ada' ? 'selected' : '' }}>Ada</option>
@foreach($pihakMembantuKonflikOptions as $option)
<option value="{{ $option['value'] }}" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik?->value) === $option['value'] ? 'selected' : '' }}>{{ $option['label'] }}</option>
@endforeach
</select>
@error('pihak_membantu_konflik')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
@@ -364,8 +361,9 @@
<label class="form-label" for="status-konflik">Status Konflik</label>
<select class="form-control @error('status_konflik') is-invalid @enderror" id="status-konflik" name="status_konflik">
<option value="">Pilih</option>
<option value="Sudah selesai" {{ old('status_konflik', $sosialEkonomi?->status_konflik) === 'Sudah selesai' ? 'selected' : '' }}>Sudah selesai</option>
<option value="Belum, masih berlanjut" {{ old('status_konflik', $sosialEkonomi?->status_konflik) === 'Belum, masih berlanjut' ? 'selected' : '' }}>Belum, masih berlanjut</option>
@foreach($statusKonflikOptions as $option)
<option value="{{ $option['value'] }}" {{ old('status_konflik', $sosialEkonomi?->status_konflik?->value) === $option['value'] ? 'selected' : '' }}>{{ $option['label'] }}</option>
@endforeach
</select>
@error('status_konflik')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
@@ -373,7 +371,7 @@
<div class="mt-4 text-end">
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-device-floppy me-1_5 icon-sm"></i>Simpan Sosial Ekonomi
Simpan Sosial Ekonomi
</button>
</div>
</div>
@@ -388,7 +386,9 @@
<script>
'use strict';
$(document).ready(function () {
$('#skor-periode-paceklik, #skor-menabung, #skor-kecukupan, #status-kepemilikan-lahan, #skor-kejelasan-lahan, #pihak-membantu, #status-konflik, .sosial-ekonomi-komoditas').select2();
const pihakMembantuTanpaBantuan = @json($pihakMembantuTanpaBantuanValue);
$('#status-kepemilikan-lahan, #pihak-membantu, #status-konflik, .sosial-ekonomi-komoditas').select2();
function syncKomoditasLainnyaOptions() {
const selectedUtama = $('.sosial-ekonomi-komoditas-utama')
@@ -594,7 +594,7 @@
}
function syncPihakMembantuFields() {
const isTidakAda = $('#pihak-membantu').val() === 'Tidak ada-selesaikan sendiri';
const isTidakAda = $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
$fields.prop('disabled', isTidakAda);
@@ -202,15 +202,14 @@
<h5 class="pb-4 border-bottom mb-4 mt-4">Stabilitas Penghasilan</h5>
<div class="row">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-periode-paceklik">Periode Paceklik</label>
<select class="form-control @error('skor_periode_paceklik') is-invalid @enderror" id="skor-periode-paceklik" name="skor_periode_paceklik">
<option value="">Pilih Periode Paceklik</option>
<option value="1" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 1 ? 'selected' : '' }}>&gt;4 bulan</option>
<option value="2" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 2 ? 'selected' : '' }}>3-4 bulan</option>
<option value="3" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 3 ? 'selected' : '' }}>1-2 bulan</option>
<option value="4" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 4 ? 'selected' : '' }}>Sebentar & tidak menentu</option>
<option value="5" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 5 ? 'selected' : '' }}>Tidak ada, stabil</option>
</select>
@php $skorPeriodePaceklikValue = old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik?->value); @endphp
<label class="form-label d-block">Periode Paceklik</label>
@foreach($periodePaceklikOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_periode_paceklik') is-invalid @enderror" type="radio" id="skor-periode-paceklik-{{ $option['value'] }}" name="skor_periode_paceklik" value="{{ $option['value'] }}" {{ (string) $skorPeriodePaceklikValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-periode-paceklik-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_periode_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
@@ -237,15 +236,14 @@
@error('total_estimasi_biaya_kebun_per_musim')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-menabung">Kemampuan Menabung</label>
<select class="form-control @error('skor_kemampuan_menabung') is-invalid @enderror" id="skor-menabung" name="skor_kemampuan_menabung">
<option value="">Pilih Kemampuan Menabung</option>
<option value="1" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 1 ? 'selected' : '' }}>Tidak bisa sama sekali</option>
<option value="2" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 2 ? 'selected' : '' }}>Pernah tapi selalu terpakai</option>
<option value="3" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 3 ? 'selected' : '' }}>Kadang-kadang</option>
<option value="4" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 4 ? 'selected' : '' }}>Bisa tapi tidak tetap</option>
<option value="5" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 5 ? 'selected' : '' }}>Rutin & jumlah tetap</option>
</select>
@php $skorKemampuanMenabungValue = old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung?->value); @endphp
<label class="form-label d-block">Kemampuan Menabung</label>
@foreach($kemampuanMenabungOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_kemampuan_menabung') is-invalid @enderror" type="radio" id="skor-menabung-{{ $option['value'] }}" name="skor_kemampuan_menabung" value="{{ $option['value'] }}" {{ (string) $skorKemampuanMenabungValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-menabung-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_kemampuan_menabung')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
@@ -262,15 +260,14 @@
<h5 class="pb-4 border-bottom mb-4 mt-4">Persepsi Kecukupan Penghasilan</h5>
<div class="row">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-kecukupan">Kecukupan Penghasilan untuk Keluarga</label>
<select class="form-control @error('skor_kecukupan_penghasilan') is-invalid @enderror" id="skor-kecukupan" name="skor_kecukupan_penghasilan">
<option value="">Pilih Kecukupan Penghasilan</option>
<option value="1" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 1 ? 'selected' : '' }}>Sangat tidak cukup</option>
<option value="2" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 2 ? 'selected' : '' }}>Kurang, sering berhutang</option>
<option value="3" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 3 ? 'selected' : '' }}>Cukup pas-pasan</option>
<option value="4" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 4 ? 'selected' : '' }}>Cukup, kadang ada sisa</option>
<option value="5" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 5 ? 'selected' : '' }}>Lebih dari cukup</option>
</select>
@php $skorKecukupanPenghasilanValue = old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan?->value); @endphp
<label class="form-label d-block">Kecukupan Penghasilan untuk Keluarga</label>
@foreach($kecukupanPenghasilanOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_kecukupan_penghasilan') is-invalid @enderror" type="radio" id="skor-kecukupan-{{ $option['value'] }}" name="skor_kecukupan_penghasilan" value="{{ $option['value'] }}" {{ (string) $skorKecukupanPenghasilanValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-kecukupan-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_kecukupan_penghasilan')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-8 mb-4 form-control-validation">
@@ -286,22 +283,21 @@
<label class="form-label" for="status-kepemilikan-lahan">Status Kepemilikan Lahan</label>
<select class="form-control @error('status_kepemilikan_lahan') is-invalid @enderror" id="status-kepemilikan-lahan" name="status_kepemilikan_lahan">
<option value="">Pilih Status Kepemilikan Lahan</option>
@foreach(['Milik pribadi', 'Milik orang tua-keluarga', 'Sewa-bagi hasil', 'Lahan adat', 'Perhutanan sosial'] as $status)
<option value="{{ $status }}" {{ old('status_kepemilikan_lahan', $sosialEkonomi?->status_kepemilikan_lahan) === $status ? 'selected' : '' }}>{{ $status }}</option>
@foreach($statusKepemilikanLahanOptions as $option)
<option value="{{ $option['value'] }}" {{ old('status_kepemilikan_lahan', $sosialEkonomi?->status_kepemilikan_lahan?->value) === $option['value'] ? 'selected' : '' }}>{{ $option['label'] }}</option>
@endforeach
</select>
@error('status_kepemilikan_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="skor-kejelasan-lahan">Kejelasan Status Lahan</label>
<select class="form-control @error('skor_kejelasan_status_lahan') is-invalid @enderror" id="skor-kejelasan-lahan" name="skor_kejelasan_status_lahan">
<option value="">Pilih Kejelasan Status Lahan</option>
<option value="1" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 1 ? 'selected' : '' }}>Tidak ada dokumen & ada sengketa</option>
<option value="2" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 2 ? 'selected' : '' }}>Ada dokumen tapi masih sengketa</option>
<option value="3" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 3 ? 'selected' : '' }}>Pernah sengketa, sudah selesai</option>
<option value="4" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 4 ? 'selected' : '' }}>Lahan adat/keluarga/perhutanan sosial tanpa sengketa</option>
<option value="5" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 5 ? 'selected' : '' }}>Bersertifikat & tidak ada sengketa</option>
</select>
@php $skorKejelasanStatusLahanValue = old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan?->value); @endphp
<label class="form-label d-block">Kejelasan Status Lahan</label>
@foreach($kejelasanStatusLahanOptions as $option)
<div class="form-check mb-2">
<input class="form-check-input @error('skor_kejelasan_status_lahan') is-invalid @enderror" type="radio" id="skor-kejelasan-lahan-{{ $option['value'] }}" name="skor_kejelasan_status_lahan" value="{{ $option['value'] }}" {{ (string) $skorKejelasanStatusLahanValue === (string) $option['value'] ? 'checked' : '' }}>
<label class="form-check-label" for="skor-kejelasan-lahan-{{ $option['value'] }}">{{ $option['label'] }}</label>
</div>
@endforeach
@error('skor_kejelasan_status_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-2 mb-4 form-control-validation">
@@ -345,8 +341,9 @@
<label class="form-label" for="pihak-membantu">Pihak yang Membantu</label>
<select class="form-control @error('pihak_membantu_konflik') is-invalid @enderror" id="pihak-membantu" name="pihak_membantu_konflik">
<option value="">Pilih</option>
<option value="Tidak ada-selesaikan sendiri" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik) === 'Tidak ada-selesaikan sendiri' ? 'selected' : '' }}>Tidak ada-selesaikan sendiri</option>
<option value="Ada" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik) === 'Ada' ? 'selected' : '' }}>Ada</option>
@foreach($pihakMembantuKonflikOptions as $option)
<option value="{{ $option['value'] }}" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik?->value) === $option['value'] ? 'selected' : '' }}>{{ $option['label'] }}</option>
@endforeach
</select>
@error('pihak_membantu_konflik')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
@@ -364,8 +361,9 @@
<label class="form-label" for="status-konflik">Status Konflik</label>
<select class="form-control @error('status_konflik') is-invalid @enderror" id="status-konflik" name="status_konflik">
<option value="">Pilih</option>
<option value="Sudah selesai" {{ old('status_konflik', $sosialEkonomi?->status_konflik) === 'Sudah selesai' ? 'selected' : '' }}>Sudah selesai</option>
<option value="Belum, masih berlanjut" {{ old('status_konflik', $sosialEkonomi?->status_konflik) === 'Belum, masih berlanjut' ? 'selected' : '' }}>Belum, masih berlanjut</option>
@foreach($statusKonflikOptions as $option)
<option value="{{ $option['value'] }}" {{ old('status_konflik', $sosialEkonomi?->status_konflik?->value) === $option['value'] ? 'selected' : '' }}>{{ $option['label'] }}</option>
@endforeach
</select>
@error('status_konflik')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
@@ -373,7 +371,7 @@
<div class="mt-4 text-end">
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-device-floppy me-1_5 icon-sm"></i>Simpan Sosial Ekonomi
Simpan Sosial Ekonomi
</button>
</div>
</div>
@@ -388,7 +386,9 @@
<script>
'use strict';
$(document).ready(function () {
$('#skor-periode-paceklik, #skor-menabung, #skor-kecukupan, #status-kepemilikan-lahan, #skor-kejelasan-lahan, #pihak-membantu, #status-konflik, .sosial-ekonomi-komoditas').select2();
const pihakMembantuTanpaBantuan = @json($pihakMembantuTanpaBantuanValue);
$('#status-kepemilikan-lahan, #pihak-membantu, #status-konflik, .sosial-ekonomi-komoditas').select2();
function syncKomoditasLainnyaOptions() {
const selectedUtama = $('.sosial-ekonomi-komoditas-utama')
@@ -594,7 +594,7 @@
}
function syncPihakMembantuFields() {
const isTidakAda = $('#pihak-membantu').val() === 'Tidak ada-selesaikan sendiri';
const isTidakAda = $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
$fields.prop('disabled', isTidakAda);