Merge branch 'const-consent-add-filter' into 'master'

Const consent add filter

See merge request fronk/thetool!1047
This commit is contained in:
Luca Haid
2025-02-25 18:33:05 +00:00
3 changed files with 64 additions and 23 deletions
+44 -11
View File
@@ -33,7 +33,7 @@ $pagination_entity_name = "Zustimmungserklärungen";
<form method="get" action="<?=self::getUrl("ConstructionConsent")?>"> <form method="get" action="<?=self::getUrl("ConstructionConsent")?>">
<div class="row"> <div class="row">
<div class="col-3"> <div class="col-2">
<label class="form-label" for="filter_project_id">Projekt</label> <label class="form-label" for="filter_project_id">Projekt</label>
<select name="filter[project_id]" id="filter_project_id" class="form-control"> <select name="filter[project_id]" id="filter_project_id" class="form-control">
<option value="">Alle</option> <option value="">Alle</option>
@@ -43,16 +43,7 @@ $pagination_entity_name = "Zustimmungserklärungen";
</select> </select>
</div> </div>
<div class="col-1"> <div class="col-2">
<label class="form-label" for="filter_object_type">Objektart</label>
<select name="filter[object_type]" id="filter_object_type" class="form-control">
<option value="">Alle</option>
<option value="building" <?=(array_key_exists("object_type", $filter) && $filter["object_type"] == "building") ? "selected='selected'" : ""?>>Gebäude</option>
<option value="street" <?=(array_key_exists("object_type", $filter) && $filter["object_type"] == "street") ? "selected='selected'" : ""?>>Straße</option>
</select>
</div>
<div class="col-1">
<label class="form-label" for="filter_network">Netzgebiet</label> <label class="form-label" for="filter_network">Netzgebiet</label>
<select name="filter[network]" id="filter_network" class="form-control"> <select name="filter[network]" id="filter_network" class="form-control">
<option value="">Alle</option> <option value="">Alle</option>
@@ -70,6 +61,15 @@ $pagination_entity_name = "Zustimmungserklärungen";
</select> </select>
</div> </div>
<div class="col-1">
<label class="form-label" for="filter_object_type">Objektart</label>
<select name="filter[object_type]" id="filter_object_type" class="form-control">
<option value="">Alle</option>
<option value="building" <?=(array_key_exists("object_type", $filter) && $filter["object_type"] == "building") ? "selected='selected'" : ""?>>Gebäude</option>
<option value="street" <?=(array_key_exists("object_type", $filter) && $filter["object_type"] == "street") ? "selected='selected'" : ""?>>Straße</option>
</select>
</div>
<div class="col-1"> <div class="col-1">
<label class="form-label" for="filter_status_light">Ampelstatus</label> <label class="form-label" for="filter_status_light">Ampelstatus</label>
<select name="filter[status_light]" id="filter_status_light" class="form-control"> <select name="filter[status_light]" id="filter_status_light" class="form-control">
@@ -90,6 +90,36 @@ $pagination_entity_name = "Zustimmungserklärungen";
</select> </select>
</div> </div>
<div class="col-2">
<label class="form-label" for="filter_conduit_installed_building">Leerrohr im Gebäude</label>
<select name="filter[conduit_installed_building]" id="filter_conduit_installed_building" class="form-control">
<option value="">Alle</option>
<option value="!NULL" <?=(array_key_exists("conduit_installed_building", $filter) && $filter["conduit_installed_building"] == "!NULL") ? "selected='selected'" : ""?>>Ja</option>
<option value="NULL" <?=(array_key_exists("conduit_installed_building", $filter) && $filter["conduit_installed_building"] == "NULL") ? "selected='selected'" : ""?>>Nein</option>
</select>
</div>
<div class="col-2">
<label class="form-label" for="filter_conduit_installed_ftu">Leerrohr bis HAK</label>
<select name="filter[conduit_installed_ftu]" id="filter_conduit_installed_ftu" class="form-control">
<option value="">Alle</option>
<option value="!NULL" <?=(array_key_exists("conduit_installed_ftu", $filter) && $filter["conduit_installed_ftu"] == "!NULL") ? "selected='selected'" : ""?>>Ja</option>
<option value="NULL" <?=(array_key_exists("conduit_installed_ftu", $filter) && $filter["conduit_installed_ftu"] == "NULL") ? "selected='selected'" : ""?>>Nein</option>
</select>
</div>
</div>
<div class="row mt-2">
<div class="col-2">
<label class="form-label" for="filter_inhouse_cabling">Inhouse erledigt</label>
<select name="filter[inhouse_cabling]" id="filter_inhouse_cabling" class="form-control">
<option value="">Alle</option>
<option value="!NULL" <?=(array_key_exists("inhouse_cabling", $filter) && $filter["inhouse_cabling"] == "!NULL") ? "selected='selected'" : ""?>>Ja</option>
<option value="NULL" <?=(array_key_exists("inhouse_cabling", $filter) && $filter["inhouse_cabling"] == "NULL") ? "selected='selected'" : ""?>>Nein</option>
</select>
</div>
<div class="col-2"> <div class="col-2">
<label class="form-label" for="filter_address">Objektadresse</label> <label class="form-label" for="filter_address">Objektadresse</label>
<input type="text" class="form-control" name="filter[address]" id="filter_address" value="<?=(array_key_exists('address', $filter)) ? $filter['address'] : ""?>" /> <input type="text" class="form-control" name="filter[address]" id="filter_address" value="<?=(array_key_exists('address', $filter)) ? $filter['address'] : ""?>" />
@@ -100,9 +130,12 @@ $pagination_entity_name = "Zustimmungserklärungen";
<input type="text" class="form-control" name="filter[gst]" id=filter_gst value="<?=(array_key_exists('gst', $filter)) ? $filter['gst'] : ""?>" /> <input type="text" class="form-control" name="filter[gst]" id=filter_gst value="<?=(array_key_exists('gst', $filter)) ? $filter['gst'] : ""?>" />
</div> </div>
</div> </div>
<div class="row mt-2"> <div class="row mt-2">
<div class="col"> <div class="col">
<button type="submit" class="btn btn-primary"><i class="far fa-search fa-fw"></i> Filter anwenden</button> <button type="submit" class="btn btn-primary"><i class="far fa-search fa-fw"></i> Filter anwenden</button>
@@ -548,7 +548,7 @@ class ConstructionConsent extends mfBaseModel {
if(array_key_exists("network", $filter)) { if(array_key_exists("network", $filter)) {
$network = FronkDB::singleton()->escape($filter["network"]); $network = FronkDB::singleton()->escape($filter["network"]);
if($network) { if($network) {
$where .= " AND view_hausnummer.netzgebiet_id=$network"; $where .= " AND vh.netzgebiet_id=$network";
} }
} }
@@ -939,17 +939,25 @@ class ConstructionConsentController extends mfBaseController {
} }
private function generateStats($baseFilter = array()) { private function generateStats($baseFilter = array()) {
$allCount = ConstructionConsent::count(array_merge(array(), $baseFilter)); function getFilteredCount($wantedFilter, $filterValue, $baseFilter) {
$streetCount = ConstructionConsent::count(array_merge($baseFilter, array("object_type" => "street"))); if (!empty($baseFilter[$wantedFilter]) && $baseFilter[$wantedFilter] != $filterValue) {
$buildingCount = ConstructionConsent::count(array_merge($baseFilter, array("object_type" => "building"))); return 0;
$inspection_planner = ConstructionConsent::count(array_merge($baseFilter, array("inspection_planner" => "!NULL"))); } else {
$conduit_installed_building = ConstructionConsent::count(array_merge($baseFilter, array("conduit_installed_building" => "!NULL"))); return ConstructionConsent::count(array_merge($baseFilter, [$wantedFilter => $filterValue]));
$conduit_installed_ftu = ConstructionConsent::count(array_merge($baseFilter, array("conduit_installed_ftu" => "!NULL"))); }
$inhouse_cabling = ConstructionConsent::count(array_merge($baseFilter, array("inhouse_cabling" => "!NULL"))); }
$status_light_blue = ConstructionConsent::count(array_merge($baseFilter, array("status_light" => "blue")));
$status_light_red = ConstructionConsent::count(array_merge($baseFilter, array("status_light" => "red"))); $allCount = ConstructionConsent::count($baseFilter);
$status_light_yellow = ConstructionConsent::count(array_merge($baseFilter, array("status_light" => "yellow"))); $streetCount = getFilteredCount("object_type", "street", $baseFilter);
$status_light_green = ConstructionConsent::count(array_merge($baseFilter, array("status_light" => "green"))); $buildingCount = getFilteredCount("object_type", "building", $baseFilter);
$inspection_planner = getFilteredCount("inspection_planner", "!NULL", $baseFilter);
$conduit_installed_building = getFilteredCount("conduit_installed_building", "!NULL", $baseFilter);
$conduit_installed_ftu = getFilteredCount("conduit_installed_ftu", "!NULL", $baseFilter);
$inhouse_cabling = getFilteredCount("inhouse_cabling", "!NULL", $baseFilter);
$status_light_blue = getFilteredCount("status_light", "blue", $baseFilter);
$status_light_red = getFilteredCount("status_light", "red", $baseFilter);
$status_light_yellow = getFilteredCount("status_light", "yellow", $baseFilter);
$status_light_green = getFilteredCount("status_light", "green", $baseFilter);
return array( return array(
"all" => $allCount, "all" => $allCount,