Added partner order statistic on dashboard

This commit is contained in:
Frank Schubert
2024-01-11 18:21:02 +01:00
parent 42c527c38c
commit f86190d72c
5 changed files with 138 additions and 17 deletions

View File

@@ -58,6 +58,8 @@ class DashboardController extends mfBaseController {
$status_connected_multi = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 245]);
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
$partner_orders = $this->getPartnerOrderCount($campaign_ids);
} else {
$campaigns = PreordercampaignModel::search(["owner_id" => $this->me->address_id]);
@@ -74,13 +76,22 @@ class DashboardController extends mfBaseController {
$status_connected_multi = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 245]);
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
$partner_orders = $this->getPartnerOrderCount($campaign_ids);
}
$total_orders = $partner_orders["total"];
unset($partner_orders["total"]);
//var_dump($partner_orders);exit;
$this->layout()->set("max_connections", $max_connections);
$this->layout()->set("count_orders", $count_orders);
$this->layout()->set("status_connected_single", $status_connected_single);
$this->layout()->set("status_connected_multi", $status_connected_multi);
$this->layout()->set("status_connected", $status_connected);
$this->layout()->set("partner_orders", $partner_orders);
$this->layout()->set("total_orders", $total_orders);
$this->layout()->set("campaigns", $campaigns);
$this->layout()->set("campaign_id", $r->campaign_id);
@@ -99,6 +110,27 @@ class DashboardController extends mfBaseController {
return $total_homes;
}
private function getPartnerOrderCount($preordercampaign_id = []) {
$orders = [];
$totals = 0;
foreach(AddressModel::search(["addresstype" => ["salespartner"]]) as $partner) {
$count = PreorderModel::count(["partner_id" => $partner->id, "preordercampaign_id" => $preordercampaign_id, "deleted" => 0]);
if($count) {
if(!array_key_exists($partner->getCompanyOrName(), $orders)) {
$orders[$partner->getCompanyOrName()] = $count;
} else {
$orders[$partner->getCompanyOrName()] += $count;
}
$totals += $count;
}
}
arsort($orders);
$orders["total"] = $totals;
return $orders;
}
protected function pdfAction() {
$order = new Order(7);