Merge branch 'rework-dashboard' into 'master'

Added Graph for Orders in NewDashboard

See merge request fronk/thetool!876
This commit is contained in:
Luca Haid
2025-01-10 08:07:36 +00:00
3 changed files with 177 additions and 2 deletions
@@ -12,7 +12,7 @@ class DashboardNewController extends mfBaseController {
}
protected function indexAction() {
// $this->layout()->set('additionalJS', ["plugins/chart.js/chart.4.4.6.js", "plugins/chart.js/chartjs-adapter-moment.min.js"]);
$this->layout()->set('additionalJS', ["plugins/chart.js/chart.4.4.6.js", "plugins/chart.js/chartjs-adapter-moment.min.js"]);
Helper::renderVue($this, "DashboardNew", $this->mod, []);
}
@@ -177,9 +177,44 @@ class DashboardNewController extends mfBaseController {
'vollanschluss_dokumentiert_350' => $countFunction(["status_code" => ["350","500"], "type" => "order"]),
'vorsorge_dokumentiert_351' => $countFunction(["status_code" => ["351","500"], "type" => "provision"]),
'provider_bestellt_500' => $countFunction(["status_code" => "500"]),
'timeline' => $this->getTimeline('weekly-orders', $campaign_ids, $gemeinde_ids)
]);
}
private function getTimeline($type, $campaign_ids, $gemeinde_ids) {
$timeline = [];
$baseParams = ["preordercampaign_id" => $campaign_ids];
if (!empty($gemeinde_ids)) {
foreach ($gemeinde_ids as $gemeinde_id) {
$baseParams["gemeinde_id"] = $gemeinde_id;
$timeline[] = $this->getTimelineData($type, $baseParams);
}
} else {
$timeline[] = $this->getTimelineData($type, $baseParams);
}
return $timeline;
}
private function getTimelineData($type, $params) {
$timeline = [];
$start = strtotime('-1 year');
$end = strtotime('today');
$interval = new DateInterval('P1W');
$daterange = new DatePeriod(date_create(date('Y-m-d', $start)), $interval, date_create(date('Y-m-d', $end)));
foreach ($daterange as $date) {
$date = $date->format('Y-m-d');
$params['add-where'] = " AND tt_preorder.`create` >= UNIX_TIMESTAMP('" . $date . " 00:00:00') AND tt_preorder.`create` <= UNIX_TIMESTAMP('" . $date . " 23:59:59')";
$timeline[] = [
'date' => date(DATE_ATOM, strtotime($date)),
'value' => PreorderModel::countActive($params)
];
}
return $timeline;
}
private function getTotalHomes(array $preordercampaign_id = [], array $gemeinde_id = []) {
$baseSQL = "SELECT COUNT(adb_wohneinheit.id) as cnt FROM `" . ADDRESSDB_DBNAME . "`.Wohneinheit adb_wohneinheit