Finished St Stefan ob Stainz Import
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-6 <?=(MFAPPNAME == "devthetool") ? "text-danger" : ""?>">
|
||||
<span title="<?=MFAPPNAME?>">the tool © <?=date('Y')?></span> <a href="https://www.xinon.at">Xinon GmbH</a> - Made by fronk
|
||||
<span title="<?=MFAPPNAME?>">the tool © <?=date('Y')?></span> <a href="https://www.xinon.at">Xinon GmbH</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -118,7 +118,7 @@ class ADBNetzgebietModel {
|
||||
if(array_key_exists("netzgebiet_id", $filter)) {
|
||||
$netzgebiet_id = $filter['netzgebiet_id'];
|
||||
if(is_numeric($netzgebiet_id)) {
|
||||
$where .= " AND Netzgebiet.netzgebiet_id=$netzgebiet_id";
|
||||
$where .= " AND Netzgebiet.id=$netzgebiet_id";
|
||||
} elseif(is_array($netzgebiet_id) && count($netzgebiet_id)) {
|
||||
$where .= " AND Netzgebiet.id IN (". implode(",", $netzgebiet_id).")";
|
||||
}
|
||||
|
||||
@@ -127,9 +127,18 @@ class NetworkModel {
|
||||
if(array_key_exists("adb_network_id", $filter)) {
|
||||
$adb_network_id = $filter['adb_network_id'];
|
||||
if(is_numeric($adb_network_id)) {
|
||||
$where .= " AND adb_network_id=$adb_network_id";
|
||||
$where .= " AND adb_netzgebiet_id=$adb_network_id";
|
||||
} elseif(is_array($adb_network_id) && count($adb_network_id)) {
|
||||
$where .= " AND adb_network_id IN (". implode(",", $adb_network_id).")";
|
||||
$where .= " AND adb_netzgebiet_id IN (". implode(",", $adb_network_id).")";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("adb_netzgebiet_id", $filter)) {
|
||||
$adb_netzgebiet_id = $filter['adb_netzgebiet_id'];
|
||||
if(is_numeric($adb_netzgebiet_id)) {
|
||||
$where .= " AND adb_netzgebiet_id=$adb_netzgebiet_id";
|
||||
} elseif(is_array($adb_netzgebiet_id) && count($adb_netzgebiet_id)) {
|
||||
$where .= " AND adb_netzgebiet_id IN (". implode(",", $adb_netzgebiet_id).")";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -85,9 +85,9 @@ class Preordercampaign extends mfBaseModel {
|
||||
|
||||
$netzgebiet_ids = null;
|
||||
foreach($this->getProperty("salesclusters") as $scluster) {
|
||||
$netzgebiet_ids[] = $scluster->id;
|
||||
if($scluster->id) $netzgebiet_ids[] = $scluster->id;
|
||||
}
|
||||
if(count($netzgebiet_ids)) {
|
||||
if(is_array($netzgebiet_ids) && count($netzgebiet_ids)) {
|
||||
foreach(ADBNetzgebietModel::search(["netzgebiet_id" => $netzgebiet_ids]) as $netzgebiet) {
|
||||
$total += $netzgebiet->unit_count;
|
||||
}
|
||||
|
||||
@@ -251,32 +251,34 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
];
|
||||
$hausnummer = ADBHausnummerModel::create($hausnummer_data);
|
||||
//var_dump($hausnummer);exit;
|
||||
//$hausnummer->save();
|
||||
$hausnummer->save();
|
||||
continue;
|
||||
}
|
||||
|
||||
} else {
|
||||
//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();
|
||||
}
|
||||
|
||||
//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";
|
||||
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
|
||||
//require 'vendor/autoload.php';
|
||||
require("../../../config/config.php");
|
||||
|
||||
define('FRONKDB_SQLDEBUG',false);
|
||||
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
|
||||
|
||||
require_once(LIBDIR."/mvcfronk/mfRouter/mfRouter.php");
|
||||
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseModel.php");
|
||||
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseController.php");
|
||||
|
||||
$me = new User(1);
|
||||
|
||||
$filename = __DIR__."/import/C03080_sbidi_Ortskern_Homes_221025.csv";
|
||||
|
||||
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
$log = mfLoghandler::singleton();
|
||||
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$hausnummer_extref_trans = [
|
||||
"25138081" => "25138353",
|
||||
"25138090" => "25138402",
|
||||
"25138104" => "25138399",
|
||||
"25138112" => "25138285",
|
||||
"25138116" => "25138401",
|
||||
"25138172" => "25138384",
|
||||
"25138229" => "25138283",
|
||||
"25138246" => "25138346",
|
||||
"25138249" => "25151924",
|
||||
"25138261" => "25138413",
|
||||
"25138282" => "25138388",
|
||||
"25138284" => "25138391",
|
||||
"25151923" => "25151924",
|
||||
"25138547" => "25138605",
|
||||
"25138576" => "25138603",
|
||||
"25138578" => "25138599",
|
||||
"25138427" => "25138493",
|
||||
"25138431" => "25138494",
|
||||
"25138480" => "25138532",
|
||||
"25138507" => "25138479"
|
||||
];
|
||||
|
||||
$wohnextref_zusatz = [
|
||||
"SDIHome_92719443457_1666705401" => "Pfarrheim",
|
||||
"SDIHome_92718863105_1666705401" => "Ölmühle",
|
||||
"SDIHome_92718862081_1666705401" => "Ölmühle",
|
||||
"SDIHome_92718073089_1666705401" => "Hinterhofgebäude",
|
||||
"SDIHome_92718072065_1666705401" => "Hinterhofgebäude",
|
||||
"SDIHome_92718071041_1666705401" => "Hinterhofgebäude",
|
||||
"SDIHome_92718077185_1666705401" => "Lagerhalle und Werkstatt",
|
||||
"SDIHome_92718076161_1666705401" => "Lagerhalle und Werkstatt",
|
||||
"SDIHome_92719454721_1666705401" => "Zubau Musikheim",
|
||||
"SDIHome_92719358977_1666705401" => "Firma",
|
||||
"SDIHome_92719222273_1666705401" => "Wohnhaus",
|
||||
"SDIHome_92719249921_1666705401" => "Wohnung",
|
||||
"SDIBuilding_104216715265_1659686456" => "a",
|
||||
"SDIHome_92719070465_1666705401" => "Nebengebäude"
|
||||
];
|
||||
|
||||
$i = 0;
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
if($i == 1) continue;
|
||||
|
||||
if(!trim($csv[0])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$zusatz = false;
|
||||
$wohneinheit_extref = trim($csv[0]);
|
||||
$hausnummer_extref = trim($csv[1]);
|
||||
$adresse = trim($csv[7]);
|
||||
|
||||
if(array_key_exists($hausnummer_extref, $hausnummer_extref_trans)) {
|
||||
$hausnummer_extref = $hausnummer_extref_trans[$hausnummer_extref];
|
||||
}
|
||||
|
||||
$hausnummer = ADBHausnummerModel::getFirst(['extref' => $hausnummer_extref]);
|
||||
if(!$hausnummer) {
|
||||
if(preg_match('/GST /', $adresse)) continue;
|
||||
die("Hausnummer $hausnummer_extref nicht gefunden\n");
|
||||
}
|
||||
|
||||
|
||||
if(array_key_exists($wohneinheit_extref, $wohnextref_zusatz)) {
|
||||
$zusatz = $wohnextref_zusatz[$wohneinheit_extref];
|
||||
}
|
||||
|
||||
// get last wohneinheit
|
||||
$num = 0;
|
||||
$last_we = getLastWohneinheit($hausnummer->id);
|
||||
if($last_we) {
|
||||
$num = ($last_we->num) ? $last_we->num : 0;
|
||||
}
|
||||
|
||||
$num++;
|
||||
|
||||
$wohneinheit_data = [
|
||||
'extref' => $wohneinheit_extref,
|
||||
'hausnummer_id' => $hausnummer->id,
|
||||
'num' => $num,
|
||||
'zusatz' => ($zusatz) ? $zusatz : null
|
||||
];
|
||||
|
||||
$wohneinheit = ADBWohneinheitModel::create($wohneinheit_data);
|
||||
//continue;
|
||||
//var_dump($wohneinheit);exit;
|
||||
$wohneinheit->save();
|
||||
|
||||
}
|
||||
|
||||
function getLastWohneinheit($hausnummer_id) {
|
||||
global $db;
|
||||
$sql = "SELECT * FROM Wohneinheit WHERE hausnummer_id = $hausnummer_id ORDER BY num DESC LIMIT 1";
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
return new ADBWohneinheit($db->fetch_object($res));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -14,11 +14,14 @@ require_once(LIBDIR."/mvcfronk/mfBase/mfBaseController.php");
|
||||
$partner_id = 209;
|
||||
$netzgebiet_id = 32;
|
||||
$connectionTypes = [
|
||||
"Einfamilienhaus" => "single-dwelling",
|
||||
"Einfahmilienhaus" => "single-dwelling",
|
||||
"Mehrfamilienhaus" => "multi-dwelling",
|
||||
"Mehrparteienhaus" => "apartment-building",
|
||||
"Wohneinheit in Mehrparteienhaus" => "apartment",
|
||||
"Wohnung" => "apartment",
|
||||
"Geschäft" => "business",
|
||||
"Gewerbebetrieb" => "business",
|
||||
];
|
||||
$preorderTypes = [
|
||||
"Interessensbekundung" => "interest",
|
||||
@@ -87,6 +90,7 @@ while($csv = fgetcsv($input, 0)) {
|
||||
$tuer = $m[1];
|
||||
}
|
||||
|
||||
if(!$connection_count) $connection_count = 1;
|
||||
|
||||
if(!$bestelltyp || !$anschlusstyp || !$strasse_name || !$hausnummer_name || !$plz_name || !$ort_name || !$connection_count || (!$kunde_nachname && !$kunde_vorname && !$kunde_firma) || (!$kunde_phone && !$kunde_email)) {
|
||||
echo "incomplete row $l\n";
|
||||
@@ -109,11 +113,35 @@ while($csv = fgetcsv($input, 0)) {
|
||||
|
||||
// fehler
|
||||
if($strasse_name == "Dr. Friedrichweg") $strasse_name = "Dr. Friedrich Weg";
|
||||
if($strasse_name == "Dir Triebel-Weg") ($strasse_name = "Dir. Triebel-Weg");
|
||||
if($strasse_name == "Dir. Triebel Weg") $strasse_name = "Dir. Triebel-Weg";
|
||||
if($strasse_name == "Dir Triebel-Weg") $strasse_name = "Dir. Triebel-Weg";
|
||||
if($strasse_name == "Dir. Triebl-Weg") $strasse_name = "Dir. Triebel-Weg";
|
||||
if($strasse_name == "Radlpasstraße") $strasse_name = "Radlpaßstraße";
|
||||
if($strasse_name == "St. Stefan") $strasse_name = "St. Stefan ob Stainz";
|
||||
|
||||
if($strasse_name == "Pirkhof" && $hausnummer_name == "81 + 81a") {
|
||||
$hausnummer_name = "81";
|
||||
}
|
||||
if($strasse_name == "St. Stefan ob Stainz" && $hausnummer_name == "15 R/C") {
|
||||
$hausnummer_name = "15";
|
||||
$unit_string = "R/C";
|
||||
}
|
||||
if($strasse_name == "St. Stefan ob Stainz" && $hausnummer_name == "19/SR2") {
|
||||
$hausnummer_name = "19";
|
||||
$unit_string = "SR2";
|
||||
}
|
||||
if($strasse_name == "Rumpfweg" && $unit_string == "Tür 1, 3 u. 4") {
|
||||
$connection_count = 3;
|
||||
}
|
||||
|
||||
if(($strasse_name." ".$hausnummer_name == "St. Stefan ob Stainz 15")
|
||||
|| ($strasse_name." ".$hausnummer_name == "Rumpfweg 2")
|
||||
|| ($strasse_name." ".$hausnummer_name == "Sommerweg 5")
|
||||
|| ($strasse_name." ".$hausnummer_name == "Sommerweg 4")
|
||||
) {
|
||||
echo "Ignoring $strasse_name $hausnummer_name\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
$strasse_name = $db->escape($strasse_name);
|
||||
$hausnummer_name = $db->escape($hausnummer_name);
|
||||
@@ -150,11 +178,10 @@ while($csv = fgetcsv($input, 0)) {
|
||||
$res = $adb->query($sql);
|
||||
|
||||
if(!$adb->num_rows($res)) {
|
||||
if(preg_match('/^(schilcherland.+|Neuberg|Kastaniensiedlung|rosenhof|am kluggrund)$/i', $strasse_name)) continue;
|
||||
echo "Adresse '$strasse_name $hausnummer_name' nicht gefunden!\n";
|
||||
if(preg_match('/^(schilcherland.+|Neuberg|Kastaniensiedlung|rosenhof|am kluggrund|Reicherfeldweg)$/i', $strasse_name)) continue;
|
||||
//echo "Adresse '$strasse_name $hausnummer_name' nicht gefunden!\n";
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
|
||||
$data = $adb->fetch_object($res);
|
||||
|
||||
@@ -166,7 +193,7 @@ while($csv = fgetcsv($input, 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$network = NetworkModel::getFirst(["adb_netzgebiet_id" => $netzgebiet_id]);
|
||||
$network = NetworkModel::getFirst(["adb_network_id" => $netzgebiet_id]);
|
||||
if(!$network) {
|
||||
echo "thetool Netzgebiet nicht gefunden (adb netzgebiet id $netzgebiet_id)\n";
|
||||
continue;
|
||||
@@ -189,12 +216,13 @@ while($csv = fgetcsv($input, 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$product_search = ['external_id' => $partner_id,
|
||||
'attributename' => "presales",
|
||||
'attributevalue' => ($preorderTypes[$bestelltyp] == "order") ? "activation" : $preorderTypes[$bestelltyp]
|
||||
];
|
||||
$product = ProductModel::getFirst($product_search);
|
||||
|
||||
|
||||
if(!$product) {
|
||||
echo "Kein product gefunden: $bestelltyp\n";
|
||||
continue;
|
||||
@@ -244,15 +272,13 @@ while($csv = fgetcsv($input, 0)) {
|
||||
|
||||
|
||||
if($connection_count == 1) {
|
||||
|
||||
if($unit_count === 1) {
|
||||
continue;
|
||||
$unit = $wohneinheiten[0];
|
||||
|
||||
// check if wohneinheit in existing preorder
|
||||
|
||||
|
||||
|
||||
if(PreorderModel::getFirst(["adb_wohneinheit_id" => $unit->id])) {
|
||||
//echo "1 Wohneinheit schon vergeben $strasse_name $hausnummer_name (unit id ".$unit->id."\n";
|
||||
echo "1 Wohneinheit schon vergeben $strasse_name $hausnummer_name (unit id ".$unit->id."\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -339,8 +365,6 @@ while($csv = fgetcsv($input, 0)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} elseif($connection_count > 1) {
|
||||
if($unit_count < $connection_count) {
|
||||
/*$mu = [];
|
||||
@@ -350,7 +374,7 @@ while($csv = fgetcsv($input, 0)) {
|
||||
echo "$strasse_name $hausnummer_name: Nicht genug Wohneinheiten ".count($wohneinheiten)." - need ".$connection_count."\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
//continue;
|
||||
$available_units = [];
|
||||
|
||||
|
||||
@@ -361,7 +385,7 @@ while($csv = fgetcsv($input, 0)) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($connection_count > count($available_units)) {
|
||||
// this usually means this order was created already
|
||||
/*$md = [];
|
||||
@@ -376,11 +400,48 @@ while($csv = fgetcsv($input, 0)) {
|
||||
continue;
|
||||
}
|
||||
//continue;
|
||||
|
||||
$topnumbers = [];
|
||||
if(preg_match('/(?:tür|top)\s+\d/i', $unit_string)) {
|
||||
$topnumbers_string = preg_replace('/(tür|top)/i', "", $unit_string);
|
||||
$topnumbers_string = preg_replace('/\s*u\.?/i', ",", $topnumbers_string);
|
||||
|
||||
foreach(explode(",", $topnumbers_string) as $topnumraw) {
|
||||
$topnumbers[] = intval($topnumraw);
|
||||
}
|
||||
|
||||
if(count($topnumbers) < $connection_count) {
|
||||
echo "$strasse_name $hausnummer_name: Nicht genug Topnummern für $connection_count Anschlüsse\n";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//continue;
|
||||
|
||||
// create new Preorders with available units
|
||||
// then set original Preorder deleted
|
||||
echo "Creating $connection_count new preorders\n";
|
||||
for($i = 0; $i < $connection_count; $i++) {
|
||||
$unit = $available_units[$i];
|
||||
$unit_top_number = false;
|
||||
if(count($topnumbers)) {
|
||||
//echo "$strasse_name $hausnummer_name: Looking for Unit Top $topnumbers[$i]\n";
|
||||
|
||||
foreach($available_units as $topnumUnit) {
|
||||
if($topnumUnit->tuer == $topnumbers[$i]) {
|
||||
$unit = $topnumUnit;
|
||||
}
|
||||
}
|
||||
if(!$unit) {
|
||||
echo "$strasse_name $hausnummer_name: Unit mit Topnummer ".$topnumbers[$i]." nicht gefunden.\n";
|
||||
continue;
|
||||
}
|
||||
//var_dump($unit);
|
||||
$unit_top_number = $topnumbers[$i];
|
||||
} else {
|
||||
$unit = $available_units[$i];
|
||||
}
|
||||
//continue;
|
||||
|
||||
|
||||
if(PreorderModel::getFirst(["adb_wohneinheit_id" => $unit->id])) {
|
||||
//echo "3 Wohneinheit schon vergeben $strasse_name $hausnummer_name (unit id ".$unit->id."\n";
|
||||
|
||||
Reference in New Issue
Block a user