From babaac9ea9049682761448ac7b55c27b01bf8c64 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 19 Oct 2023 15:47:55 +0200 Subject: [PATCH] Preorder: addresses in banned FCPs can not be ordered now --- application/AddressDB/AddressDB.php | 1 + application/Api/v1/AddressdbApicontroller.php | 20 +++++++++++++++++++ application/Api/v1/PreorderApicontroller.php | 5 +++++ 3 files changed, 26 insertions(+) diff --git a/application/AddressDB/AddressDB.php b/application/AddressDB/AddressDB.php index c5c6971af..4b1985c4e 100644 --- a/application/AddressDB/AddressDB.php +++ b/application/AddressDB/AddressDB.php @@ -36,6 +36,7 @@ class AddressDB { `Hausnummer`.`rollout` AS `rollout`, `Hausnummer`.`rollout_info` AS `rollout_info`, `Hausnummer`.`freigabe` AS `freigabe`, + `Hausnummer`.`rimo_fcp_name` AS `rimo_fcp_name`, `Wohneinheit`.`id` AS `wohneinheit_id`, `Wohneinheit`.`oaid` AS `wohneinheit_oaid`, `Wohneinheit`.`extref` AS `wohneinheit_extref`, diff --git a/application/Api/v1/AddressdbApicontroller.php b/application/Api/v1/AddressdbApicontroller.php index 598d3664d..1f4501624 100644 --- a/application/Api/v1/AddressdbApicontroller.php +++ b/application/Api/v1/AddressdbApicontroller.php @@ -421,6 +421,16 @@ class AddressdbApicontroller extends mfBaseApicontroller { } } } + + // if FCP is on blacklist, don't allow any order types + $campaign = $this->campaigns[$this->campaigns_by_scluster[$data->netzgebiet_id]]; + if(!$campaign) { + $this->log->error("Campaign not found for netzgebiet_id ".$data->netzgebiet_id); + } else { + if($data->rimo_fcp_name && is_array($campaign->banned_fcps) && count($campaign->banned_fcps) && in_array($data->rimo_fcp_name, $campaign->banned_fcps)) { + $ptypes = []; + } + } } $housenumber = $data->hausnummer; @@ -696,6 +706,16 @@ class AddressdbApicontroller extends mfBaseApicontroller { } } } + + // if FCP is on blacklist, don't allow any order types + $campaign = $this->campaigns[$this->campaigns_by_scluster[$data->netzgebiet_id]]; + if(!$campaign) { + $this->log->error("Campaign not found for netzgebiet_id ".$data->netzgebiet_id); + } else { + if($data->rimo_fcp_name && is_array($campaign->banned_fcps) && count($campaign->banned_fcps) && in_array($data->rimo_fcp_name, $campaign->banned_fcps)) { + $ptypes = []; + } + } } $housenumber = $data->hausnummer; diff --git a/application/Api/v1/PreorderApicontroller.php b/application/Api/v1/PreorderApicontroller.php index 05e73256b..5e356378e 100644 --- a/application/Api/v1/PreorderApicontroller.php +++ b/application/Api/v1/PreorderApicontroller.php @@ -590,6 +590,11 @@ class PreorderApicontroller extends mfBaseApicontroller { return mfResponse::Forbidden(['message' => "PreorderType not allowed"]); } + // if FCP is on blacklist, don't allow order + if($address->rimo_fcp_name && is_array($this->campaign->banned_fcps) && count($this->campaign->banned_fcps) && in_array($address->rimo_fcp_name, $this->campaign->banned_fcps)) { + return mfResponse::Forbidden(['message' => "PreorderType not allowed"]); + } + /* * build fields */