diff --git a/application/Dashboard/DashboardController.php b/application/Dashboard/DashboardController.php
index e05ace346..00e5dc4d8 100644
--- a/application/Dashboard/DashboardController.php
+++ b/application/Dashboard/DashboardController.php
@@ -39,50 +39,51 @@ class DashboardController extends mfBaseController {
$campaign_ids = [$campaign_ids];
}
-
+ $netowner_id = intval($r->netowner_id);
+ $this->layout()->set("netowner_id", $netowner_id);
if($this->me->is("Admin")) {
- $campaigns = PreordercampaignModel::getAll();
+ if($netowner_id) {
+ $campaigns = PreordercampaignModel::search(["owner_id" => $netowner_id]);
+ } else {
+ $campaigns = PreordercampaignModel::getAll();
+ }
if(!$campaign_ids) {
- foreach(PreordercampaignModel::getAll() as $campaign) {
+ $campaign_filter = [];
+ if($netowner_id) {
+ $campaign_filter['owner_id'] = $netowner_id;
+ }
+ foreach(PreordercampaignModel::search($campaign_filter) as $campaign) {
$campaign_ids[] = $campaign->id;
}
}
-
- $max_connections = $this->getTotalHomes($campaign_ids);
- $count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
- $weekly_orders = $this->getWeeklyOrders($campaign_ids);
-
- $status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
- $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);
} else {
$campaigns = PreordercampaignModel::search(["owner_id" => $this->me->address_id]);
-
+ $campaign_filter = ["preordercampaign_id" => $campaign_ids];
if(!$campaign_ids) {
foreach(PreordercampaignModel::search(["owner_id" => $this->me->address_id]) as $campaign) {
$campaign_ids[] = $campaign->id;
}
}
-
- $max_connections = $this->getTotalHomes($campaign_ids);
- $count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
- $weekly_orders = $this->getWeeklyOrders($campaign_ids);
-
- $status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
- $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);
}
+ if(!$campaign_ids) {
+ $campaign_ids = [0];
+ }
+
+ $max_connections = $this->getTotalHomes($campaign_ids);
+ $count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
+ $weekly_orders = $this->getWeeklyOrders($campaign_ids);
+
+ $status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
+ $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"];
unset($partner_orders["total"]);
diff --git a/application/Preorder/Preorder.php b/application/Preorder/Preorder.php
index 8b654ad38..86afc24b3 100644
--- a/application/Preorder/Preorder.php
+++ b/application/Preorder/Preorder.php
@@ -2,7 +2,7 @@
class Preorder extends mfBaseModel {
protected $forcestr = ['street','company','zip','phone','email','note'];
- private $in_after_save = false;
+ private $in_after_save = 0;
private $status;
private $campaign;
@@ -38,7 +38,7 @@ class Preorder extends mfBaseModel {
// prevent potential infinite loop
if($this->in_after_save) return true;
- $this->in_after_save = true;
+ $this->in_after_save++;
// update preorder OAID if it's different from the unit OAID
// but only if the unit OAID is of the same origin as the campaign
$old_oaid = $this->oaid;
@@ -52,6 +52,8 @@ class Preorder extends mfBaseModel {
$this->cascadeStatus();
// Cascade status changes down all active preorders with the same hausnummer
$this->cascadeStatusToPreorders();
+
+ $this->in_after_save--;
}
/*