diff --git a/application/Preorder/Preorder.php b/application/Preorder/Preorder.php index 73041b376..e584bc743 100644 --- a/application/Preorder/Preorder.php +++ b/application/Preorder/Preorder.php @@ -579,7 +579,6 @@ class Preorder extends mfBaseModel { if(!$hflag) { $this->log->warn("[".$this->_ruid."] "."Statusflag Code ".$flag->code." does not exist"); } else { - //var_dump($hflag);exit; $hflag->hausnummer_id = $hausnummer->id; $hflag->value->value = $flag->value->value; $hflag->value->save(); @@ -660,38 +659,31 @@ class Preorder extends mfBaseModel { } public function syncStatusFlagsFromAdb() { - if(!$this->adb_hausnummer_id) return true; + if(!$this->id || !$this->adb_hausnummer_id) return true; $hausnummer = $this->getProperty("adb_hausnummer"); foreach(ADBStatusflagModel::getAll() as $hflag) { - $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; + /*if($hflag->code == 141) { + var_dump($hausnummer->statusflags[$hflag->id],$hausnummer->statusflags[$hflag->id]->value);exit; + }*/ $pflag = PreorderStatusflagModel::getFirst(["preorder_id" => $this->id, "code" => $hflag->code]); if(!$pflag) { $this->log->error("[".$this->_ruid."] ".__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->preorder_id = $this->id; + + if($hflag->code == 141) { + var_dump($pflag, $pflag->value, $val); } - $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"; + if($pflag->value->value != $val) { + $pflag->value->value = $val; + $pflag->value->save(); + } + } return true; diff --git a/application/PreorderStatusflag/PreorderStatusflag.php b/application/PreorderStatusflag/PreorderStatusflag.php index 0245c52c0..f49c2d4ee 100644 --- a/application/PreorderStatusflag/PreorderStatusflag.php +++ b/application/PreorderStatusflag/PreorderStatusflag.php @@ -9,13 +9,18 @@ class PreorderStatusflag extends mfBaseModel { if($name == "value") { if(!$this->preorder_id) return null; - $value = PreorderStatusflagValueModel::getFirst(["preorder_id" => $this->preorder_id, "flag_id" => $this->id]); + + $value = mfValuecache::singleton()->get("mfObjectmodel-PreorderStatusflagValue-{$this->code}-".$this->preorder_id); if(!$value) { - $value = PreorderStatusflagValueModel::create([ - "preorder_id" => $this->preorder_id, - "flag_id" => $this->id - ]); + $value = PreorderStatusflagValueModel::getFirst(["preorder_id" => $this->preorder_id, "flag_id" => $this->id]); + if (!$value) { + $value = PreorderStatusflagValueModel::create([ + "preorder_id" => $this->preorder_id, + "flag_id" => $this->id + ]); + } } + mfValuecache::singleton()->set("mfObjectmodel-PreorderStatusflagValue-{$this->code}-".$this->preorder_id, $value); $this->value = $value; return $this->value; }