diff --git a/Layout/default/Preordercampaign/Admin.php b/Layout/default/Preordercampaign/Admin.php index 936bbf220..def872bf0 100644 --- a/Layout/default/Preordercampaign/Admin.php +++ b/Layout/default/Preordercampaign/Admin.php @@ -98,7 +98,7 @@
-

OAIDs auf Wohneinheiten updated

+

OAIDs auf Wohneinheiten updaten

@@ -118,6 +118,27 @@
+
+
+

OAID-Daten fixen

+
+
+
+
+ Setzt OAIDs auf aktuelle Wohneinheitsdaten (Adresse, FTU): +
+
+ +
+ + +
+
+
diff --git a/application/OpenAccessId/OpenAccessId.php b/application/OpenAccessId/OpenAccessId.php index 68c24745b..e185a57cc 100644 --- a/application/OpenAccessId/OpenAccessId.php +++ b/application/OpenAccessId/OpenAccessId.php @@ -291,7 +291,7 @@ class OpenAccessId extends mfBaseModel { } } - public function getExportData($key) { + public function getExportData($key = false) { if(!$this->export_data) { return []; } else { @@ -299,12 +299,35 @@ class OpenAccessId extends mfBaseModel { if(!is_object($exdata)) { return []; } + + if(!$key) { + return $exdata; + } + if(isset($exdata->$key)) { return $exdata->$key; } } } + public function updateExportData($cat, $key, $value) { + $exp_data = $this->getExportData(); + if(!$exp_data || !is_object($exp_data)) { + $exp_data = new StdClass(); + } + + if(property_exists($exp_data, $cat)) { + $cat_data = $exp_data->$cat; + } else { + $cat_data = new StdClass(); + } + //var_dump($cat_data);exit; + $cat_data->$key = $value; + $exp_data->$cat = $cat_data; + var_dump($exp_data); + $this->export_data = json_encode($exp_data); + } + public function getProperty($name) { if($this->$name == null) { diff --git a/application/OpenAccessId/OpenAccessIdController.php b/application/OpenAccessId/OpenAccessIdController.php index 02857edd6..25ea9d685 100644 --- a/application/OpenAccessId/OpenAccessIdController.php +++ b/application/OpenAccessId/OpenAccessIdController.php @@ -1,5 +1,7 @@ oaid = null; $old_preorder->save(); } + + $rimo = new OpenAccessId_Helper_Rimo($oaid->oaid); + // unassign oaid from rimo ftu + //$rimo->unassignOaid($oaid) // get oaid from rimo // unassign ftu from aoid // remove oaid from old unit diff --git a/application/Preordercampaign/PreordercampaignController.php b/application/Preordercampaign/PreordercampaignController.php index ad4cd6840..430efddf4 100644 --- a/application/Preordercampaign/PreordercampaignController.php +++ b/application/Preordercampaign/PreordercampaignController.php @@ -755,6 +755,8 @@ class PreordercampaignController extends mfBaseController { $missing_oaid = 0; foreach(PreorderModel::search(["preordercampaign_id" => $id, "connection_count" => 1, 'deleted' => 0]) as $preorder) { + if($preorder->id != 997) continue; + if($preorder->type == "interest") { $this->log->debug(__METHOD__.": Ignoring Preorder ".$preorder->id.": is interest"); continue; @@ -788,7 +790,7 @@ class PreordercampaignController extends mfBaseController { $this->log->warning("Cannot export OAID to rimo because not found: ".$wohneinheit->oaid." (Preorder ".$preorder->id." ".$preorder->ucode." ".$preorder->oaid.")"); continue; } - + //var_dump($oaid);exit; if($oaid->exportToRimoAndAssignFtu()) { $oaid_assigned++; } @@ -798,4 +800,98 @@ class PreordercampaignController extends mfBaseController { $this->redirect("Preordercampaign", "Admin", ["id" => $id]); } + + protected function updateOaidFromUnit() { + $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"); + } + + $oaid_updated = 0; + + foreach(PreorderModel::search(["preordercampaign_id" => $id, "connection_count" => 1, 'deleted' => 0]) as $preorder) { + if($preorder->type == "interest") { + $this->log->debug(__METHOD__.": Ignoring Preorder ".$preorder->id.": is interest"); + continue; + } + + if(!$preorder->adb_wohneinheit_id) { + //echo "Keine Wohneinheit in Preorder (".$preorder->id.") ".$preorder->ucode." ".$preorder->oaid."\n"; + $this->log->debug(__METHOD__.": Ignoring Preorder ".$preorder->id.": missing unit"); + $missing_units++; + continue; + } + $wohneinheit = new ADBWohneinheit($preorder->adb_wohneinheit_id); + if(!$wohneinheit->id) { + $this->log->error(__METHOD__.": Wohneinheit nicht gefunden (Preorder ".$preorder->id." ".$preorder->ucode." ".$preorder->oaid.")"); + continue; + } + + if(!$wohneinheit->extref) { + $missing_extrefs++; + continue; + } + + if(!$preorder->oaid) { + continue; + } + + $oaid = OpenAccessIdModel::getFirstOaid($wohneinheit->oaid); + if(!$oaid) { + $this->log->warning("Cannot export OAID to rimo because not found: ".$wohneinheit->oaid." (Preorder ".$preorder->id." ".$preorder->ucode." ".$preorder->oaid.")"); + continue; + } + //var_dump($oaid);exit; + + + + if($oaid->adb_wohneinheit_id != $wohneinheit->id) { + $rimo = new OpenAccessId_Helper_Rimo($oaid->oaid); + + $unit_ftu_data = $wohneinheit->ftu_data; + //var_dump($unit_ftu_data); + if(!$unit_ftu_data) { + continue; + } + + $oaid_ftu = $oaid->getExportData("rimo"); + //var_dump($oaid_ftu); + if($oaid_ftu->ftu_id) { + $rimo->unassignOaid($oaid_ftu->ftu_id); + $rimo->assignOaid($unit_ftu_data["id"]); + + $oaid->updateExportData("rimo", "ftu_id", $unit_ftu_data["id"]); + $oaid->updateExportData("rimo", "ftu_name", $unit_ftu_data["name"]); + $oaid->updateExportData("rimo", "ftu_assigned_date", date("U")); + $oaid->address = $wohneinheit->hausnummer->getAddress(); + $oaid->unit_string = (string)$wohneinheit; + + $oaid->adb_wohneinheit_id = $wohneinheit->id; + $oaid->assigned = date("U"); + $oaid->exported_to = "rimo"; + $oaid->exported = date('U'); + + //var_dump($oaid);exit; + $oaid->save(); + } + + + + } + } + + $this->layout()->setFlash("Done.", "success"); + $this->redirect("Preordercampaign", "Admin", ["id" => $id]); + + } + } \ No newline at end of file