diff --git a/Layout/default/footer.php b/Layout/default/footer.php
index 8727d9f2c..98957be73 100644
--- a/Layout/default/footer.php
+++ b/Layout/default/footer.php
@@ -7,7 +7,7 @@
diff --git a/application/ADBNetzgebiet/ADBNetzgebietModel.php b/application/ADBNetzgebiet/ADBNetzgebietModel.php
index 2772727a9..f00a9935b 100644
--- a/application/ADBNetzgebiet/ADBNetzgebietModel.php
+++ b/application/ADBNetzgebiet/ADBNetzgebietModel.php
@@ -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).")";
}
diff --git a/application/Network/NetworkModel.php b/application/Network/NetworkModel.php
index 9388a0fcc..52931ca89 100644
--- a/application/Network/NetworkModel.php
+++ b/application/Network/NetworkModel.php
@@ -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).")";
}
}
diff --git a/application/Preordercampaign/Preordercampaign.php b/application/Preordercampaign/Preordercampaign.php
index 130b07d40..2e449813a 100644
--- a/application/Preordercampaign/Preordercampaign.php
+++ b/application/Preordercampaign/Preordercampaign.php
@@ -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;
}
diff --git a/scripts/addressdb/st-stefan-ob-stainz/01-addressdb_update_buildings.php b/scripts/addressdb/st-stefan-ob-stainz/01-addressdb_update_buildings.php
index df32be7a7..756450a31 100644
--- a/scripts/addressdb/st-stefan-ob-stainz/01-addressdb_update_buildings.php
+++ b/scripts/addressdb/st-stefan-ob-stainz/01-addressdb_update_buildings.php
@@ -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";
diff --git a/scripts/addressdb/st-stefan-ob-stainz/02-addressdb_create_wohneinheiten.php b/scripts/addressdb/st-stefan-ob-stainz/02-addressdb_create_wohneinheiten.php
deleted file mode 100644
index 4f6cf06e1..000000000
--- a/scripts/addressdb/st-stefan-ob-stainz/02-addressdb_create_wohneinheiten.php
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/php
- "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;
-}
\ No newline at end of file
diff --git a/scripts/preorder/st-stefan-ob-stainz/import-preorders-from-export-format.php b/scripts/preorder/st-stefan-ob-stainz/import-preorders-from-export-format.php
index 36ed88d7b..c8d9da439 100755
--- a/scripts/preorder/st-stefan-ob-stainz/import-preorders-from-export-format.php
+++ b/scripts/preorder/st-stefan-ob-stainz/import-preorders-from-export-format.php
@@ -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";