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}: