From c282b50ce893931169b3d89e36f3969789315bcc Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 9 Jul 2025 12:34:22 +0200 Subject: [PATCH] PreorderApi:getAllPreorders: new optional parameter include_deleted --- application/AddressDB/AddressDB.php | 2 ++ application/Api/v1/PreorderApicontroller.php | 14 ++++++++++---- application/Preorder/PreorderModel.php | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/application/AddressDB/AddressDB.php b/application/AddressDB/AddressDB.php index a19c8567d..be6535b93 100644 --- a/application/AddressDB/AddressDB.php +++ b/application/AddressDB/AddressDB.php @@ -239,11 +239,13 @@ class AddressDB { $log->debug(__METHOD__.": Setting Preorder Status to ".$preorderstatus); $preorder->setNewStatusCode($preorderstatus); $preorder->save(); + $preorder->resetSaveNesting(); } if($preorderstatus_flag) { $log->debug(__METHOD__.": Setting Preorder Status Flag ".$preorderstatus); $preorder->setNewStatusCode($preorderstatus); $preorder->save(); + $preorder->resetSaveNesting(); } } diff --git a/application/Api/v1/PreorderApicontroller.php b/application/Api/v1/PreorderApicontroller.php index 07226ec11..21db2fd55 100644 --- a/application/Api/v1/PreorderApicontroller.php +++ b/application/Api/v1/PreorderApicontroller.php @@ -233,6 +233,10 @@ class PreorderApicontroller extends mfBaseApicontroller { protected function getAllPreorders() { $ts = $this->get['ts']; + $include_deleted = false; + if(array_key_exists("include_deleted", $this->get) && $this->get["include_deleted"]) { + $include_deleted = true; + } $update_ts = 0; @@ -247,11 +251,13 @@ class PreorderApicontroller extends mfBaseApicontroller { } } - $preorder_search = [ - "deleted" => 0 - ]; + $preorder_search = []; if($this->me->is("preorderaddressreporting")) { + if(!$include_deleted) { + $preorder_search["deleted"] = 0; + } + $user_networks_json = $this->me->getFlag("preorder_networks"); $user_networks = json_decode($user_networks_json); @@ -268,8 +274,8 @@ class PreorderApicontroller extends mfBaseApicontroller { } $preorder_search['preordercampaign_id'] = $user_campaigns; - } else { + $preorder_search["deleted"] = 0; $preorder_search['partner_id'] = $this->me->address_id; if(count($this->filter_salescluster_ids)) { diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index e69e8eeb9..0b0de9064 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -570,7 +570,7 @@ class PreorderModel if (array_key_exists("deleted", $filter)) { $deleted = $filter['deleted']; - if ($deleted === null || $deleted === false) { + if ($deleted === null || $deleted === false || $deleted === 0) { $where .= " AND (deleted IS NULL OR deleted = 0)"; } elseif ($deleted) { $where .= " AND deleted > 0";