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/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();
+ }
+ }
+}