#!/usr/bin/php $gem_kz]); if(!$gemeinde) { echo "Gemeinde $gem_name $gem_kz nicht gefunden\n"; continue; } $gemeinde_id = $gemeinde->id; //if($nutzung == "Greenfield") continue; //continue; // find address in AddressDB and update extrefs $strasse_name = $db->escape($strasse_name); $hausnummer_name = $db->escape($hausnummer_name); if($adrcd) { // get Hausnummer to update $hausnummer = ADBHausnummerModel::getFirst(['adrcd' => $adrcd]); /*if(!$hausnummer) { echo "Hausnummer adrcd $adrcd not found\n"; }*/ } if(!$hausnummer) { // search Hausnummer $strasse_search = [$strasse_name]; if(strpos($strasse_name, ' ') !== false) $strasse_search[] = str_replace(' ', '-', $strasse_name); if(strpos($strasse_name, '-') !== false) $strasse_search[] = str_replace('-', ' ', $strasse_name); if(strpos($strasse_name, '.') !== false) $strasse_search[] = str_replace('.', '. ', $strasse_name); if(strpos($strasse_name, '.') !== false) $strasse_search[] = str_replace('.', '.-', $strasse_name); if(strpos($strasse_name, '. ') !== false) $strasse_search[] = str_replace('. ', '.', $strasse_name); if(strpos($strasse_name, '. ') !== false) $strasse_search[] = str_replace('. ', '.-', $strasse_name); if(strpos($strasse_name, '.') !== false) $strasse_search[] = str_replace('.-', '.', $strasse_name); if(strpos($strasse_name, '.') !== false) $strasse_search[] = str_replace('.-', '. ', $strasse_name); foreach($strasse_search as $search) { if(strpos($search, 'ß') !== false) $strasse_search[] = str_replace('ß', 'ss', $search); if(strpos($search, 'ä') !== false) $strasse_search[] = str_replace('ä', 'ae', $search); if(strpos($search, 'ö') !== false) $strasse_search[] = str_replace('ö', 'oe', $search); if(strpos($search, 'ü') !== false) $strasse_search[] = str_replace('ü', 'ue', $search); if(strpos($search, 'ss') !== false) $strasse_search[] = str_replace('ss', 'ß', $search); if(strpos($search, 'ae') !== false) $strasse_search[] = str_replace('ae', 'ä', $search); if(strpos($search, 'oe') !== false) $strasse_search[] = str_replace('oe', 'ö', $search); if(strpos($search, 'ue') !== false) $strasse_search[] = str_replace('ue', 'ü', $search); } $sql = "SELECT * FROM view_hausnummer WHERE gemeinde_id = $gemeinde_id AND strasse IN ('". implode("', '", $strasse_search)."') AND hausnummer='$hausnummer_name'"; //echo "$sql\n"; /*if(preg_match('/^Tobelbader/i',$strasse_name)) { echo "$sql\n"; }*/ $res = $db->query($sql); if($db->num_rows($res)) { // get Hausnummer to update //echo "Hausnummer per Suche gefunden\n"; $data = $db->fetch_object($res); $hausnummer = new ADBHausnummer($data->hausnummer_id); } else { // hausnummer anlegen //echo "hausnummer anlegen\n"; $strasse = ADBStrasseModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $strasse_name]); if(!$strasse) die("Strasse $strasse_name (hausnummer: $hausnummer_name) (gemeinde_id $gemeinde_id; gem_kz $gem_kz) [$strasse_hausnummer] nicht gefunden\n"); $plz = ADBPlzModel::getFirst(["gemeinde_id" => $gemeinde_id, "plz" => $plz_name]); if(!$plz) die("PLZ $plz_name nicht gefunden\n"); $ortschaft = ADBOrtschaftModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $ort_name]); if(!$ortschaft) die("ortschaft $ort_name nicht gefunden\n"); $hausnummer_data = [ "netzgebiet_id" => $netzgebiet->id, "adrcd" => ($adrcd) ? $adrcd : null, "extref" => $hausnummer_extref, "ortschaft_id" => $ortschaft->id, "plz_id" => $plz->id, "strasse_id" => $strasse->id, "hausnummer" => $hausnummer_name, "zusatz" => ($addresszusatz) ? $addresszusatz : null, "gps_lat" => $lat, "gps_long" => $long, "unit_count" => ($unit_count) ? $unit_count : 1, "freigabe" => $default_freigabe, ]; $hausnummer = ADBHausnummerModel::create($hausnummer_data); //var_dump($hausnummer);exit; $hausnummer->save(); continue; } } //echo "Hausnummer extref: \033[1m$hausnummer_extref\033[0m | gem: \033[1m$gem_name\033[0m | plz: \033[1m$plz_name\033[0m | ort: \033[1m$ort_name\033[0m | strasse: \033[1m$strasse_name\033[0m | hausnummer: \033[1m$hausnummer_name\033[0m |"; //echo "Zusatz: \033[1m$addresszusatz\033[0m | (\033[1m$nutzung\033[0m) | ADRCD: \033[1m$adrcd\033[0m\n"; //var_dump($hausnummer);exit; //continue; if($hausnummer->netzgebiet_id != $netzgebiet->id) { $hausnummer->netzgebiet_id = $netzgebiet->id; //$hausnummer->save(); } if($hausnummer->extref != $hausnummer_extref) { $hausnummer->extref = $hausnummer_extref; //$hausnummer->save(); } if($lat && $long) { $hausnummer->gps_lat = (float)$lat; $hausnummer->gps_long = (float)$long; } $hausnummer->freigabe = $default_freigabe; $hausnummer->save(); $existing_units_count = ADBWohneinheitModel::count(["hausnummer_id" => $hausnummer->id]); //echo "$existing_units_count\n"; if(!$existing_units_count) { $hausnummer->unit_count = $unit_count; // create units for($u = 0; $u < $unit_count; $u++) { $num = $u + 1; $wohneinheit_data = [ 'hausnummer_id' => $hausnummer->id, 'num' => $num, 'tuer' => ($unit_count > 1) ? $num : null ]; $wohneinheit = ADBWohneinheitModel::create($wohneinheit_data); //continue; $wohneinheit->save(); } } }