diff --git a/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php b/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php index b79f93cdd..8b962a168 100644 --- a/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php +++ b/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php @@ -173,6 +173,10 @@ class AddressHelper } } + if(!is_numeric($subcd)) { + $subcd = false; + } + $execution_state_id = $building->executionState->name; $execution_state_label = $building->executionState->userLabel; @@ -346,7 +350,11 @@ class AddressHelper //var_dump($hausnummer);exit; //echo "----------------------\ncreating hausnummer:\n"; //print_r($hausnummer); - $hausnummer->save(); + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving new Hausnummer ($addr_dbg_str)"); + return false; + } + if($force_subcd) { $this->logFindAddressError("[CC] Neues Gebäude erstellt (forced subcd) ($addr_dbg_str)"); } elseif($force_no_subcd) { @@ -357,6 +365,13 @@ class AddressHelper } } + + if(!$hausnummer->id) { + $this->logFindAddressError("[EE] Unable to find or create Hausnummer ($addr_dbg_str)"); + return false; + } + + if($execution_state_id == "99" && !$hausnummer->netzgebiet_id) { // don't import Hausnummer if Canceled in Rimo @@ -372,7 +387,10 @@ class AddressHelper $dont_overwrite_netzgbiet = $hausnummer->netzgebiet->getOption("hausnummer_dont_overwrite_netzgebiet"); if (!$dont_overwrite_netzgbiet) { $hausnummer->netzgebiet_id = $this->netzgebiet->id; - $hausnummer->save(); + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } } @@ -382,7 +400,10 @@ class AddressHelper if ($new_strasse) { $this->logFindAddressError("[II] Updating Strasse from " . $hausnummer->strasse->name . " to " . $new_strasse->name . " ($addr_dbg_str)"); $hausnummer->strasse_id = $new_strasse->id; - $hausnummer->save; + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } else { $this->logFindAddressError("[WW] Cannot update Strasse from " . $hausnummer->strasse->name . " to " . $strasse_name . " because not found ($addr_dbg_str)"); } @@ -391,7 +412,10 @@ class AddressHelper if ($hausnummer_name != $hausnummer->hausnummer) { $this->logFindAddressError("[II] Updating Hausnummer from " . $hausnummer->hausnummer . " to " . $hausnummer_name . " ($addr_dbg_str)"); $hausnummer->hausnummer = $hausnummer_name; - $hausnummer->save; + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } if ($plz_name != $hausnummer->plz->plz) { @@ -399,7 +423,10 @@ class AddressHelper if ($new_plz) { $this->logFindAddressError("[II] Updating PLZ from " . $hausnummer->plz->plz . " to " . $new_plz->plz . " ($addr_dbg_str)"); $hausnummer->plz_id = $new_plz->id; - $hausnummer->save; + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } else { $this->logFindAddressError("[WW] Cannot update PLZ from " . $hausnummer->plz->plz . " to " . $plz_name . " because not found ($addr_dbg_str)"); } @@ -408,25 +435,40 @@ class AddressHelper if ($hausnummer->extref != $name) { $hausnummer->extref = $name; - $hausnummer->save(); + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } if ($lat && $long) { $hausnummer->gps_lat = (float)$lat; $hausnummer->gps_long = (float)$long; - $hausnummer->save(); + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } if ($hausnummer->rimo_id != $rimo_id) { $hausnummer->rimo_id = $rimo_id; - $hausnummer->save(); + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } if ($hausnummer->rimo_fcp_name != $fcp_name) { $hausnummer->rimo_fcp_name = $fcp_name; - $hausnummer->save(); + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } if($update_freigabe && $hausnummer->freigabe != $this->netzgebiet->freigabe) { $hausnummer->freigabe = $this->netzgebiet->freigabe; - $hausnummer->save(); + if(!$hausnummer->save()) { + $this->logFindAddressError("[EE] Error saving Hausnummer ($addr_dbg_str)"); + return false; + } } if(!$hausnummer->oaid && $this->netzgebiet->unit_create_oaid) { diff --git a/scripts/adb-rimo-import/rimo-import.php b/scripts/adb-rimo-import/rimo-import.php index f3092cee5..adf1d627c 100755 --- a/scripts/adb-rimo-import/rimo-import.php +++ b/scripts/adb-rimo-import/rimo-import.php @@ -231,6 +231,7 @@ foreach ($clusters as $cluster_data) { $hausnummer_count++; $rimo_building_id = $building->id; + $hausnummer = $AddressHelper->findUpdateAddressFromRimoBuilding($building); if (!$hausnummer) { //echo "Adresse nicht gefunden: $rimo_building_id\n"; @@ -334,6 +335,8 @@ foreach ($clusters as $cluster_data) { $rimo_home_list = []; foreach ($building->homes->item as $home) { + if(!$home->id) continue; + $hausnummer = new \ADBHausnummer($hausnummer_id); //print_r($home);exit; $homes_count++;