#!/usr/bin/php loadByExtref($netzgebiet_code); if(!$netzgebiet->id) { // create Netzgebiet $netzgebiet_data = [ 'name' => "$netzgebiet_name_main - $netzgebiet_subname", 'extref' => $netzgebiet_code, 'source' => "csv", 'source_id' => $csvname ]; $netzgebiet = ADBNetzgebietModel::create($netzgebiet_data); $netzgebiet_id = $netzgebiet->save(); if(!$netzgebiet_id) { die("Error creating Netzgebiet!\n"); } } //var_dump($netzgebiet);exit; $nutzung = trim($csv[10]); //$unit_count = $csv[10]; //if(!$unit_count) $unit_count = 1; //if(!$strasse_hausnummer) continue; if(!strlen($hausnummer_string) || !strlen($strasse_name)) { die("!! Hausnummer oder Strasse leer (adrcd $adrcd)\n"); } if(!$gem_name || !$plz_string || !$ort_name || !$strasse_name) { die("!! Konnte Adresse nicht parsen\n"); } if(!$hausnummer_extref) { die("!!! Keine Hausnummer Extref\n"); } if(!$netzgebiet_extref) { die("!!! Keine Netzgebiet Extref\n"); } $gemeinde = ADBGemeindeModel::getFirst(['kennziffer' => $gem_kz]); if(!$gemeinde) { die("Gemeinde ($gem_kz, $gem_name) nicht in addressdb gefunden\n"); } // check for GemeindeNetzgebiet checkGemeindeNetzgebiet($gemeinde, $netzgebiet); continue; $strasse = ADBStrasseModel::getFirst(['kennziffer' => $skz]); if(!$strasse) { die("Strasse ($skz, $strasse_name) nicht in addressdb gefunden\n"); } /*$ortschaft = ADBOrtschaftModel::getFirst(['kennziffer' => $ort_kz]); if(!$ortschaft) { die("Ortschaft ($ort_kz, $ort_name) nicht in addressdb gefunden\n"); }*/ $ortschaft = ADBOrtschaftModel::getFirst(['gemeinde_id' => $gemeinde->id, 'name' => $ort_name]); if(!$ortschaft) { die("Ortschaft (gemeinde $gem_name ($gem_kz), $ort_name) nicht in addressdb gefunden\n"); } $plz = ADBPlzModel::getFirst(['gemeinde_id' => $gemeinde->id, 'plz' => $plz_string]); if(!$plz) { echo "PLZ $plz_string in Gemeinde $gemeinde_name nicht gefunden. Wird angelegt.\n"; $plz_data = [ 'gemeinde_id' => $gemeinde->id, 'plz' => $plz_string, 'plz_string' => $plz_string ]; $plz = ADBPlzModel::create($plz_data); $plz_id = $plz->save(); if(!$plz_id) { var_dump($plz); die("Error creating PLZ\n"); } } if(is_numeric($rollout_time)) { $rollout = $rollout_time; $rollout_info = null; $freigabe = $freigabe_default; } elseif($rollout_time == "2024/2025") { $rollout = null; $rollout_info = "Bauprogramm 2024/2025"; $freigabe = json_encode(['reorder']); } else { $rollout = null; $rollout_info = $rollout_time; $freigabe = json_encode([]); } //$hausnummer = ADBHausnummerModel::getFirst(['gemeind_id' => $gemeinde->id, 'strasse_id' => $strasse->id, 'hausnummer' => $hausnummer_string]); $hausnummer = ADBHausnummerModel::getFirst(['adrcd' => $adrcd]); if(!$hausnummer) { $hausnummer_data = [ 'adrcd' => $adrcd, 'netzgebiet_id' => $netzgebiet->id, 'extref' => $adrcd, 'ortschaft_id' => $ortschaft->id, 'plz_id' => $plz->id, 'strasse_id' => $strasse->id, 'hausnummer' => $hausnummer_string, 'rollout' => $rollout, 'rollout_info' => $rollout_info, 'freigabe' => $freigabe ]; $hausnummer = ADBHausnummerModel::create($hausnummer_data); if(!$hausnummer->save()) { var_dump($hausnummer_data); die("Konnte Hausnummer nicht anlegen\n"); } $c++; } else { $hausnummer->netzgebiet_id = $netzgebiet->id; $hausnummer->extref = $adrcd; $hausnummer->rollout = $rollout; $hausnummer->rollout_info = $rollout_info; $hausnummer->freigabe = $freigabe; if(!$hausnummer->save()) { var_dump($hausnummer); die("Konnte Hausnummer nicht speichern\n"); } $u++; } } echo "$i lines processed, $c created, $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()); } return true; }