From 9a87c00abb9b900c75ce9c226dbbcf90446d77cd Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 29 Nov 2022 15:14:46 +0100 Subject: [PATCH] Added exist_is_error flag and showing api_request in Preorder --- Layout/default/Preorder/Form.php | 13 +++++++++++-- Layout/default/Preordercampaign/Form.php | 15 +++++++++++++-- application/Api/v1/PreorderApicontroller.php | 18 +++++++++++++++++- application/Preorder/PreorderModel.php | 2 +- .../PreordercampaignController.php | 6 ++++++ .../Preordercampaign/PreordercampaignModel.php | 1 + 6 files changed, 49 insertions(+), 6 deletions(-) diff --git a/Layout/default/Preorder/Form.php b/Layout/default/Preorder/Form.php index dd196cb49..8f48c2f16 100644 --- a/Layout/default/Preorder/Form.php +++ b/Layout/default/Preorder/Form.php @@ -293,9 +293,18 @@ - - + + submit_type == "api" && $preorder->submit_request): ?> +
+
+
+ +
+
+
+
+ diff --git a/Layout/default/Preordercampaign/Form.php b/Layout/default/Preordercampaign/Form.php index dd7ddbf75..5fba33ed1 100644 --- a/Layout/default/Preordercampaign/Form.php +++ b/Layout/default/Preordercampaign/Form.php @@ -145,7 +145,7 @@
- +
@@ -165,6 +165,17 @@
+
+ +
+ + Weiterer Bestellversuch liefert Fehler zurück +
+
+ diff --git a/application/Api/v1/PreorderApicontroller.php b/application/Api/v1/PreorderApicontroller.php index 45a26711a..85e35fb35 100644 --- a/application/Api/v1/PreorderApicontroller.php +++ b/application/Api/v1/PreorderApicontroller.php @@ -12,6 +12,7 @@ class PreorderApicontroller extends mfBaseApicontroller { private $allowed_preordertypes = []; private $district_is_city = false; private $hausnummer_add_zusatz = false; + private $exist_is_error = false; protected function init() { $db = $this->db(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); @@ -47,10 +48,12 @@ class PreorderApicontroller extends mfBaseApicontroller { if($campaign->district_is_city == 1) { $this->district_is_city = true; } - if($campaign->hausnummer_add_zusatz == 1) { $this->hausnummer_add_zusatz = true; } + if($campaign->exist_is_error == 1) { + $this->exist_is_error = true; + } } @@ -240,6 +243,19 @@ class PreorderApicontroller extends mfBaseApicontroller { } } + if($this->exist_is_error) { + /* + * check if there is an existing preorder for this unit already + */ + if($unit) { + $existing_preorder = PreorderModel::getFirst(['adb_wohneinheit_id' => $unit->wohneinheit_id]); + if($existing_preorder) { + return mfResponse::Forbidden(['message' => "Für diese Wohneinheit liegt bereits eine Bestellung vor"]); + } + } + } + + $address_info = $this->db()->escape(trim($this->post['address_info'])); // get correct campaign by salescluster diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index d37cd9756..b133fbb18 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -94,7 +94,7 @@ class PreorderModel { } - public static function getFirst() { + public static function getFirst($filter = false) { $db = FronkDB::singleton(); $where = self::getSqlFilter($filter); diff --git a/application/Preordercampaign/PreordercampaignController.php b/application/Preordercampaign/PreordercampaignController.php index 90b77496e..0398a1800 100644 --- a/application/Preordercampaign/PreordercampaignController.php +++ b/application/Preordercampaign/PreordercampaignController.php @@ -249,6 +249,12 @@ class PreordercampaignController extends mfBaseController { $data['hausnummer_add_zusatz'] = 0; } + if($r->exist_is_error == 1) { + $data['exist_is_error'] = 1; + } else { + $data['exist_is_error'] = 0; + } + $data['edit_by'] = $this->me->id; if($mode == "add") { diff --git a/application/Preordercampaign/PreordercampaignModel.php b/application/Preordercampaign/PreordercampaignModel.php index 0a987781f..4b4f18976 100644 --- a/application/Preordercampaign/PreordercampaignModel.php +++ b/application/Preordercampaign/PreordercampaignModel.php @@ -13,6 +13,7 @@ class PreordercampaignModel { public $required_preorder_fields; public $district_is_city; public $hausnummer_add_zusatz; + public $exist_is_error; public $note; public $create_by;