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 @@
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;