diff --git a/application/Preorder/Preorder.php b/application/Preorder/Preorder.php index ff7480d07..5be2f7463 100644 --- a/application/Preorder/Preorder.php +++ b/application/Preorder/Preorder.php @@ -574,6 +574,45 @@ class Preorder extends mfBaseModel { return true; } + public function syncStatusFlagsFromAdb() { + if(!$this->adb_hausnummer_id) return true; + + $hausnummer = $this->getProperty("adb_hausnummer"); + + foreach(ADBStatusflagModel::getAll() as $hflag) { + echo $hflag->code."\n"; + $hflag_value = ADBHausnummerStatusflagValueModel::search(["hausnummer_id" => $hausnummer->id, "flag_id" => $hflag->id]); + if(!$hflag_value) { + $hflag_value = ADBHausnummerStatusflagValueModel::create([ + "hausnummer_id" => $hausnummer->id, + "flag_id" => $hflag->id + ]); + } + + $val = $hausnummer->statusflags[$hflag->id]->value->value; + //var_dump($hausnummer->statusflags[$hflag->id]->value->value);exit; + + $pflag = PreorderStatusflagModel::getFirst(["preorder_id" => $this->id, "code" => $hflag->code]); + if(!$pflag) { + $this->log->error(__METHOD__."PreorderStatusFlag with code ".$hflag->code." not found!"); + continue; + } + $pflag_value = PreorderStatusflagValueModel::getFirst(["preorder_id" => $this->id, "flag_id" => $pflag->id]); + if(!$pflag_value) { + $pflag_value = PreorderStatusflagValueModel::create([ + "preorder_id" => $this->id, + "flag_id" => $pflag->id + ]); + } + $pflag_value->value = ($val) ? 1 : 0; + //var_dump($pflag_value); + $pflag_value->save(); + echo "saved value ".$pflag_value->value." for flag_id ".$pflag->id."\n"; + } + + return true; + } + public function setOrCreateOaid($oaid_attributes = false) { $campaign = new Preordercampaign($this->preordercampaign_id); //var_dump($campaign);exit; diff --git a/scripts/adb-rimo-import/rimo-import.php b/scripts/adb-rimo-import/rimo-import.php index 9705d9c16..8b9ba197c 100755 --- a/scripts/adb-rimo-import/rimo-import.php +++ b/scripts/adb-rimo-import/rimo-import.php @@ -286,6 +286,11 @@ foreach ($clusters as $cluster_data) { } \mfValuecache::singleton()->set("adbhausnummer-save-nesting-level-".$hausnummer->id, 0); + + // update Preorders + foreach(\PreorderModel::searchActive(["adb_hausnummer_id" => $hausnummer_id]) as $preorder) { + $preorder->syncStatusFlagsFromAdb(); + } } if(is_object($building->buildingType) && property_exists($building->buildingType, "userLabel") && $building->buildingType->userLabel) {