rimo-import: new applying changed status flags from hasnummer to preorder

This commit is contained in:
Frank Schubert
2025-02-12 15:29:34 +01:00
parent 0dc103887e
commit b4bf3e304c
2 changed files with 44 additions and 0 deletions

View File

@@ -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;

View File

@@ -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) {