From 64e0bd6367dd92b318624f5b024e3ecf389aa101 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 12 Jun 2025 04:51:58 +0200 Subject: [PATCH] Fixed counting homes in Rimo Import --- .../ADBAddressHelper/address_helper.php | 12 ++++-------- scripts/adb-rimo-import/rimo-import.php | 15 +++++++++------ 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php b/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php index 8b962a168..95c4d4d84 100644 --- a/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php +++ b/scripts/adb-rimo-import/ADBAddressHelper/address_helper.php @@ -182,7 +182,10 @@ class AddressHelper $addr_dbg_str = "strasse_hausnummer: $strasse_hausnummer | zusatz: $addresszusatz | gemkz: $gem_kz | gem_name: $gem_name | ort_name: $ort_name | plz_name: $plz_name | adrcd: $adr | $rimo_id"; - if (!$hausnummer_name || !$gem_name || !$plz_name || !$ort_name || !$strasse_name) { + // try to find by rimo_id + $hausnummer = ADBHausnummerModel::getFirst(["rimo_id" => $rimo_id]); + + if (!$hausnummer && (!$hausnummer_name || !$gem_name || !$plz_name || !$ort_name || !$strasse_name)) { $this->logFindAddressError("[WW] Adressbestandteil fehlt ($addr_dbg_str)"); return false; } @@ -214,13 +217,6 @@ class AddressHelper } $gemeinde_id = $gemeinde->id; - - $hausnummer = ADBHausnummerModel::getFirst(["rimo_id" => $rimo_id]); - - /*if($hausnummer) { - echo "found hausnummer from rimo_id $rimo_id\n"; - }*/ - $force_subcd = false; $force_no_subcd = false; diff --git a/scripts/adb-rimo-import/rimo-import.php b/scripts/adb-rimo-import/rimo-import.php index 1c8c82a3d..45fc14512 100755 --- a/scripts/adb-rimo-import/rimo-import.php +++ b/scripts/adb-rimo-import/rimo-import.php @@ -307,10 +307,13 @@ foreach ($clusters as $cluster_data) { } } - $plannedTU = $building->plannedTU; - $to_create_count = $building->plannedTU - count($existing_units); + $rimo_home_count = 0; + if (property_exists($building->homes, "item") && is_array($building->homes->item) && count($building->homes->item)) { + $rimo_home_count = count($building->homes->item); + } + $to_create_count = $rimo_home_count - count($existing_units); - if ($plannedTU && $to_create_count > 0) { + if ($rimo_home_count && $to_create_count > 0) { for ($i = 0; $i < $to_create_count; $i++) { $unit = \ADBWohneinheitModel::create([ "hausnummer_id" => $hausnummer->id, @@ -375,12 +378,12 @@ foreach ($clusters as $cluster_data) { } } - $unit = new \ADBWohneinheit($unit->id); + //$unit = new \ADBWohneinheit($unit->id); \mfValuecache::singleton()->set("adbhausnummer-save-nesting-level-".$hausnummer->id, 0); \mfValuecache::singleton()->set("adbwohneinheit-save-nesting-level-".$unit->id, 0); } - $unit = new \ADBWohneinheit($unit->id); + //$unit = new \ADBWohneinheit($unit->id); if($unit->rimo_deleted) { $unit->rimo_deleted = 0; $unit->save(["no_updates" => 1]); @@ -391,7 +394,7 @@ foreach ($clusters as $cluster_data) { if (!$unit->save()) { die("Error saving new extref on unit\n" . print_r($home, true)); } - $unit = new \ADBWohneinheit($unit->id); + //$unit = new \ADBWohneinheit($unit->id); \mfValuecache::singleton()->set("adbhausnummer-save-nesting-level-".$hausnummer->id, 0); \mfValuecache::singleton()->set("adbwohneinheit-save-nesting-level-".$unit->id, 0); }