diff --git a/Layout/default/Preordercampaign/Admin.php b/Layout/default/Preordercampaign/Admin.php
index 99c547f3a..009c88ce2 100644
--- a/Layout/default/Preordercampaign/Admin.php
+++ b/Layout/default/Preordercampaign/Admin.php
@@ -96,7 +96,27 @@
-
+
+
+
OAIDs auf Wohneinheiten updated
+
+
+
+
+ Speichert OAID in Wohneinheit falls fehlt oder inkorrekt:
+
+
+
+
+
+
+
+
+
diff --git a/application/Preordercampaign/PreordercampaignController.php b/application/Preordercampaign/PreordercampaignController.php
index d9ffe1a42..1d6dbe9be 100644
--- a/application/Preordercampaign/PreordercampaignController.php
+++ b/application/Preordercampaign/PreordercampaignController.php
@@ -459,6 +459,38 @@ class PreordercampaignController extends mfBaseController {
$this->layout()->set("campaign", $campaign);
}
+ protected function updateUnitOAIDs() {
+ $this->layout()->setTemplate("Preordercampaign/Admin");
+
+ $id = $this->request->id;
+ if(!is_numeric($id) || !$id) {
+ $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error");
+ $this->redirect("Preordercampaign");
+ }
+
+ $campaign = new Preordercampaign($id);
+ if(!$campaign->id) {
+ $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error");
+ $this->redirect("Preordercampaign");
+ }
+
+ $updated_units = 0;
+
+ foreach(PreorderModel::search(["preordercampaign_id" => $id, 'deleted' => 0]) as $preorder) {
+ if(!$preorder->adb_wohneinheit_id) continue;
+ if(!$preorder->oaid) continue;
+ $unit = $preorder->adb_wohneinheit;
+
+ if(!$preorder->oaid || $unit->oaid != $preorder->oaid) {
+ $preorder->save();
+ $updated_units++;
+ }
+ }
+
+ $this->layout()->setFlash("$updated_units Wohneinheiten aktualisiert", "success");
+ $this->redirect("Preordercampaign", "Admin", ["id" => $id]);
+
+ }
protected function assignOpenAccessIdsToPreorders() {
$this->layout()->setTemplate("Preordercampaign/Admin");