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 @@ - + +
+ +
+ +
+ + In Address- und Bestell-API +
+
+ 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"> - + " />
- + " />
- + " />
- + " />
- + " />
- + " />
- + " />
- + " />
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(); + } + } +}