Merge branch 'const-consent-add-filter' into 'master'
ConstructionConsent added new Filters See merge request fronk/thetool!1041
This commit is contained in:
@@ -43,7 +43,7 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<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>
|
||||
@@ -52,7 +52,7 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<div class="col-1">
|
||||
<label class="form-label" for="filter_network">Netzgebiet</label>
|
||||
<select name="filter[network]" id="filter_network" class="form-control">
|
||||
<option value="">Alle</option>
|
||||
@@ -70,6 +70,26 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-1">
|
||||
<label class="form-label" for="filter_status_light">Ampelstatus</label>
|
||||
<select name="filter[status_light]" id="filter_status_light" class="form-control">
|
||||
<option value="">Alle</option>
|
||||
<option value="blue" <?=(array_key_exists("status_light", $filter) && $filter["status_light"] == "blue") ? "selected='selected'" : ""?>>Blau</option>
|
||||
<option value="green" <?=(array_key_exists("status_light", $filter) && $filter["status_light"] == "green") ? "selected='selected'" : ""?>>Grün</option>
|
||||
<option value="yellow" <?=(array_key_exists("status_light", $filter) && $filter["status_light"] == "yellow") ? "selected='selected'" : ""?>>Gelb</option>
|
||||
<option value="red" <?=(array_key_exists("status_light", $filter) && $filter["status_light"] == "red") ? "selected='selected'" : ""?>>Rot</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-1">
|
||||
<label class="form-label" for="filter_inspection_planner">Begehung Planer</label>
|
||||
<select name="filter[inspection_planner]" id="filter_inspection_planner" class="form-control">
|
||||
<option value="">Alle</option>
|
||||
<option value="!NULL" <?=(array_key_exists("inspection_planner", $filter) && $filter["inspection_planner"] == "!NULL") ? "selected='selected'" : ""?>>Ja</option>
|
||||
<option value="NULL" <?=(array_key_exists("inspection_planner", $filter) && $filter["inspection_planner"] == "NULL") ? "selected='selected'" : ""?>>Nein</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<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'] : ""?>" />
|
||||
@@ -89,6 +109,9 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
// if results are more than 0
|
||||
if (count($items) > 0) : ?>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<button class="btn btn-primary collapsed"
|
||||
@@ -179,6 +202,7 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
|
||||
@@ -154,7 +154,7 @@ class ConstructionConsent extends mfBaseModel {
|
||||
}
|
||||
return $this->adb_hausnummer;
|
||||
}
|
||||
|
||||
|
||||
if($name == "adb_strasse") {
|
||||
if(!$this->adb_strasse_id) return null;
|
||||
$strasse = new ADBStrasse($this->adb_strasse_id);
|
||||
@@ -307,7 +307,7 @@ class ConstructionConsent extends mfBaseModel {
|
||||
|
||||
return $this->$name;
|
||||
}
|
||||
|
||||
|
||||
/********************************
|
||||
* Begin static Model functions
|
||||
*/
|
||||
@@ -339,7 +339,7 @@ class ConstructionConsent extends mfBaseModel {
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
|
||||
public static function getAll() {
|
||||
$items = [];
|
||||
|
||||
@@ -377,37 +377,46 @@ class ConstructionConsent extends mfBaseModel {
|
||||
}
|
||||
|
||||
public static function count($filter) {
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT COUNT(*) as cnt FROM ConstructionConsent
|
||||
LEFT JOIN ".ADDRESSDB_DBNAME.".view_hausnummer ON (ConstructionConsent.adb_hausnummer_id = view_hausnummer.hausnummer_id)
|
||||
WHERE $where";
|
||||
|
||||
//mfLoghandler::singleton()->debug($sql);
|
||||
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
return $data->cnt;
|
||||
}
|
||||
return 0;
|
||||
return self::search($filter, false, false, true);
|
||||
}
|
||||
|
||||
public static function search($filter, $limit = false, $order = false) {
|
||||
//var_dump($filter);exit;
|
||||
public static function search($filter, $limit = false, $order = false, $returnCount = false) {
|
||||
$items = [];
|
||||
|
||||
if(!$order) {
|
||||
$order = "adb_hausnummer_id ASC";
|
||||
}
|
||||
$having = '';
|
||||
if(array_key_exists("status_light", $filter) && strlen(trim($filter['status_light'])) > 2) {
|
||||
$having = " HAVING status_light = '".$filter['status_light']."'";
|
||||
}
|
||||
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT * FROM ConstructionConsent
|
||||
LEFT JOIN ".ADDRESSDB_DBNAME.".view_hausnummer ON (ConstructionConsent.adb_hausnummer_id = view_hausnummer.hausnummer_id)
|
||||
$sql = "SELECT
|
||||
ConstructionConsent.*,
|
||||
COALESCE(SUM(cwo.result = 'denied'), 0) AS denied_count,
|
||||
COALESCE(SUM(cwo.result = 'unresolvable'), 0) AS unresolvable_count,
|
||||
COALESCE(SUM(cwo.result = 'moved'), 0) AS moved_count,
|
||||
COALESCE(SUM(cwo.result = 'accepted'), 0) AS accepted_count,
|
||||
COUNT(cwo.id) AS total_owners,
|
||||
CASE
|
||||
WHEN COALESCE(SUM(cwo.result = 'denied'), 0) > 0 THEN 'red'
|
||||
WHEN COALESCE(SUM(cwo.result = 'unresolvable'), 0) > 0
|
||||
OR COALESCE(SUM(cwo.result = 'moved'), 0) > 0 THEN 'yellow'
|
||||
WHEN COALESCE(SUM(cwo.result = 'accepted'), 0) = COUNT(cwo.id)
|
||||
AND COUNT(cwo.id) > 0 THEN 'green'
|
||||
ELSE 'blue'
|
||||
END AS status_light
|
||||
FROM ConstructionConsent
|
||||
LEFT JOIN ConstructionConsentOwner cwo
|
||||
ON ConstructionConsent.id = cwo.constructionconsent_id
|
||||
LEFT JOIN addressdb.view_hausnummer vh
|
||||
ON ConstructionConsent.adb_hausnummer_id = vh.hausnummer_id
|
||||
WHERE $where
|
||||
GROUP BY ConstructionConsent.id
|
||||
$having
|
||||
ORDER BY $order";
|
||||
|
||||
if(is_array($limit) && count($limit)) {
|
||||
@@ -418,16 +427,15 @@ class ConstructionConsent extends mfBaseModel {
|
||||
}
|
||||
}
|
||||
|
||||
mfLoghandler::singleton()->debug($sql);
|
||||
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
if ($returnCount) return $db->num_rows($res);
|
||||
while($data = $db->fetch_object($res)) {
|
||||
$items[$data->id] = new ConstructionConsent($data);
|
||||
}
|
||||
}
|
||||
|
||||
return $items;
|
||||
return $returnCount ? 0 : $items;
|
||||
}
|
||||
|
||||
private static function getSqlFilter($filter) {
|
||||
@@ -439,7 +447,7 @@ class ConstructionConsent extends mfBaseModel {
|
||||
$where .= " AND ConstructionConsent.constructionconsentproject_id=$project_id";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(array_key_exists("constructionconsentproject_id", $filter)) {
|
||||
$constructionconsentproject_id = $filter['constructionconsentproject_id'];
|
||||
if(is_numeric($constructionconsentproject_id)) {
|
||||
@@ -481,14 +489,14 @@ class ConstructionConsent extends mfBaseModel {
|
||||
$where .= " AND status='$status'";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(array_key_exists("result", $filter)) {
|
||||
$result = FronkDB::singleton()->escape($filter["result"]);
|
||||
if($result) {
|
||||
$where .= " AND result='$result'";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(array_key_exists("owner_name", $filter)) {
|
||||
$owner_name = FronkDB::singleton()->escape($filter["owner_name"]);
|
||||
if($owner_name) {
|
||||
|
||||
Reference in New Issue
Block a user