From 350815f41a445bee8890b308b513c0c729b06710 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Mon, 1 Jul 2024 12:23:29 +0200 Subject: [PATCH] Importing and showing Rimo Building and Home Status --- .../Preorder/include/preorder-detail.php | 12 ++++++ .../ADBHausnummer/ADBHausnummerModel.php | 2 + .../ADBWohneinheit/ADBWohneinheitModel.php | 2 + .../20240701095219_adb_add_rimo_status.php | 39 +++++++++++++++++++ scripts/adb-rimo-import/rimo-import-test.php | 28 ++++++++++--- 5 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 db/migrations/20240701095219_adb_add_rimo_status.php diff --git a/Layout/default/Preorder/include/preorder-detail.php b/Layout/default/Preorder/include/preorder-detail.php index 618ae201f..321e76e18 100644 --- a/Layout/default/Preorder/include/preorder-detail.php +++ b/Layout/default/Preorder/include/preorder-detail.php @@ -340,9 +340,21 @@ Building External ID: adb_hausnummer->rimo_id?> + + Building Execution State: + adb_hausnummer->rimo_ex_state?> + + Building Operational State: + adb_hausnummer->rimo_op_state != "Undefined") ? $preorder->adb_hausnummer->rimo_op_state : ""?> Home External ID: adb_wohneinheit->extref?> + + Home Execution State: + adb_wohneinheit->rimo_ex_state?> + + Home Operational State: + adb_wohneinheit->rimo_op_state != "Undefined") ? $preorder->adb_wohneinheit->rimo_op_state : ""?> diff --git a/application/ADBHausnummer/ADBHausnummerModel.php b/application/ADBHausnummer/ADBHausnummerModel.php index 542abd744..5503bd9e3 100644 --- a/application/ADBHausnummer/ADBHausnummerModel.php +++ b/application/ADBHausnummer/ADBHausnummerModel.php @@ -34,6 +34,8 @@ class ADBHausnummerModel { public $manual_update_by; public $manual_update_info; public $rimo_id; + public $rimo_ex_state; + public $rimo_op_state; public $rimo_fcp_name; public $create = null; diff --git a/application/ADBWohneinheit/ADBWohneinheitModel.php b/application/ADBWohneinheit/ADBWohneinheitModel.php index aa3f0dfe0..82508c4e2 100644 --- a/application/ADBWohneinheit/ADBWohneinheitModel.php +++ b/application/ADBWohneinheit/ADBWohneinheitModel.php @@ -13,6 +13,8 @@ class ADBWohneinheitModel { public $zusatz; public $bezeichner; public $nutzung; + public $rimo_ex_state; + public $rimo_op_state; public $patch_cluster; public $patch_shelf; public $patch_module; diff --git a/db/migrations/20240701095219_adb_add_rimo_status.php b/db/migrations/20240701095219_adb_add_rimo_status.php new file mode 100644 index 000000000..8c2481a6f --- /dev/null +++ b/db/migrations/20240701095219_adb_add_rimo_status.php @@ -0,0 +1,39 @@ +getEnvironment() == "thetool") { + + } + + if($this->getEnvironment() == "addressdb") { + $hn = $this->table("Hausnummer"); + $hn->addColumn("rimo_ex_state", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "rimo_id"]); + $hn->addColumn("rimo_op_state", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "rimo_ex_state"]); + $hn->update(); + + $we = $this->table("Wohneinheit"); + $we->addColumn("rimo_ex_state", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "nutzung"]); + $we->addColumn("rimo_op_state", "string", ["null" => true, "default" => null, "limit" => 255, "after" => "rimo_ex_state"]); + $we->update(); + + } + } + + public function down(): void + { + if($this->getEnvironment() == "thetool") { + + } + + if($this->getEnvironment() == "addressdb") { + $this->table("Wohneinheit")->removeColumn("rimo_status")->save(); + $this->table("Hausnummer")->removeColumn("rimo_status")->save(); + } + } +} diff --git a/scripts/adb-rimo-import/rimo-import-test.php b/scripts/adb-rimo-import/rimo-import-test.php index 0ef486953..9786b8103 100755 --- a/scripts/adb-rimo-import/rimo-import-test.php +++ b/scripts/adb-rimo-import/rimo-import-test.php @@ -246,15 +246,22 @@ foreach ($clusters as $cluster_data) { /* * Set Building Status based on Operational-/Executionstate */ - $b_execution_state_id = $building->executionState->name; - $b_execution_state_label = $building->executionState->userLabel; + $b_executionstate_id = $building->executionState->name; + $b_executionstate_label = $building->executionState->userLabel; $b_operationalstate_id = $building->operationalState->name; $b_operationalstate_label = $building->operationalState->userLabel; + if($b_executionstate_label != $hausnummer->rimo_ex_state) { + $hausnummer->rimo_ex_state = $b_executionstate_label; + $hausnummer->save(); + } + if($b_operationalstate_label != $hausnummer->rimo_op_state) { + $hausnummer->rimo_op_state = $b_operationalstate_label; + $hausnummer->save(); + } - - if($b_execution_state_id == "99" && $hausnummer->visibility != "private") { - echo "== Setting visibility to private because execution state $b_execution_state_id ($b_execution_state_label) [".$hausnummer->id."]\n"; + if($b_executionstate_id == "99" && $hausnummer->visibility != "private") { + echo "== Setting visibility to private because execution state $b_executionstate_id ($b_executionstate_label) [".$hausnummer->id."]\n"; $hausnummer->visibility = "private"; $hausnummer->save(); } @@ -293,7 +300,7 @@ foreach ($clusters as $cluster_data) { $rimo_home_count = count($building->homes->item); foreach ($building->homes->item as $home) { - //print_r($home);//exit; + //print_r($home);exit; $homes_count++; $home_rimo_id = $home->id; $home_name = $home->name; @@ -331,6 +338,15 @@ foreach ($clusters as $cluster_data) { * TODO: Status based on execution-/operational-state */ + if($home->executionState->userLabel != $unit->rimo_ex_state) { + $unit->rimo_ex_state = $home->executionState->userLabel; + $unit->save(); + } + if($home->operationalState->userLabel != $unit->rimo_op_state) { + $unit->rimo_op_state = $home->operationalState->userLabel; + $unit->save(); + } + /* * update FTU data */