sigd/app/Models/SettingForm.php

70 lines
1.7 KiB
PHP

<?php
namespace App\Models;
class SettingForm extends SigdModel
{
protected $table = 'setting_form';
protected $fillable = [
'id',
'sector',
'code',
'name',
'description',
'row_num',
'active_status',
'row_status',
'created_by',
'updated_by',
];
public static function getGroupForm()
{
$order = ['energy', 'energy_gpc', 'ippu', 'agriculture', 'folu', 'waste'];
$caseStatement = "CASE ";
foreach ($order as $index => $sector) {
$caseStatement .= "WHEN sector = '{$sector}' THEN {$index} ";
}
$caseStatement .= "ELSE " . (count($order)) . " END";
$data = self::where('active_status', 1)->where('row_status', 1)
->orderByRaw($caseStatement)->orderBy('row_num')
->get()->toArray();
$groupedData = [];
foreach ($data as $item) {
$newData = self::getSectorCaption($item['sector']);
$sector = $newData;
if (!isset($groupedData[$sector])) {
$groupedData[$sector] = [];
}
$groupedData[$sector][] = $item;
}
return $groupedData;
}
private static function getSectorCaption($sector)
{
switch ($sector) {
case 'energy':
case 'energy_gpc':
return 'Energi';
case 'ippu':
return 'IPPU';
case 'agriculture':
return 'Pertanian';
case 'folu':
return 'Lahan';
case 'waste':
return 'Limbah';
default:
return ucfirst($sector);
}
}
}