93 lines
2.6 KiB
PHP
93 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class PenilaianWarga extends Model
|
|
{
|
|
protected $table = 'penilaian_warga';
|
|
|
|
protected $fillable = [
|
|
'warga_id',
|
|
'periode_id',
|
|
'kriteria_id',
|
|
'nilai',
|
|
];
|
|
|
|
protected $casts = [
|
|
'nilai' => 'decimal:2',
|
|
];
|
|
|
|
// Relasi ke Warga
|
|
public function warga()
|
|
{
|
|
return $this->belongsTo(Warga::class, 'warga_id');
|
|
}
|
|
|
|
// Relasi ke Periode Seleksi
|
|
public function periode()
|
|
{
|
|
return $this->belongsTo(PeriodeSeleksi::class, 'periode_id');
|
|
}
|
|
|
|
// Relasi ke Kriteria
|
|
public function kriteria()
|
|
{
|
|
return $this->belongsTo(Kriteria::class, 'kriteria_id');
|
|
}
|
|
|
|
// Helper: Get label untuk nilai berdasarkan kriteria
|
|
public static function getNilaiLabel($kriteriaKode, $nilai)
|
|
{
|
|
// Cari keterangan dari tabel database sub_kriteria
|
|
$sub = \App\Models\SubKriteria::whereHas('kriteria', function($q) use ($kriteriaKode) {
|
|
$q->where('kode', $kriteriaKode);
|
|
})->where('nilai', (int)$nilai)->first();
|
|
|
|
if ($sub) {
|
|
return $sub->keterangan;
|
|
}
|
|
|
|
$labels = [
|
|
'C1' => [
|
|
1 => 'Tidak bekerja / Buruh harian lepas',
|
|
2 => 'Petani kecil / Nelayan kecil',
|
|
3 => 'Pedagang kecil / Wiraswasta kecil',
|
|
4 => 'Karyawan swasta / PNS Golongan rendah',
|
|
5 => 'PNS / Profesional / Pengusaha',
|
|
],
|
|
'C2' => [
|
|
1 => '1 orang',
|
|
2 => '2 orang',
|
|
3 => '3 orang',
|
|
4 => '4 orang',
|
|
5 => '> 4 orang',
|
|
],
|
|
'C3' => [
|
|
1 => 'Sehat, usia produktif',
|
|
2 => 'Sehat, lanjut usia',
|
|
3 => 'Sering sakit ringan / Lansia tunggal',
|
|
4 => 'Sakit menahun / Disabilitas ringan',
|
|
5 => 'Sakit kronis parah / Disabilitas berat',
|
|
],
|
|
'C4' => [
|
|
1 => '20 - 30 tahun',
|
|
2 => '31 - 40 tahun',
|
|
3 => '41 - 50 tahun',
|
|
4 => '51 - 60 tahun',
|
|
5 => '> 60 tahun',
|
|
],
|
|
'C5' => [
|
|
1 => 'Belum pernah menerima bantuan',
|
|
2 => 'Pernah menerima (> 2 tahun lalu)',
|
|
3 => 'Pernah menerima (1 - 2 tahun lalu)',
|
|
4 => 'Aktif menerima 1 jenis bantuan',
|
|
5 => 'Aktif menerima banyak jenis bantuan',
|
|
],
|
|
];
|
|
|
|
return $labels[$kriteriaKode][$nilai] ?? $nilai;
|
|
}
|
|
}
|