diff --git a/Layout/default/AddressDB/Form.php b/Layout/default/AddressDB/Form.php
index 8ef16663f..4e5776ade 100644
--- a/Layout/default/AddressDB/Form.php
+++ b/Layout/default/AddressDB/Form.php
@@ -310,7 +310,20 @@
-
+
+
+
+
+
diff --git a/Layout/default/AddressDB/Index.php b/Layout/default/AddressDB/Index.php
index 5780eb9a9..51bc19991 100644
--- a/Layout/default/AddressDB/Index.php
+++ b/Layout/default/AddressDB/Index.php
@@ -2,6 +2,11 @@
$pagination_baseurl = $this->getUrl($Mod,"Index");
$pagination_baseurl_params = ["filter" => $filter];
$pagination_entity_name = "Adressen";
+
+ if(!is_array($filter)) {
+ $filter = [];
+ }
+
?>
@@ -36,16 +41,16 @@
-
+ " />
@@ -54,13 +59,13 @@
" id="filter-gemeinde-text">
-
+ " />
@@ -70,53 +75,53 @@
" id="filter-ortschaft-text">
-
+ " />
-
+ " />
-
+ " />
@@ -424,12 +427,45 @@
+ is("Admin")): ?>
+
+
+
+
\ No newline at end of file
diff --git a/application/ADBHausnummer/ADBHausnummerModel.php b/application/ADBHausnummer/ADBHausnummerModel.php
index 754bb4190..faae998ef 100644
--- a/application/ADBHausnummer/ADBHausnummerModel.php
+++ b/application/ADBHausnummer/ADBHausnummerModel.php
@@ -19,9 +19,13 @@ class ADBHausnummerModel {
public $unit_count;
public $gps_lat;
public $gps_long;
+ public $borderpoint_lat;
+ public $borderpoint_long;
+ public $trenches;
public $rollout;
public $rollout_info;
public $freigabe;
+ public $visibility;
public $manual_add;
public $manual_add_by;
public $manual_add_info;
@@ -349,6 +353,16 @@ class ADBHausnummerModel {
}
}
+ if(array_key_exists("visibility", $filter)) {
+ $visibility = $filter['visibility'];
+ if(is_array($visibility)) {
+ $where .= " AND Hausnummer.visibility IN ('".implode("','", $visibility)."')";
+ } else {
+ $visibility = FronkDB::singleton()->escape($visibility);
+ $where .= " AND Hausnummer.visibility = '$visibility'";
+ }
+ }
+
if(array_key_exists("rollout", $filter)) {
$rollout = FronkDB::singleton()->escape($filter['rollout']);
if($rollout) {
diff --git a/application/AddressDB/AddressDB.php b/application/AddressDB/AddressDB.php
index 876ede42d..355580862 100644
--- a/application/AddressDB/AddressDB.php
+++ b/application/AddressDB/AddressDB.php
@@ -37,6 +37,7 @@ class AddressDB {
`Hausnummer`.`rollout` AS `rollout`,
`Hausnummer`.`rollout_info` AS `rollout_info`,
`Hausnummer`.`freigabe` AS `freigabe`,
+ `Hausnummer`.`visibility` AS `visibility`,
`Hausnummer`.`rimo_id` AS `hausnummer_rimo_id`,
`Hausnummer`.`rimo_fcp_name` AS `rimo_fcp_name`,
`Wohneinheit`.`id` AS `wohneinheit_id`,
diff --git a/application/AddressDB/AddressDBController.php b/application/AddressDB/AddressDBController.php
index 3670858c0..ba5ae40f3 100644
--- a/application/AddressDB/AddressDBController.php
+++ b/application/AddressDB/AddressDBController.php
@@ -48,7 +48,7 @@ class AddressDBController extends mfBaseController {
if($this->me->is("Admin")) {
$my_networks = NetworkModel::getAll();
- if($filter['network_id']) {
+ if(array_key_exists("network_id", $filter) && $filter['network_id']) {
$filter['netzgebiet_id'] = $filter['network_id'];
}
} else {
@@ -77,12 +77,12 @@ class AddressDBController extends mfBaseController {
if(!array_key_exists("netzgebiet_id", $addressdb_filter)) {
$addressdb_filter['netzgebiet_id'] = $netzgebiet_ids;
}
- //var_dump($my_adb_networks);exit;
+ $addressdb_filter["visibility"] = ["public", "private"];
+
$this->layout()->set("my_networks", ADBNetzgebietModel::getAll());
$this->layout()->set("my_adb_networks", $my_adb_networks);
- //var_dump($addressdb_filter);exit;
- //var_dump($addressdb_filter);exit;
- if($filter['netzgebiet_id'] === "null") {
+
+ if(array_key_exists("netzgebiet_id", $filter) && $filter['netzgebiet_id'] === "null") {
$addressdb_filter['netzgebiet_id'] = 0;
$pagination['maxItems'] = ADBHausnummerModel::count($addressdb_filter);
$addresses = ADBHausnummerModel::search($addressdb_filter, $pagination);
diff --git a/application/Api/v1/AddressdbApicontroller.php b/application/Api/v1/AddressdbApicontroller.php
index 1f4501624..912301570 100644
--- a/application/Api/v1/AddressdbApicontroller.php
+++ b/application/Api/v1/AddressdbApicontroller.php
@@ -388,6 +388,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
if(count($this->filter_salescluster_ids)) {
$where .= " AND netzgebiet_id IN (".implode(",", $this->filter_salescluster_ids).")";
}
+ $where .= " AND Hausnummer.visibility='public'";
$sql = AddressDB::$wohneinheit_query;
$sql .= "\n WHERE $where AND ((".implode(" OR ", $ort_search).") OR (".implode(" OR ", $strasse_search).") OR (".implode(" OR ", $plz_search).") OR (".implode(" OR ", $hausnummer_search).")) ORDER BY strasse, LENGTH(hausnummer), hausnummer, LENGTH(`Wohneinheit`.tuer),`Wohneinheit`.tuer, zusatz, LENGTH(num), num";
@@ -676,6 +677,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
if($search_cluster_id) {
$where .= " AND Netzgebiet.extref='$search_cluster_id'";
}
+ $where .= " AND Hausnummer.visibility='public'";
//echo $where;
//var_dump($this->filter_salescluster_ids);exit;
diff --git a/db/migrations/20240208123321_hausnummer_add_visibility.php b/db/migrations/20240208123321_hausnummer_add_visibility.php
new file mode 100644
index 000000000..250094c08
--- /dev/null
+++ b/db/migrations/20240208123321_hausnummer_add_visibility.php
@@ -0,0 +1,32 @@
+getEnvironment() == "thetool") {
+
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+ $table = $this->table("Hausnummer");
+ $table->addColumn("visibility", "enum", ["null" => false, "values" => "public,private,none", "default" => "public", "after" => "freigabe"]);
+ $table->addIndex("visibility");
+ $table->update();
+ }
+ }
+
+ public function down(): void
+ {
+ if($this->getEnvironment() == "thetool") {
+
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+ $this->table("Hausnummer")->removeColumn("visibility")->save();
+ }
+ }
+}
diff --git a/db/migrations/20240208151159_hausnummer_add_borderpoint_lat_long.php b/db/migrations/20240208151159_hausnummer_add_borderpoint_lat_long.php
new file mode 100644
index 000000000..c3f67302b
--- /dev/null
+++ b/db/migrations/20240208151159_hausnummer_add_borderpoint_lat_long.php
@@ -0,0 +1,39 @@
+getEnvironment() == "thetool") {
+
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+ $table = $this->table("Hausnummer");
+ $table->addColumn("borderpoint_lat", "decimal",["null" => true, "default" => null, "precision" => 15, "scale" => 10, "after" => "gps_long"]);
+ $table->addColumn("borderpoint_long", "decimal", ["null" => true, "default" => null, "precision" => 15, "scale" => 10, "after" => "borderpoint_lat"]);
+ $table->addColumn("trenches", "json", ["null" => true, "default" => null, "after" => "borderpoint_long"]);
+ $table->addColumn("home_trench", "json", ["null" => true, "default" => null, "after" => "trenches"]);
+ $table->save();
+ }
+ }
+
+ public function down(): void
+ {
+ if($this->getEnvironment() == "thetool") {
+
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+ $table = $this->table("home_trench");
+ $table->removeColumn("home_trench");
+ $table->removeColumn("trenches");
+ $table->removeColumn("borderpoint_long");
+ $table->removeColumn("borderpoint_lat");
+ $table->save();
+ }
+ }
+}
diff --git a/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-62383-mureck.php b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-62383-mureck.php
new file mode 100644
index 000000000..cf4af46e8
--- /dev/null
+++ b/scripts/adb-rimo-import/ADBAddressHelper/Network/Network-62383-mureck.php
@@ -0,0 +1,35 @@
+ 1) {
}
}
+//$netowners = ["estmk", "rml"];
+$netowners = ["estmk"];
-foreach(["estmk", "rml"] as $apiOwner) {
+foreach($netowners as $apiOwner) {
$apiEdition = "prod";
$apiData = TT_RIMO_API_CREDS[$apiOwner][$apiEdition];
@@ -54,6 +56,7 @@ foreach(["estmk", "rml"] as $apiOwner) {
$epGetBuildings = $apiUrl.RIMO_API_JSON_EP_GET_BUILDINGS;
$epGetWorkorders = $apiUrl.RIMO_API_JSON_EP_QUERY_WORKORDERS;
$epGetService = $apiUrl.RIMO_API_JSON_EP_QUERY_SERVICE;
+ $epGetGeoJsonForBuilding = $apiUrl.RIMO_API_JSON_EP_GET_JSON_FOR_BUILDING;
$import_count = 0;
@@ -113,10 +116,10 @@ foreach(["estmk", "rml"] as $apiOwner) {
}
- /*if($cluster_rimo_id != "SDISalesCluster_126657212929_1678961358") {
- // prem sued
+ if($cluster_rimo_id != "SDISalesCluster_85942336257_1707118316") {
+ // wettmannstaettten
continue;
- }*/
+ }
$AddressHelper = new ADBAddressHelper\AddressHelper(["log" => $log, "db" => $adb, "netzgebiet" => $adb_netzgebiet]);
@@ -362,7 +365,10 @@ foreach(["estmk", "rml"] as $apiOwner) {
}
- // get workorders
+ /*
+ * get workorders
+ */
+
$params = $baseParams;
$params["buildingId"] = $rimo_building_id;
$qs = http_build_query($params);
@@ -418,7 +424,82 @@ foreach(["estmk", "rml"] as $apiOwner) {
}
}
}
-
+
+ /*
+ * Get Geodata
+ */
+ $params = $baseParams;
+ $params["buildingId"] = $rimo_building_id;
+ $qs = http_build_query($params);
+
+ $req_url = $epGetGeoJsonForBuilding."?".$qs;
+ $req_ctx = stream_context_create($ctxOptsGet);
+
+ //echo $req_url."\n";
+ $responseText = file_get_contents($req_url, false, $req_ctx);
+
+ if($responseText === false) {
+ //echo "Error fetching Workorders for building $rimo_building_id\n";
+ continue;
+ }
+
+ $geodataResponse = json_decode($responseText);
+
+ //print_r($geodataResponse);exit;
+
+ if(is_object($geodataResponse)) {
+ if(property_exists($geodataResponse, "homeSection")) {
+ if(property_exists($geodataResponse->homeSection, "features") && is_array($geodataResponse->homeSection->features)) {
+ foreach($geodataResponse->homeSection->features as $feature) {
+ $home_trench = [];
+ foreach($feature->geometry->coordinates as $coords) {
+ $long = $coords[0];
+ $lat = $coords[1];
+ $home_trench[] = [$lat, $long];
+ }
+ if($hausnummer->home_trench != $home_trench) {
+ $hausnummer->home_trench = json_encode($home_trench);
+ $hausnummer->save();
+ }
+
+ }
+ }
+ }
+ if(property_exists($geodataResponse, "borderPoint")) {
+ if(property_exists($geodataResponse->borderPoint, "features") && is_array($geodataResponse->borderPoint->features)) {
+ foreach($geodataResponse->borderPoint->features as $feature) {
+ $coords = $feature->geometry->coordinates;
+ //var_dump($coords);exit;
+ $long = $coords[0];
+ $lat = $coords[1];
+ if($hausnummer->borderpoint_lat != $lat || $hausnummer->borderpoint_long != $long) {
+ $hausnummer->borderpoint_lat = $lat;
+ $hausnummer->borderpoint_long = $long;
+ $hausnummer->save();
+ }
+ }
+ }
+ }
+ if(property_exists($geodataResponse, "trenches") && $geodataResponse->trenches->features) {
+ $trenches = [];
+ foreach($geodataResponse->trenches->features as $feature) {
+ $feature_coords = [];
+ //var_dump($feature->geometry->coordinates);exit;
+ foreach($feature->geometry->coordinates as $coords) {
+ $long = $coords[0];
+ $lat = $coords[1];
+ $feature_coords[] = [$lat, $long];
+ }
+ $trenches[] = $feature_coords;
+ }
+ if(count($trenches)) {
+ //var_dump($trenches);exit;
+ $hausnummer->trenches = json_encode($trenches);
+ $hausnummer->save();
+ }
+
+ }
+ }
}
echo "Cluster $cluster_rimo_id ($cluster_name): $hausnummer_count Buildings; $hausnummer_found_count Buildings verarbeitet; $homes_count Homes verarbeitet.\n";
}