70 lines
1.7 KiB
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);
|
|
}
|
|
}
|
|
}
|