RimoImport: More error handling and recovery

This commit is contained in:
Frank Schubert
2025-05-17 21:19:56 +02:00
parent 7c2648d767
commit 7fdc7c06a1
2 changed files with 55 additions and 10 deletions

View File

@@ -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) {

View File

@@ -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++;