Логика добавления нулевых-пустых данных в результаты статистики для дат, по которым они отсутствуют

parent 6ed5c98a
......@@ -2,6 +2,7 @@
namespace App\Model;
use DateTime;
//use App\Model\Sites;
//use App\Model\Zones;
......@@ -74,13 +75,23 @@ class Statistics
function AddDataStats(&$data_stats, $data, $date_type)
{
$min_koef = ($date_type == 'interval') ? 1 : 5;
foreach ($data as $cat=>$value) {
$data_stats[$cat][] = $value/$min_koef;
}
// Временно:
$data_stats['AdMoney'][] = 224 * $data['Orders'];
}
// Формируем пустые данные для временного промежутка
function AddDataStatsNull(&$data_stats, $cats)
{
foreach ($cats as $cat) {
$data_stats[$cat][] = 0;
}
// Временно:
$data_stats['AdMoney'][] = 0;
}
// Логика формирования данных по временному интервалу:
if (false) {
......@@ -166,10 +177,42 @@ class Statistics
}
$dataStats['type'] = 'interval';
// Спискок всех дат из запроса стастистики:
$all_period = array();
$begin = new DateTime($dates['start']);
$end = new DateTime($dates['end']);
for($i = $begin; $i <= $end; $i->modify('+1 day')){
$all_period[] = $i->format("Y-m-d");
}
// Список дат, полученных в статистике:
$stat_days = array_keys($stats['data']['Day']);
// Список категорий в данных статистики:
$stat_cats = array_keys($stats['data']['Day'][$stat_days[0]]);
foreach ($all_period as $day_item) {
$item = new DateTime($day_item);
$stat_from = new DateTime($stat_days[0]);
$stat_to = new DateTime($stat_days[count($stat_days)-1]);
if (($item>= $stat_from) && ($item<= $stat_to)) {
$period[] = $day_item;
if ($stats['data']['Day'][$day_item]) {
AddDataStats($dataStats, $stats['data']['Day'][$day_item], $dataStats['type']);
} else {
AddDataStatsNull($dataStats, $stat_cats);
}
}
}
/*
foreach ($stats['data']['Day'] as $day=>$value_day) {
$period[] = $day;
AddDataStats($dataStats, $value_day, $dataStats['type']);
}
*/
$dataStats['period'] = $period;
$dataStats['report'] = $report_type;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment