Update to Dashboard Preorder statistics
This commit is contained in:
@@ -61,6 +61,7 @@ class DashboardController extends mfBaseController {
|
||||
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
|
||||
|
||||
$partner_orders = $this->getPartnerOrderCount($campaign_ids);
|
||||
$partner_orders_by_status = $this->getPartnerOrdersByStatus($campaign_ids);
|
||||
} else {
|
||||
$campaigns = PreordercampaignModel::search(["owner_id" => $this->me->address_id]);
|
||||
|
||||
@@ -78,7 +79,9 @@ 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);
|
||||
$partner_orders_by_status = $this->getPartnerOrdersByStatus($campaign_ids);
|
||||
}
|
||||
|
||||
$total_orders = $partner_orders["total"];
|
||||
@@ -86,6 +89,13 @@ class DashboardController extends mfBaseController {
|
||||
|
||||
//var_dump($partner_orders);exit;
|
||||
|
||||
$stati = [];
|
||||
foreach(PreorderstatusModel::getAll() as $status) {
|
||||
$stati[$status->id] = ["code" => $status->code, "name" => $status->name];
|
||||
}
|
||||
|
||||
$this->layout()->set("stati", $stati);
|
||||
|
||||
$this->layout()->set("max_connections", $max_connections);
|
||||
$this->layout()->set("count_orders", $count_orders);
|
||||
$this->layout()->set("weekly_orders", $weekly_orders);
|
||||
@@ -95,6 +105,7 @@ class DashboardController extends mfBaseController {
|
||||
$this->layout()->set("status_connected", $status_connected);
|
||||
$this->layout()->set("partner_orders", $partner_orders);
|
||||
$this->layout()->set("total_orders", $total_orders);
|
||||
$this->layout()->set("partner_orders_by_status", $partner_orders_by_status);
|
||||
|
||||
$this->layout()->set("campaigns", $campaigns);
|
||||
$this->layout()->set("campaign_id", $r->campaign_id);
|
||||
@@ -118,19 +129,24 @@ class DashboardController extends mfBaseController {
|
||||
$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;
|
||||
$sql = "SELECT COUNT(Preorder.id) as cnt, IF(Address.company IS NOT NULL AND Address.company <> '', Address.company, CONCAT(Address.firstname, ' ', Address.lastname)) as partner FROM Preorder
|
||||
LEFT JOIN Address ON (Preorder.partner_id = Address.id)
|
||||
LEFT JOIN Addresstype ON (Addresstype.address_id = Address.id AND Addresstype.type='salespartner')
|
||||
WHERE Preorder.deleted = 0 AND Preorder.preordercampaign_id IN (".implode(",", $preordercampaign_id).")
|
||||
GROUP BY Address.id
|
||||
";
|
||||
$this->log->debug($sql);
|
||||
$res = $this->db()->query($sql);
|
||||
if($this->db()->num_rows($res)) {
|
||||
while($data = $this->db()->fetch_object($res)) {
|
||||
if($data->partner) {
|
||||
$orders[$data->partner] = $data->cnt;
|
||||
} else {
|
||||
$orders[$partner->getCompanyOrName()] += $count;
|
||||
$orders["Kein Partner"] = $data->cnt;
|
||||
}
|
||||
$totals += $count;
|
||||
$totals += $data->cnt;
|
||||
}
|
||||
}
|
||||
|
||||
arsort($orders);
|
||||
$orders["total"] = $totals;
|
||||
return $orders;
|
||||
@@ -161,6 +177,26 @@ class DashboardController extends mfBaseController {
|
||||
//var_dump($orders);exit;
|
||||
}
|
||||
|
||||
private function getPartnerOrdersByStatus($preordercampaign_id = []) {
|
||||
$orders = [];
|
||||
|
||||
foreach(PreorderModel::search(["preordercampaign_id" => $preordercampaign_id, "deleted" => 0]) as $preorder) {
|
||||
$name = $preorder->partner->getCompanyOrName();
|
||||
if(!$name) $name = "Kein Partner";
|
||||
if(!array_key_exists($name, $orders)) {
|
||||
$orders[$name] = [];
|
||||
$orders[$name]["total"] = 0;
|
||||
}
|
||||
if(!array_key_exists($preorder->status->id, $orders[$name])) {
|
||||
$orders[$name][$preorder->status->id] = 0;
|
||||
}
|
||||
$orders[$name][$preorder->status->id]++;
|
||||
$orders[$name]["total"]++;
|
||||
}
|
||||
//var_dump($orders);exit;
|
||||
return $orders;
|
||||
}
|
||||
|
||||
protected function pdfAction() {
|
||||
$order = new Order(7);
|
||||
$owner = new Address(1);
|
||||
|
||||
Reference in New Issue
Block a user