diff --git a/application/Preorder/Preorder.php b/application/Preorder/Preorder.php index 2439cd9c9..fd19c7f50 100644 --- a/application/Preorder/Preorder.php +++ b/application/Preorder/Preorder.php @@ -60,7 +60,9 @@ class Preorder extends mfBaseModel { $this->setOrCreateOaid(); if($this->oaid != $old_oaid) { + $this->resetSaveNesting(); $this->save(); + return true; } //TODO: history start @@ -334,11 +336,16 @@ class Preorder extends mfBaseModel { } if(!$this->adb_wohneinheit_id) { + $this->oaid = null; return false; } $wohneinheit = new ADBWohneinheit($this->adb_wohneinheit_id); + if(!$wohneinheit) { + return true; + } + if($this->oaid) { // If current OAID is from correct Origin then do nothing if($campaign->oaid_origin == "thetool") { @@ -358,6 +365,10 @@ class Preorder extends mfBaseModel { if(!$wohneinheit->oaid) { $wohneinheit->oaid = $current_oaid->oaid; $wohneinheit->save(); + } elseif($wohneinheit->oaid != $this->oaid) { + // also check if wohneinheit has a different OAID and set it in the Preorder + // No need to update OAID object, it should be correct already, because Wohneinheit is the source of oaid data, + $this->oaid = $wohneinheit->oaid; } return true; }