ikinci temizlik tamamlandı
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/**
|
||||
* @api-readonly
|
||||
* Returns RFI dashboard statistics
|
||||
*/
|
||||
$rfi = db("r_f_i_s")->get();
|
||||
$data = [];
|
||||
|
||||
// Initialize rfi_summary
|
||||
$data['rfi_summary']['Overall'] = 0;
|
||||
$status = j(setting("rfi-status"));
|
||||
|
||||
foreach($status as $stat) {
|
||||
$data['rfi_summary'][$stat] = 0;
|
||||
}
|
||||
|
||||
foreach($rfi as $r) {
|
||||
// Status için güvenli değer atama
|
||||
$currentStatus = !empty($r->status) ? trim($r->status) : 'Undefined';
|
||||
$currentSubcontractor = !empty($r->subcontractor) ? trim($r->subcontractor) : 'Undefined';
|
||||
|
||||
if (!isset($data['rfi_summary'][$currentStatus])) {
|
||||
$data['rfi_summary'][$currentStatus] = 0;
|
||||
}
|
||||
|
||||
$data['rfi_summary'][$currentStatus]++;
|
||||
$data['rfi_summary']['Overall']++;
|
||||
|
||||
if (!isset($data['subcontractor'][$currentSubcontractor]['Overall'])) {
|
||||
$data['subcontractor'][$currentSubcontractor]['Overall'] = 0;
|
||||
}
|
||||
|
||||
foreach ($status as $stat) {
|
||||
if (!isset($data['subcontractor'][$currentSubcontractor][$stat])) {
|
||||
$data['subcontractor'][$currentSubcontractor][$stat] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($data['subcontractor'][$currentSubcontractor][$currentStatus])) {
|
||||
$data['subcontractor'][$currentSubcontractor][$currentStatus] = 0;
|
||||
}
|
||||
|
||||
if($currentSubcontractor !== 'Undefined' && $currentStatus !== 'Undefined') {
|
||||
$data['subcontractor'][$currentSubcontractor][$currentStatus]++;
|
||||
}
|
||||
$data['subcontractor'][$currentSubcontractor]['Overall']++;
|
||||
|
||||
$dateCol = !empty($r->inspection_date) ?
|
||||
date("M-y", strtotime($r->inspection_date)) :
|
||||
date("M-y");
|
||||
|
||||
if (!isset($data['monthly']['total']['qty'])) {
|
||||
$data['monthly']['total']['qty'] = 0;
|
||||
}
|
||||
$data['monthly']['total']['qty']++;
|
||||
|
||||
if (!isset($data['monthly'][$dateCol]['qty'])) {
|
||||
$data['monthly'][$dateCol]['qty'] = 0;
|
||||
}
|
||||
$data['monthly'][$dateCol]['qty']++;
|
||||
}
|
||||
|
||||
// Prepare data for DevExtreme DataGrid
|
||||
$rfiSummaryData = [];
|
||||
foreach ($data['rfi_summary'] as $status => $count) {
|
||||
$rfiSummaryData[] = ['status' => $status, 'count' => $count];
|
||||
}
|
||||
|
||||
$subcontractorData = [];
|
||||
foreach ($data['subcontractor'] as $subcontractor => $statuses) {
|
||||
$row = ['subcontractor' => $subcontractor];
|
||||
foreach ($statuses as $status => $count) {
|
||||
$row[$status] = $count;
|
||||
}
|
||||
$subcontractorData[] = $row;
|
||||
}
|
||||
|
||||
// Prepare data for dxChart
|
||||
$monthlyData = [];
|
||||
foreach ($data['monthly'] as $month => $counts) {
|
||||
if ($month !== 'total') {
|
||||
$monthlyData[] = ['month' => $month, 'qty' => $counts['qty']];
|
||||
}
|
||||
}
|
||||
|
||||
$result = [
|
||||
'rfi_summary' => $rfiSummaryData,
|
||||
'subcontractor' => $subcontractorData,
|
||||
'monthly' => $monthlyData
|
||||
];
|
||||
// Output data
|
||||
echo json_encode($result);
|
||||
|
||||
// Now you can use the data with DevExtreme components
|
||||
Reference in New Issue
Block a user