db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); $this->log = mfLoghandler::singleton(); } public function isValid($input) { if(strlen($input) < 1024 && strpos($input, "\n") === false) { $this->input = $input; return true; } return false; } public function import() { echo "importing...\n";exit; $input = $this->input; if(!$input) { return false; } if(is_string($input)) { if(!file_exists($input)) { return false; } $file = fopen($input, "r"); if(!$file) { return false; } $input = $file; } if(!is_resource($input)) { return false; } $gem_kz = ""; $gem_name = ""; $ort_kz = ""; $plz_name = ""; $ort_name = ""; $strasse_building = ""; $strasse = ""; $hausnummer_name = ""; $i = 0; while($csv = fgetcsv($input, 0, ";")) { $i++; if($i == 1) continue; //var_dump($csv); if(trim($csv[0])) { $gem_kz = trim($csv[0]); $gem_name = trim($csv[1]); $ort_kz = trim($csv[2]); $plz_name = trim($csv[3]); $ort_name = trim($csv[4]); $strasse_building = trim($csv[5]); $strasse_name = trim($csv[6]); //echo "strasse: $strasse\n"; //echo "strasse_building: $strasse_building\n"; $hausnummer_name = preg_replace('/^'.$strasse_name.'\s+/', "", $strasse_building); //echo "$strasse_name $hausnummer_name\n"; } $strasse_we = trim($csv[7]); $nutzung = trim($csv[8]); $we_num = trim($csv[11]); if(!$strasse_we) { echo "Adresse Wohneinheit fehlt.\n"; continue; } //echo "strasse_we: $strasse_we\n"; if($strasse_building == $strasse_we) { $addresszusatz = ""; } else { $addresszusatz = preg_replace('/^'.$strasse_building.'\s+/', "", $strasse_we); } $hausnummer_zusatz = ADBWohneinheit::parseHausnummerZusatz($addresszusatz); //var_dump($hausnummer_zusatz); echo "$gem_name $plz_name $ort_name $strasse_name $hausnummer_name "; foreach($hausnummer_zusatz as $key => $value) { if($value) { if($key == "zusatz") { echo $value; continue; } echo ucfirst($key)." ".$value; } } echo " ($nutzung)\n"; $gemeinde = ADBGemeindeModel::getFirst(['kennziffer' => $gem_kz]); if(!$gemeinde) { $gemeinde = new ADBGemeinde(); $gemeinde->kennziffer = $gem_kz; $gemeinde->code = $gem_kz; $gemeinde->name = $gem_name; $gemeinde_id = $gemeinde->save(); if(!$gemeinde_id) { } } $ort = ADBOrtschaftModel::getFirst(['kennziffer' => $ort_kz]); if(!$ort) { $ort = new ADBOrtschaft(); $ort->gemeinde_id = $gemeinde->id; $ort->kennziffer = $ort_kz; $ort->name = $ort_name; $ort->plz = $plz_name; $ort_id = $ort->save(); if(!$ort_id) { die("Error creating Ortschaft $ort_kz $ort_name!\n"); } } $plz = ADBPlzModel::getFirst(['plz' => $plz_name]); if(!$plz) { $plz = new ADBPlz(); $plz->plz = $plz_name; $plz->plzstring = $plz_name; $plz_id = $plz->save(); if(!$plz) { die("Error creating Plz $plz_name!\n"); } } //var_dump($plz);exit; $strasse = ADBStrasseModel::getFirst(['gemeinde_id' => $gemeinde->id, 'ortschaft_id' => $ort->id, 'name' => $strasse_name]); if(!$strasse) { $strasse = new ADBStrasse(); $strasse->ortschaft_id = $ort->id; $strasse->gemeinde_id = $gemeinde->id; $strasse->name = $strasse_name; $strasse_id = $strasse->save(); if(!$strasse_id) { die("error creating Strasse $strasse_name (gemeinde ".$gemeinde->id.", ort ".$ort->id.")"); } } //var_dump($strasse);exit; $hausnummer = ADBHausnummerModel::getFirst(['strasse_id' => $strasse->id, 'hausnummer' => $hausnummer_name]); if(!$hausnummer) { $hausnummer = new ADBHausnummer(); $hausnummer->plz_id = $plz->id; $hausnummer->strasse_id = $strasse->id; $hausnummer->hausnummer = $hausnummer_name; $hausnummer_id = $hausnummer->save(); if(!$hausnummer_id) { die("error creating Hausnummer $strasse_name $hausnummer_name"); } } //var_dump($hausnummer);exit; $we_search = [ 'hausnummer_id' => $hausnummer->id, 'num' => $we_num, 'block' => $hausnummer_zusatz['block'], 'stiege' => $hausnummer_zusatz['stiege'], 'stock' => $hausnummer_zusatz['stock'], 'tuer' => $hausnummer_zusatz['tuer'], 'zusatz' => $hausnummer_zusatz['zusatz'], 'nutzung' => $nutzung ]; /*if($hausnummer_name == "12a") { var_dump($we_search);exit; }*/ $wohneinheit = ADBWohneinheitModel::getFirst($we_search); if(!$wohneinheit) { $wohneinheit = new ADBWohneinheit(); $wohneinheit->hausnummer_id = $hausnummer->id; $wohneinheit->num = $we_num; $wohneinheit->block = ($hausnummer_zusatz['block']) ? $hausnummer_zusatz['block'] : null; $wohneinheit->stiege = ($hausnummer_zusatz['stiege']) ? $hausnummer_zusatz['stiege'] : null; $wohneinheit->stock = ($hausnummer_zusatz['stock']) ? $hausnummer_zusatz['stock'] : null; $wohneinheit->tuer = ($hausnummer_zusatz['tuer']) ? $hausnummer_zusatz['tuer'] : null; $wohneinheit->zusatz = ($hausnummer_zusatz['zusatz']) ? $hausnummer_zusatz['zusatz'] : null; $wohneinheit->nutzung = $nutzung; $wohneinheit_id = $wohneinheit->save(); if(!$wohneinheit_id) { die("error creating Wohneinheit $strasse_name $hausnummer_name ".implode(", ", $hausnummer_zusatz)); } } else { echo "XXXX wohneinheit gibts schon: $strasse_name $hausnummer_name ".implode(", ", $hausnummer_zusatz)."\n\n"; } /*if($i > 10) { exit; }*/ } return true; } }