diff --git a/application/Preorder/Preorder.php b/application/Preorder/Preorder.php index 86afc24b3..1c01d0af8 100644 --- a/application/Preorder/Preorder.php +++ b/application/Preorder/Preorder.php @@ -321,11 +321,9 @@ class Preorder extends mfBaseModel { if($this->adb_wohneinheit_id) { $unit = new ADBWohneinheit($this->adb_wohneinheit_id); if($unit && $unit->oaid && $this->oaid != $unit->oaid) { - $campaign = new Preordercampaign($this->preordercampaign_id); $unit_oaid = OpenAccessIdModel::getFirst(["oaid" => $unit->oaid]); - - if($unit_oaid->origin == $campaign->oaid_origin) { + if($unit_oaid && $unit_oaid->origin == $campaign->oaid_origin) { return $unit->oaid; } } diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php index 4b5e9697a..7855ca4dd 100644 --- a/application/Preorder/PreorderController.php +++ b/application/Preorder/PreorderController.php @@ -438,8 +438,8 @@ class PreorderController extends mfBaseController { $data['company'] = (trim($r->company)) ? trim($r->company) : null; $data['uid'] = (trim($r->uid)) ? trim($r->uid) : null; - $data['firstname'] = (trim($r->firstname)) ? trim($r->firstname) : null; - $data['lastname'] = (trim($r->lastname)) ? trim($r->lastname) : null; + $data['firstname'] = trim($r->firstname); + $data['lastname'] = trim($r->lastname); $data['street'] = (trim($r->street)) ? trim($r->street) : null; $data['housenumber'] = (trim($r->housenumber)) ? trim($r->housenumber) : null; $data['block'] = (trim($r->block)) ? trim($r->block) : null; diff --git a/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-61105-kalwang.php b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-61105-kalwang.php new file mode 100644 index 000000000..b7ccf24a2 --- /dev/null +++ b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-61105-kalwang.php @@ -0,0 +1,52 @@ +id); @@ -104,11 +104,10 @@ class AddressHelper { return false; } - $addr_dbg_str = "strasse: $strasse_name | hausnummer: $hausnummer_name | zusatz: $addresszusatz | gemkz: $gem_kz | gem_name: $gem_name | ort_name: $ort_name | plz_name: $plz_name"; - echo "$addr_dbg_str\n"; + $addr_dbg_str = "strasse: $strasse_name | hausnummer: $hausnummer_name | zusatz: $addresszusatz | gemkz: $gem_kz | gem_name: $gem_name | ort_name: $ort_name | plz_name: $plz_name | $rimo_id"; // pass variables by ref, so they can be manipulated directly - $this->NetworkHelper->checkAddress([ + $continue = $this->NetworkHelper->checkAddress([ "strasse_name" => &$strasse_name, "hausnummer_name" => &$hausnummer_name, "addresszusatz" => &$addresszusatz, @@ -118,11 +117,16 @@ class AddressHelper { "plz_name" => &$plz_name ]); + if(!$continue) { + echo "[WW] ($addr_dbg_str) Wurde aussortiert\n"; + return false; + } + $gemeinde = \ADBGemeindeModel::getFirst(["kennziffer" => $gem_kz]); if(!$gemeinde) { - $this->log->warning("[WW] ($addr_dbg_str) Gemeinde nicht gefunden"); - echo "Gemeinde $gem_name $gem_kz nicht gefunden\n"; + $this->log->warning("[EE] ($addr_dbg_str) Gemeinde nicht gefunden (name: $gem_name, Kennzahl: $gem_kz"); + echo "[EE] ($addr_dbg_str) Gemeinde $gem_name $gem_kz nicht gefunden\n"; return false; } $gemeinde_id = $gemeinde->id; @@ -136,19 +140,19 @@ class AddressHelper { $hausnummer = \ADBHausnummerModel::getFirst(["rimo_id" => $rimo_id]); - if($hausnummer) { + /*if($hausnummer) { echo "found hausnummer from rimo_id $rimo_id\n"; - } + }*/ if($adrcd && !$hausnummer) { // get Hausnummer to update $hausnummer = \ADBHausnummerModel::getFirst(['adrcd' => $adrcd]); - if(!$hausnummer) { + /*if(!$hausnummer) { //echo "Hausnummer adrcd $adrcd not found\n"; } else { echo "found hausnummer from adrcd $adrcd\n"; //echo "Hausnummer adrcd $adrcd gefunden!\n"; - } + }*/ } if(!$hausnummer) { @@ -160,15 +164,23 @@ class AddressHelper { //if(!$strasse) die("Strasse $strasse_name (gemeinde_id $gemeinde_id; gem_kz $gem_kz) nicht gefunden\n"); if(!$strasse) { $strasse = $this->createStreet($gemeinde_id, $strasse_name); - echo "[EE] Konnte Strasse $strasse_name in Gemeinde $gemeinde_id nicht anlegen\n"; - if(!$strasse) return false; + if(!$strasse) { + echo "[EE] ($addr_dbg_str) Konnte Strasse $strasse_name in Gemeinde $gemeinde_id nicht anlegen\n"; + return false; + } } $plz = \ADBPlzModel::getFirst(["gemeinde_id" => $gemeinde_id, "plz" => $plz_name]); - if(!$plz) die("PLZ $plz_name nicht gefunden\n"); + if(!$plz) { + echo "[EE] ($addr_dbg_str) PLZ $plz_name nicht gefunden\n"; + return false; + } $ortschaft = \ADBOrtschaftModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $ort_name]); - if(!$ortschaft) die("$strasse_hausnummer: ortschaft $ort_name nicht gefunden\n"); + if(!$ortschaft) { + echo "[EE] ($addr_dbg_str) Ortschaft $ort_name nicht gefunden\n"; + return false; + } $hausnummer_data = [ "netzgebiet_id" => $this->netzgebiet->id, diff --git a/scripts/adb-rimo-import/rimo-import-test.php b/scripts/adb-rimo-import/rimo-import-test.php index 60c45ee7c..f57da1ea9 100755 --- a/scripts/adb-rimo-import/rimo-import-test.php +++ b/scripts/adb-rimo-import/rimo-import-test.php @@ -72,7 +72,7 @@ $qs = http_build_query($params); $req_url = $epGetClusters."?".$qs; $req_ctx = stream_context_create($ctxOptsGet); -echo $req_url."\n"; +//echo $req_url."\n"; $responseText = file_get_contents($req_url, false, $req_ctx); if($responseText === false) { echo "Error fetching clusters\n"; @@ -88,14 +88,21 @@ if(!is_object($clustersResponse) || !property_exists($clustersResponse, "item") foreach($clustersResponse->item as $cluster) { $cluster_rimo_id = $cluster->id; - echo "$cluster_rimo_id | name: ".$cluster->name."; label: ".$cluster->userLabel."\n"; + //echo "##################################################\n"; + //echo "$cluster_rimo_id | name: ".$cluster->name."; label: ".$cluster->userLabel."\n"; //continue; $adb_netzgebiet = \ADBNetzgebietModel::getFirst(['rimo_id' => $cluster_rimo_id]); if(!$adb_netzgebiet) { - echo "Kein Netzgebiet für Salescluster $cluster_rimo_id (".$cluster->name.")\n"; + //echo "Kein Netzgebiet für Salescluster $cluster_rimo_id (".$cluster->name.")\n"; continue; } + + /*if($cluster_rimo_id != "SDISalesCluster_200193309697_1700559530") { + // kalwang + continue; + }*/ + $AddressHelper = new ADBAddressHelper\AddressHelper(["log" => $log, "db" => $adb, "netzgebiet" => $adb_netzgebiet]); /* @@ -108,7 +115,7 @@ foreach($clustersResponse->item as $cluster) { $req_url = $epGetBuildings."?".$qs; $req_ctx = stream_context_create($ctxOptsGet); - echo $req_url."\n"; + //echo $req_url."\n"; $responseText = file_get_contents($req_url, false, $req_ctx); if($responseText === false) { @@ -117,7 +124,11 @@ foreach($clustersResponse->item as $cluster) { } $buildingsResponse = json_decode($responseText); - + + $hausnummer_count = 0; + $hausnummer_found_count = 0; + $homes_count = 0; + if(is_object($buildingsResponse) && property_exists($buildingsResponse, "item") && is_array($buildingsResponse->item) && count($buildingsResponse->item)) { foreach($buildingsResponse->item as $building) { //var_dump($building); @@ -126,6 +137,7 @@ foreach($clustersResponse->item as $cluster) { } else { continue; } + $hausnummer_count++; // ignore buildings without units if(!$building->plannedTU) { continue; @@ -134,11 +146,12 @@ foreach($clustersResponse->item as $cluster) { //print_r($building);exit; $rimo_building_id = $building->id; - $hausnummer = $AddressHelper->findAddressFromRimoBuilding($building); + $hausnummer = $AddressHelper->findUpdateAddressFromRimoBuilding($building); if(!$hausnummer) { echo "Adresse nicht gefunden: $rimo_building_id\n"; continue; } + $hausnummer_found_count++; $rimo_home_count = count($building->homes->item); @@ -153,6 +166,7 @@ foreach($clustersResponse->item as $cluster) { foreach($building->homes->item as $home) { //print_r($home);//exit; + $homes_count++; $home_rimo_id = $home->id; $home_name = $home->name; @@ -173,14 +187,15 @@ foreach($clustersResponse->item as $cluster) { "extref" => $home_rimo_id, "num" => ++$last_unit_num ]); - echo "-- Creating new unit $home_rimo_id\n"; if(!$unit->save()) { - die("!!! Error saving new unit\n".print_r($home, true)); + die("Error saving new unit\n".print_r($home, true)); } - } else { - if($unit->extref != $home_rimo_id) { - $unit->extref = $home_rimo_id; - $unit->save(); + } + + if($unit->extref != $home_rimo_id) { + $unit->extref = $home_rimo_id; + if(!$unit->save()) { + die("Error saving new extref on unit\n".print_r($home, true)); } } @@ -217,7 +232,7 @@ foreach($clustersResponse->item as $cluster) { } // check OAID - if(is_object($home->ftus->item[0]->oaidObject) && $home->ftus->item[0]->oaidObject->name) { + if(property_exists($home->ftus->item[0], "oaidObject") && is_object($home->ftus->item[0]->oaidObject) && $home->ftus->item[0]->oaidObject->name) { if($home->ftus->item[0]->oaidObject->name != $unit->oaid) { if(!$unit->oaid) { // assign oaid to home @@ -389,6 +404,7 @@ foreach($clustersResponse->item as $cluster) { } } + echo "Cluster $cluster->name: $hausnummer_count Buildings; $hausnummer_found_count Buildings verarbeitet; $homes_count Homes verarbeitet.\n"; } } diff --git a/scripts/preorder/preorders-split-multiple-connections.php b/scripts/preorder/preorders-split-multiple-connections.php index 0408d0f0d..a9aa35321 100755 --- a/scripts/preorder/preorders-split-multiple-connections.php +++ b/scripts/preorder/preorders-split-multiple-connections.php @@ -20,14 +20,22 @@ $ignore_preorders = []; $campaign_prem_nord = 5; $campaign_prem_sued = 6; $campaign_gross_st_florian = 7; -$same_unit_count = 0; +$campaign_kalwang = 41; +$selected_campaign = $campaign_kalwang; + +if(!$selected_campaign) { + echo "Keine Kampagne ausgewählt.\n"; + exit; +} + +$same_unit_count = 0; $missing_units = []; $missing_doors = []; $total = 0; $c = 0; -foreach(PreorderModel::search(["deleted" => 0, "preordercampaign_id" => $campaign_prem_nord, "connection_count" => 2]) as $preorder) { +foreach(PreorderModel::search(["deleted" => 0, "preordercampaign_id" => $selected_campaign, "connection_count" => 2]) as $preorder) { // check if we have enough units with extref $wohneinheiten = ADBWohneinheitModel::search(["hausnummer_id" => $preorder->adb_hausnummer_id]); $unit_count = count($wohneinheiten); diff --git a/scripts/preorder/update-preorder-add-unit.php b/scripts/preorder/update-preorder-add-unit.php index e98929ad2..f76ddd7f7 100755 --- a/scripts/preorder/update-preorder-add-unit.php +++ b/scripts/preorder/update-preorder-add-unit.php @@ -2,7 +2,7 @@ username); $ignore_preorders = []; $campaign_prem_nord = 5; +$campaign_prem_sued = 6; +$campaign_gross_st_florian = 7; +$campaign_kalwang = 41; + +$selected_campaign = $campaign_kalwang; + +if(!$selected_campaign) { + echo "Keine Kampagne ausgewählt.\n"; + exit; +} + $same_unit_count = 0; $i = 0; -foreach(PreorderModel::search(['preordercampaign_id' => $campaign_prem_nord, 'adb_wohneinheit_id' => null, 'connection_count' => 1, "connection_type" => "single-dwelling", "deleted" => 0]) as $preorder) { +foreach(PreorderModel::search(['preordercampaign_id' => $selected_campaign, 'adb_wohneinheit_id' => null, 'connection_count' => 1, "connection_type" => "single-dwelling", "deleted" => 0]) as $preorder) { if(in_array($preorder->id, $ignore_preorders)) continue; //if($preorder->connection_type != "single-dwelling") continue; @@ -73,6 +84,7 @@ foreach(PreorderModel::search(['preordercampaign_id' => $campaign_prem_nord, 'ad ksort($unit_candidates, SORT_NUMERIC); $new_unit = array_shift($unit_candidates); $preorder->adb_wohneinheit_id = $new_unit->id; + //var_dump($preorder, $new_unit);exit; $preorder->save(); echo "$i Wohneinheit saved\n";