95 lines
2.7 KiB
PHP
95 lines
2.7 KiB
PHP
<?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
|