Changes for ADBOrtschaft in preorder api
This commit is contained in:
@@ -22,8 +22,6 @@ $folder = BASEDIR."/scripts/addressdb/import/bev";
|
||||
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
$log = mfLoghandler::singleton();
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
|
||||
/*
|
||||
* Import Gemeinden
|
||||
*/
|
||||
@@ -31,6 +29,7 @@ $db->query("SET autocommit=0");
|
||||
$filename = "$folder/GEMEINDE.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
$i = 0;
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
@@ -59,7 +58,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db->query("COMMIT");
|
||||
echo ($i-1)." Gemeinden importiert\n";
|
||||
|
||||
/*
|
||||
@@ -69,6 +68,7 @@ echo ($i-1)." Gemeinden importiert\n";
|
||||
$filename = "$folder/ORTSCHAFT.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
$i = 0;
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
@@ -101,7 +101,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db->query("COMMIT");
|
||||
echo ($i-1)." Ortschaften importiert\n";
|
||||
|
||||
/*
|
||||
@@ -111,6 +111,7 @@ echo ($i-1)." Ortschaften importiert\n";
|
||||
$filename = "$folder/STRASSE.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
$i = 0;
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
@@ -226,13 +227,15 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db->query("COMMIT");
|
||||
echo "\n".($i-1)." Straßen importiert\n";
|
||||
|
||||
|
||||
$filename = "$folder/ADRESSE.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
|
||||
$current_skz = false;
|
||||
$current_gkz = false;
|
||||
$sdata = [];
|
||||
@@ -260,7 +263,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
$okz = trim($csv[2]);
|
||||
$plz_string = trim($csv[3]);
|
||||
$skz = trim($csv[4]);
|
||||
|
||||
|
||||
$hnz1 = trim($csv[7]);
|
||||
$hnb1 = trim($csv[8]);
|
||||
$hnv = trim($csv[9]);
|
||||
@@ -282,18 +285,16 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
"skz" => $skz,
|
||||
"hausnummer" => $hausnummer_string
|
||||
];
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if($current_skz) {
|
||||
//var_dump($sdata);exit;
|
||||
$gemeinde = getGemeinde($current_gkz);
|
||||
if(!$gemeinde) {
|
||||
die("Kann Adresse nicht importieren: Gemeinde nicht gefunden ($gkz)\n");
|
||||
}
|
||||
|
||||
|
||||
$strasse = getStrasse($current_skz);
|
||||
if(!$strasse) {
|
||||
die("Kann Adresse nicht importieren: Strasse nicht gefunden ($okz)\n");
|
||||
@@ -301,11 +302,10 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
|
||||
// do database work for all sdata
|
||||
$hausnummern_filter = [];
|
||||
|
||||
|
||||
foreach($sdata as $s) {
|
||||
$plz = getPlz($s["plz"], $gemeinde->id);
|
||||
if(!$plz) {
|
||||
//echo "Creating PLZ ".$s["plz"]."\n";
|
||||
$plz = ADBPlzModel::create([
|
||||
"gemeinde_id" => $gemeinde->id,
|
||||
"plz" => $s["plz"],
|
||||
@@ -325,8 +325,11 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
|
||||
foreach($sdata as $shausnummer => $s) {
|
||||
$found = false;
|
||||
$ort = getOrtschaft($s['okz']);
|
||||
if(!$ort->id) die("Ortschaft nicht gefunden ".$s['okz']);
|
||||
|
||||
foreach($hausnummern as $h) {
|
||||
if($h->hausnummer == $shausnummer) {
|
||||
if($h->hausnummer == $shausnummer && $h->ortschaft_id = $ort->id) {
|
||||
//exists already
|
||||
$found = true;
|
||||
|
||||
@@ -344,6 +347,9 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
$new_hausnummern[$shausnummer] = $s;
|
||||
}
|
||||
}
|
||||
$new_hausnummern = $sdata;
|
||||
|
||||
|
||||
|
||||
if(count($new_hausnummern)) {
|
||||
$insert = "INSERT INTO `Hausnummer` (`netzgebiet_id`, `adrcd`, `ortschaft_id`, `plz_id`, `strasse_id`, `hausnummer`, `create`, `edit`) VALUES ";
|
||||
@@ -351,7 +357,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
//var_dump($h_string, $s);exit;
|
||||
//$h_string = $h->hausnummer;
|
||||
//$s = $sdata[$h_string];
|
||||
$adrcd = $s["adrcd"];
|
||||
$acode = $s["adrcd"];
|
||||
$strasse_id = $strasse->id;
|
||||
$plz = getPlz($s['plz'],$gemeinde->id);
|
||||
if(!$plz) {
|
||||
@@ -364,7 +370,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
$ortschaft_id = $ortschaft->id;
|
||||
// add to INSERT statement
|
||||
$insert .= "(0, '$adrcd', $ortschaft_id, $plz_id, $strasse_id,'$h_string', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),";
|
||||
$insert .= "(0, '$acode', $ortschaft_id, $plz_id, $strasse_id,'$h_string', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),";
|
||||
|
||||
}
|
||||
$insert = preg_replace('/,$/', "", $insert);
|
||||
@@ -373,44 +379,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$hausnummer = ADBHausnummerModel::getFirst([
|
||||
'ortschaft_id' => $ortschaft->id,
|
||||
//'plz_id' => $plz->id,
|
||||
'strasse_id' => $strasse->id,
|
||||
'hausnummer' => $hausnummer_string
|
||||
]);
|
||||
|
||||
if($hausnummer) {
|
||||
// update plz if necessary
|
||||
//var_dump($hausnummer->plz);exit;
|
||||
if($hausnummer->plz->plz != $plz->plz ) {
|
||||
echo "Updating PLZ from ".$hausnummer->plz->plz." to ".$plz->plz."\n";
|
||||
$hausnummer->plz_id = $plz->id;
|
||||
$hausnummer->save();
|
||||
}
|
||||
|
||||
} else {
|
||||
// create new Hausnummer
|
||||
$hausnummer = ADBHausnummerModel::create([
|
||||
"netzgebiet_id" => 0,
|
||||
"ortschaft_id" => $ortschaft->id,
|
||||
"plz_id" => $plz->id,
|
||||
"strasse_id" => $strasse->id,
|
||||
"hausnummer" => $hausnummer_string
|
||||
]);
|
||||
if(!$hausnummer->save()) {
|
||||
die("Error creating Hausnummer: ".print_r($hausnummer, true));
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
$current_skz = $skz;
|
||||
@@ -502,14 +471,14 @@ function getStrasse($kz) {
|
||||
function getPlz($plz_search, $gemeinde_id) {
|
||||
global $plz_cache;
|
||||
|
||||
if(array_key_exists("$plz_search.$gemeinde_id", $plz_cache)) {
|
||||
return $plz_cache["$plz_search.$gemeinde_id"];
|
||||
if(array_key_exists("$plz_search-$gemeinde_id", $plz_cache)) {
|
||||
return $plz_cache["$plz_search-$gemeinde_id"];
|
||||
}
|
||||
|
||||
$plz = ADBPlzModel::getFirst(['plz' => $plz_search, "gemeinde_id" => $gemeinde_id]);
|
||||
if(!$plz) {
|
||||
return false;
|
||||
}
|
||||
$plz_cache[$plz_search] = $plz;
|
||||
$plz_cache["$plz_search-$gemeinde_id"] = $plz;
|
||||
return $plz;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user