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 @@
"> - the tool © Xinon GmbH - Made by fronk + the tool © Xinon GmbH
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";