#!/usr/bin/php id) { echo "$hausnummer_id not found\n"; continue; } //continue; $updates = []; if($existing_hausnummer->netzgebiet->extref != $netzgebiet_extref) { echo "$hausnummer_id: netzgebiet '".$existing_hausnummer->netzgebiet->name."' => '$netzgebiet_name'\n"; $updates[] = "netzgebiet"; } if($existing_hausnummer->strasse->name != $strasse_name) { echo "$hausnummer_id: strasse '".$existing_hausnummer->strasse->name."' => '$strasse_name'\n"; $updates[] = "strasse"; } if($existing_hausnummer->strasse->gemeinde->name != $gem_name) { echo "$hausnummer_id: gemeinde '".$existing_hausnummer->strasse->gemeinde->name."' => '$gem_name'\n"; $updates[] = "gemeinde"; } if($existing_hausnummer->hausnummer != $hausnummer_string) { echo "$hausnummer_id: hausnummer '".$existing_hausnummer->hausnummer."' => '$hausnummer_string'\n"; $updates[] = "hausnummer"; } if($existing_hausnummer->ortschaft->name != $ort_name) { echo "$hausnummer_id: ortschaft '".$existing_hausnummer->ortschaft->name."' => '$ort_name'\n"; $updates[] = "ortschaft"; } if($existing_hausnummer->plz->plz != $plz_string) { echo "$hausnummer_id: plz '".$existing_hausnummer->plz->plz."' => '$plz_string'\n"; $updates[] = "plz"; } if($existing_hausnummer->rollout != $rollout_time) { echo "$hausnummer_id: rollout '".$existing_hausnummer->rollout."' => '$rollout_time'\n"; $updates[] = "rollout"; } if($existing_hausnummer->rollout_info != $rollout_info) { echo "$hausnummer_id: rollout_info '".$existing_hausnummer->rollout_info."' => '$rollout_info'\n"; $updates[] = "rollout_info"; } if($existing_hausnummer->unit_count != $unit_count) { echo "$hausnummer_id: unit_count '".$existing_hausnummer->unit_count."' => '$unit_count'\n"; $updates[] = "unit_count"; } if(!count($updates)) { continue; } if(in_array("netzgebiet", $updates)) { $netzgebiet = ADBNetzgebietModel::getFirst(['extref' => $netzgebiet_extref]); if(!$netzgebiet) { die("$hausnummer_id: Netzgebiet ($netzgebiet_extref: $netzgebiet_name) nicht gefunden\n"); } $existing_hausnummer->netzgebiet_id = $netzgebiet->id; echo "$hausnummer_id: Updating Netzgebiet to ".$netzgebiet->id."\n"; //$existing_hausnummer->save(); } if(in_array("rollout", $updates) || in_array("rollout_info", $updates)) { $new_rollout = false; $new_rollout_info = false; $freigabe = $freigabe_default; if(is_numeric($rollout_time)) { $new_rollout = $rollout_time; $new_rollout_info = null; $freigabe = $freigabe_default; } elseif($rollout_time == "2024/2025") { $new_rollout = null; $new_rollout_info = "2024/2025"; $freigabe = json_encode(['reorder']); } elseif($rollout_info == "2099") { $new_rollout = null; $new_rollout_info = "2099"; $freigabe = json_encode(['reorder']); } else { $new_rollout = null; $new_rollout_info = "unscheduled"; $freigabe = json_encode([]); } $existing_hausnummer->rollout = $new_rollout; $existing_hausnummer->rollout_info = $new_rollout_info; $existing_hausnummer->freigabe = $freigabe; echo "$hausnummer_id: updating rollout/info/freigabe to $new_rollout / $new_rollout_info / $freigabe\n"; //$existing_hausnummer->save(); } $existing_hausnummer->save(); $u++; // update GemeindeNetzgebiet if needed $netzgebiet = new ADBNetzgebiet($existing_hausnummer->netzgebiet_id); $gemeinde = new ADBGemeinde($existing_hausnummer->strasse->gemeinde_id); checkGemeindeNetzgebiet($gemeinde, $netzgebiet); echo "=================================\n"; } echo "$l lines processed, $u updated\n"; function checkGemeindeNetzgebiet($gemeinde, $netzgebiet) { global $db; $sql = "SELECT * FROM GemeindeNetzgebiet WHERE gemeinde_id=".$gemeinde->id." AND netzgebiet_id=".$netzgebiet->id; $res = $db->query($sql); if($db->num_rows($res)) { return true; } $sql = "INSERT INTO GemeindeNetzgebiet (gemeinde_id, netzgebiet_id, `create`, `edit`) VALUES (".$gemeinde->id.", ".$netzgebiet->id.", UNIX_TIMESTAMP(), UNIX_TIMESTAMP())"; if(!$db->query($sql)) { die("SQL Query failed: $sql\n ".$db->getLastError()); } echo "updated GemeindeNetzgebiet\n"; return true; }