diff --git a/Layout/default/Address/Form.php b/Layout/default/Address/Form.php
index ee46487f8..4ebf5f683 100644
--- a/Layout/default/Address/Form.php
+++ b/Layout/default/Address/Form.php
@@ -161,7 +161,7 @@
diff --git a/Layout/default/menu.php b/Layout/default/menu.php
index b62ed67c1..41a329735 100644
--- a/Layout/default/menu.php
+++ b/Layout/default/menu.php
@@ -87,7 +87,9 @@
is(["Admin","netowner","salespartner"])): ?>
"> Vorbestellung
- "> Bestellungen
+ is(["Admin","salespartner"])): ?>
+ "> Bestellungen
+
diff --git a/application/Api/v1/PreorderApicontroller.php b/application/Api/v1/PreorderApicontroller.php
index 85e35fb35..63a252640 100644
--- a/application/Api/v1/PreorderApicontroller.php
+++ b/application/Api/v1/PreorderApicontroller.php
@@ -279,6 +279,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
$preorder_data['submit_request'] = $this->request_json;
}
$preorder_data['adb_hausnummer_id'] = $address->hausnummer_id;
+ $preorder_data['partner_id'] = $this->me->address_id;
if($unit) {
$preorder_data['adb_wohneinheit_id'] = $unit->wohneinheit_id;
@@ -397,7 +398,12 @@ class PreorderApicontroller extends mfBaseApicontroller {
return mfResponse::InternalServerError();
}
- return mfResponse::Ok(["code" => $preorder->ucode]);
+ $return = ["code" => $preorder->ucode];
+ if($addon_data) {
+ $return["additionalData"] = $addon_data;
+ }
+
+ return mfResponse::Ok($return);
}
}
\ No newline at end of file
diff --git a/application/Building/BuildingController.php b/application/Building/BuildingController.php
index 47b504580..3dd5c7f4f 100644
--- a/application/Building/BuildingController.php
+++ b/application/Building/BuildingController.php
@@ -372,8 +372,27 @@ class BuildingController extends mfBaseController {
private function getFilteredBuildingsApi() {
$buildings = [];
- $filter = $this->request->filter;
+ $filter = [];
+ if(is_array($this->request->filter)) {
+ $filter = $this->request->filter;
+ }
+ if(!$this->me->is("Admin")) {
+ $my_networks = $this->me->myNetworks(['netowner','salespartner']);
+
+ $network_ids = [];
+ foreach($my_networks as $net) {
+ $network_ids[] = $net->id;
+ }
+
+ if(array_key_exists("network_id", $filter)) {
+ if(!in_array($filter['network_id'], $network_ids)) {
+ $filter['network_id'] = $network_ids;
+ }
+ } else {
+ $filter['network_id'] = $network_ids;
+ }
+ }
$results = BuildingModel::search($filter);
diff --git a/application/Building/BuildingModel.php b/application/Building/BuildingModel.php
index 282392876..f47e4f095 100644
--- a/application/Building/BuildingModel.php
+++ b/application/Building/BuildingModel.php
@@ -54,7 +54,7 @@ class BuildingModel {
return $model;
}
- public static function getFirst() {
+ public static function getFirst($filter = []) {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
@@ -105,7 +105,7 @@ class BuildingModel {
return 0;
}
- public static function search($filter, $limit = false) {
+ public static function search($filter=[], $limit = false) {
$items = [];
$db = FronkDB::singleton();
diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php
index 5f1756a4a..19d118214 100644
--- a/application/Preorder/PreorderController.php
+++ b/application/Preorder/PreorderController.php
@@ -154,7 +154,7 @@ class PreorderController extends mfBaseController {
//var_dump($products);exit;
$this->layout()->set("products", $products);
- $partners = AddressModel::search(['addresstype' => ['salespartner']]);
+ $partners = AddressModel::search(['addresstype' => ['netowner','salespartner']]);
$this->layout()->set("partners", $partners);
}
diff --git a/public/docs/preorder-api.yaml b/public/docs/preorder-api.yaml
index c42d0c56e..e1e004998 100644
--- a/public/docs/preorder-api.yaml
+++ b/public/docs/preorder-api.yaml
@@ -348,6 +348,8 @@ paths:
Parameter missing or malformed
'401':
description: Unauthorized
+ '403':
+ description: Vorbestellung für diese Wohneinheit bereits vorhanden
'404':
description: Adresse oder Wohneinheit nicht gefunden
# /preorder/{code}: