Added visibility to Hausnummer

This commit is contained in:
Frank Schubert
2024-02-08 16:55:02 +01:00
parent c7eee21004
commit e80ef28d32
7 changed files with 87 additions and 20 deletions

View File

@@ -310,7 +310,20 @@
<?php endif; ?>
</div>
</div>
<hr />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="visibility">Zugriffsbeschränkung</label>
<div class="col-lg-10">
<select class="form-control" name="visibility" id="visibility">
<option value="public">Sichtbar</option>
<option value="private">Nicht sichtbar</option>
</select>
<small>In Address- und Bestell-API</small>
</div>
</div>
</div>
</div>

View File

@@ -2,6 +2,11 @@
$pagination_baseurl = $this->getUrl($Mod,"Index");
$pagination_baseurl_params = ["filter" => $filter];
$pagination_entity_name = "Adressen";
if(!is_array($filter)) {
$filter = [];
}
?>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
@@ -36,16 +41,16 @@
<select name="filter[network_id]" id="filter_network_id" class="form-control">
<option></option>
<?php foreach($my_adb_networks as $fnet): ?>
<option value="<?=$fnet->id?>" <?=($filter['network_id'] == $fnet->id) ? "selected='selected'" : ""?>><?=$fnet->name?></option>
<option value="<?=$fnet->id?>" <?=(array_key_exists("network_id", $filter) && $filter['network_id'] == $fnet->id) ? "selected='selected'" : ""?>><?=$fnet->name?></option>
<?php endforeach; ?>
<?php if($me->isAdmin()):?><option value="null" <?=($filter['network_id'] === "null") ? 'selected="selected"' : ""?>>-- Kein Netzgebiet --</option><?php endif; ?>
<?php if($me->isAdmin()):?><option value="null" <?=(array_key_exists("network_id", $filter) && $filter['network_id'] === "null") ? 'selected="selected"' : ""?>>-- Kein Netzgebiet --</option><?php endif; ?>
</select>
</div>
<div class="col-1">
<label class="form-label" for="filter_zip">PLZ</label>
<input type="text" class="form-control" name="filter[zip]" id="filter_zip" value="<?=$filter['zip']?>" />
<input type="text" class="form-control" name="filter[zip]" id="filter_zip" value="<?=(array_key_exists("zip", $filter)) ? $filter['zip'] : ""?>" />
</div>
<div class="col-2">
@@ -54,13 +59,13 @@
<select name="filter[gemeinde_id]" id="filter_gemeinde_id" class="form-control">
<option></option>
<?php foreach($gemeinden as $gemeinde): ?>
<option value="<?=$gemeinde->id?>" <?=($filter['gemeinde_id'] == $gemeinde->id) ? "selected='selected'" : ""?>><?=$gemeinde->name?></option>
<option value="<?=$gemeinde->id?>" <?=(array_key_exists("gemeinde_id", $filter) && $filter['gemeinde_id'] == $gemeinde->id) ? "selected='selected'" : ""?>><?=$gemeinde->name?></option>
<?php endforeach; ?>
</select>
</div>
<div class="<?=(!array_key_exists("network_id", $filter) || $filter['network_id'] !== "null") ? "hidden" : ""?>" id="filter-gemeinde-text">
<label class="form-label" for="filter_gemeinde">Gemeinde</label>
<input type="text" class="form-control" name="filter[gemeinde]" id="filter_gemeinde" value="<?=$filter['gemeinde']?>" />
<input type="text" class="form-control" name="filter[gemeinde]" id="filter_gemeinde" value="<?=(array_key_exists("gemeinde", $filter)) ? $filter['gemeinde'] : ""?>" />
</div>
</div>
@@ -70,53 +75,53 @@
<select name="filter[ortschaft_id]" id="filter_ortschaft_id" class="form-control">
<option></option>
<?php foreach($ortschaften as $ortschaft): ?>
<option value="<?=$ortschaft->id?>" <?=($filter['ortschaft_id'] == $ortschaft->id) ? "selected='selected'" : ""?>><?=$ortschaft->name?></option>
<option value="<?=$ortschaft->id?>" <?=(array_key_exists("ortschaft_id", $filter) && $filter['ortschaft_id'] == $ortschaft->id) ? "selected='selected'" : ""?>><?=$ortschaft->name?></option>
<?php endforeach; ?>
</select>
</div>
<div class="<?=(!array_key_exists("network_id", $filter) || $filter['network_id'] !== "null") ? "hidden" : ""?>" id="filter-ortschaft-text">
<label class="form-label" for="filter_ortschaft">Ortsteil</label>
<input type="text" class="form-control" name="filter[ortschaft]" id="filter_ortschaft" value="<?=$filter['ortschaft']?>" />
<input type="text" class="form-control" name="filter[ortschaft]" id="filter_ortschaft" value="<?=(array_key_exists("ortschaft", $filter)) ? $filter['ortschaft'] : ""?>" />
</div>
</div>
<div class="col-2">
<label class="form-label" for="filter_street">Strasse</label>
<input type="text" class="form-control" name="filter[street]" id="filter_street" value="<?=$filter['street']?>" />
<input type="text" class="form-control" name="filter[street]" id="filter_street" value="<?=(array_key_exists("street", $filter)) ? $filter['street'] : ""?>" />
</div>
<div class="col-1">
<label class="form-label" for="filter_hausnummer">Hausnummer</label>
<input type="text" class="form-control" name="filter[hausnummer]" id="filter_street" value="<?=$filter['hausnummer']?>" />
<input type="text" class="form-control" name="filter[hausnummer]" id="filter_street" value="<?=(array_key_exists("hausnummer", $filter)) ? $filter['hausnummer'] : ""?>" />
</div>
</div>
<div class="row mt-2">
<div class="col-2">
<label class="form-label" for="filter_oaid">OAID</label>
<input type="text" class="form-control" name="filter[oaid]" id="filter_oaid" value="<?=$filter['oaid']?>" />
<input type="text" class="form-control" name="filter[oaid]" id="filter_oaid" value="<?=(array_key_exists("oaid", $filter)) ? $filter['oaid'] : ""?>" />
</div>
<div class="col-1">
<label class="form-label" for="filter_adrcd">Adrcd (GWR)</label>
<input type="text" class="form-control" name="filter[adrcd]" id="filter_adrcd" value="<?=$filter['adrcd']?>" />
<input type="text" class="form-control" name="filter[adrcd]" id="filter_adrcd" value="<?=(array_key_exists("adrcd", $filter)) ? $filter['adrcd'] : ""?>" />
</div>
<div class="col-2">
<label class="form-label" for="filter_extref">extref</label>
<input type="text" class="form-control" name="filter[extref]" id="filter_extref" value="<?=$filter['extref']?>" />
<input type="text" class="form-control" name="filter[extref]" id="filter_extref" value="<?=(array_key_exists("extref", $filter)) ? $filter['extref'] : ""?>" />
</div>
<div class="col-1">
<label class="form-label" for="filter_rollout">Rollout Jahr</label>
<input type="text" class="form-control" name="filter[rollout]" id="filter_rollout" value="<?=$filter['rollout']?>" />
<input type="text" class="form-control" name="filter[rollout]" id="filter_rollout" value="<?=(array_key_exists("rollout", $filter)) ? $filter['rollout'] : ""?>" />
</div>
<div class="col-2">
<label class="form-label" for="filter_rollout_info">Rollout Info</label>
<input type="text" class="form-control" name="filter[rollout_info]" id="filter_rollout_info" value="<?=$filter['rollout_info']?>" />
<input type="text" class="form-control" name="filter[rollout_info]" id="filter_rollout_info" value="<?=(array_key_exists("rollout_info", $filter)) ? $filter['rollout_info'] : ""?>" />
</div>

View File

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

View File

@@ -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`,

View File

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

View File

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

View File

@@ -0,0 +1,32 @@
<?php
declare(strict_types=1);
use Phinx\Migration\AbstractMigration;
final class HausnummerAddVisibility extends AbstractMigration
{
public function up(): void
{
if($this->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();
}
}
}