From 0be058953aaca39055de18ee0d31d830337e4745 Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Wed, 10 Dec 2025 09:07:16 +0100 Subject: [PATCH] fixed export warnings/errors and when no campaign is selected for admins --- Layout/default/Preorder/export.csv.php | 4 +-- application/Preorder/PreorderController.php | 39 ++++++++++++--------- application/Preorder/PreorderModel.php | 12 +++---- 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/Layout/default/Preorder/export.csv.php b/Layout/default/Preorder/export.csv.php index 0658bd761..e39f34bab 100644 --- a/Layout/default/Preorder/export.csv.php +++ b/Layout/default/Preorder/export.csv.php @@ -75,8 +75,8 @@ while($data = mysqli_fetch_object($res)): if($data->attributes) { $attribs = json_decode($data->attributes, true); - if($attribs['bep_specified']) $bep = true; - if($attribs['inhouse_cabling_supplied']) $inhouse = true; + if(isset($attribs['bep_specified']) && $attribs['bep_specified']) $bep = true; + if(isset($attribs['inhouse_cabling_supplied']) && $attribs['inhouse_cabling_supplied']) $inhouse = true; } $addon_property = 0; diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php index 6e6e16c80..c36ae68d4 100644 --- a/application/Preorder/PreorderController.php +++ b/application/Preorder/PreorderController.php @@ -1001,34 +1001,38 @@ class PreorderController extends mfBaseController { $campaign_ids = []; foreach(PreordercampaignModel::search(["network_id" => $netzgebiet_ids]) as $campaign) { - echo "campaign: ".$campaign->id."
"; if(!in_array($campaign->id, $campaign_ids)) { $campaign_ids[] = $campaign->id; } } - if(array_key_exists("preordercampaign_id", $filter) && in_array($filter['preordercampaign_id'], $campaign_ids)) { - $preorder_filter["preordercampaign_id"] = $filter['preordercampaign_id']; + if($this->me->is("Admin")) { + if(array_key_exists("preordercampaign_id", $filter) && $filter['preordercampaign_id']) { + $preorder_filter["preordercampaign_id"] = $filter['preordercampaign_id']; + } } else { - $preorder_filter["preordercampaign_id"] = $campaign_ids; - } + if(array_key_exists("preordercampaign_id", $filter) && in_array($filter['preordercampaign_id'], $campaign_ids)) { + $preorder_filter["preordercampaign_id"] = $filter['preordercampaign_id']; + } else { + $preorder_filter["preordercampaign_id"] = $campaign_ids; + } - if($preorder_filter['preordercampaign_id'] && in_array($preorder_filter['preordercampaign_id'], $campaign_ids)) { - $campaign_id = $preorder_filter['preordercampaign_id']; - if(is_numeric($campaign_id) && $campaign_id > 0) { - $campaign = new Preordercampaign($campaign_id); - $this->layout()->set("campaign", $campaign); + if($preorder_filter['preordercampaign_id'] && in_array($preorder_filter['preordercampaign_id'], $campaign_ids)) { + $campaign_id = $preorder_filter['preordercampaign_id']; + if(is_numeric($campaign_id) && $campaign_id > 0) { + $campaign = new Preordercampaign($campaign_id); + $this->layout()->set("campaign", $campaign); - if($campaign->network->owner_id != $this->me->address_id && NetworkAddressModel::getFirst(["network_id" => $campaign->network_id, "address_id" => $this->me->address_id, "addresstype" => "salespartner"])) { + if($campaign->network->owner_id != $this->me->address_id && NetworkAddressModel::getFirst(["network_id" => $campaign->network_id, "address_id" => $this->me->address_id, "addresstype" => "salespartner"])) { + $preorder_filter["operator_id"] = $this->me->address_id; + } + } + } else { + $preorder_filter['preordercampaign_id'] = $campaign_ids; + if(NetworkAddressModel::getFirst(["address_id" => $this->me->address_id, "addresstype" => "salespartner"])) { $preorder_filter["operator_id"] = $this->me->address_id; } } - } else { - $preorder_filter['preordercampaign_id'] = $campaign_ids; - if(NetworkAddressModel::getFirst(["address_id" => $this->me->address_id, "addresstype" => "salespartner"])) { - $preorder_filter["operator_id"] = $this->me->address_id; - } - } //$preorder_filter['layout()->setTemplate("Preorder/export.csv"); $this->layout()->set("res", $res); + $this->layout()->set("no_filename", false); } protected function apiAction() { diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index 59668b851..bfe320679 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -563,13 +563,13 @@ class PreorderModel mfLoghandler::singleton()->debug($sql); $res = $db->query($sql); + + // hack for Preorder::exportAction + if ($returnDBRessource) { + return $res; + } + if ($db->num_rows($res)) { - - // hack for Preorder::exportAction - if ($returnDBRessource) { - return $res; - } - while ($data = $db->fetch_object($res)) { if ($returnArray) { $items[] = $data;