Added termination status filter to Order

This commit is contained in:
Frank Schubert
2021-09-14 23:24:33 +02:00
parent b450203b06
commit b6f3f94bce
5 changed files with 82 additions and 8 deletions

View File

@@ -52,12 +52,12 @@
</div>
<div class="col-2">
<label class="form-label" for="filter_status_id">Objektstatus</label>
<select name="filter[building_status_id]" id="filter_building_status_id" class="form-control">
<label class="form-label" for="filter_status_id">Anschlussstatus</label>
<select name="filter[termination_status]" id="filter_building_status_id" class="form-control">
<option></option>
<?php foreach(BuildingstatusModel::getAll() as $status): ?>
<option value="<?=$status->id?>" <?=($filter['building_status_id'] == $status->id) ? "selected='selected'" : ""?>><?=$status->code?> - <?=__($status->name."-b")?></option>
<?php endforeach; ?>
<option value="pipework_needed" <?=($filter['termination_status'] == "pipework_needed") ? "selected='selected'" : ""?>>Tiefbau ausständig</option>
<option value="building_connected" <?=($filter['termination_status'] == "building_connected") ? "selected='selected'" : ""?>>Tiefbau erledigt</option>
<option value="term_connected" <?=($filter['termination_status'] == "term_connected") ? "selected='selected'" : ""?>>Anschluss passiv erschlossen</option>
</select>
</div>

View File

@@ -36,7 +36,7 @@
<i class="fas fa-hard-hat"></i>Netzbau <div class="arrow-down"></div>
</a>
<ul class="submenu">
<?php if($me->is(["Admin","netowner","pipeplanner","lineplanner"])): ?><li><a href="<?=self::getUrl("Building")?>">Objekte & Anschlüsse</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","pipeplanner"])): ?><li><a href="<?=self::getUrl("Building")?>">Objekte & Anschlüsse</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","pipeplanner","pipeworker","lineplanner","lineworker"])): ?><li><a href="<?=self::getUrl("Pipework")?>">Tiefbau</a></li><?php endif; ?>
<?php if($me->is(["Admin","netowner","lineplanner","lineworker"])): ?><li><a href="<?=self::getUrl("Linework")?>">Leitungsbau</a></li><?php endif; ?>
</ul>

View File

@@ -129,6 +129,20 @@ class OrderController extends mfBaseController {
}
}
if(array_key_exists("termination_status", $filter)) {
$status = $filter['termination_status'];
if($status == "term_connected") {
$new_filter["termination_status_code"] = ">=".TT_TERMSTATUS_CONNECTED;
}
if($status == "building_connected") {
$new_filter["building_status_code"] = ">=".TT_BUILDINGSTATUS_CONNECTED;
}
if($status == "pipework_needed") {
$new_filter["building_status_code"] = "<".TT_BUILDINGSTATUS_CONNECTED;
}
}
foreach($filter as $name => $value) {
$new_filter[$name] = $value;
}

View File

@@ -149,6 +149,8 @@ class OrderModel {
LEFT JOIN Product ON (Product.id = OrderProduct.product_id)
LEFT JOIN Termination ON (Termination.id = OrderProduct.termination_id)
LEFT JOIN Building ON (Building.id = Termination.building_id)
LEFT JOIN Terminationstatus ON (Terminationstatus.id = Termination.status_id)
LEFT JOIN Buildingstatus ON (Buildingstatus.id = Building.status_id)
WHERE $where
GROUP BY `Order`.id)
as o";
@@ -177,6 +179,9 @@ class OrderModel {
LEFT JOIN Product ON (Product.id = OrderProduct.product_id)
LEFT JOIN Termination ON (Termination.id = OrderProduct.termination_id)
LEFT JOIN Building ON (Building.id = Termination.building_id)
LEFT JOIN Terminationstatus ON (Terminationstatus.id = Termination.status_id)
LEFT JOIN Buildingstatus ON (Buildingstatus.id = Building.status_id)
WHERE $where
GROUP BY `Order`.id
ORDER BY `Order`.order_date ASC";
@@ -284,6 +289,60 @@ class OrderModel {
$where .= " AND Building.street LIKE '%$street%'";
}
}
var_dump($filter['building_status_code']);
if(array_key_exists("building_status_code", $filter)) {
if(in_array(substr($filter['building_status_code'], 0, 2), ["<=", ">="])) {
$op = substr($filter['building_status_code'], 0, 2);
$status = substr($filter['building_status_code'], 2);
} elseif(in_array(substr($filter['building_status_code'], 0, 1), ["<", ">"])) {
$op = substr($filter['building_status_code'], 0, 1);
$status = substr($filter['building_status_code'], 1);
} else {
$op = "=";
$status = $filter['building_status_code'];
}
//var_dump($op, $status);exit;
if(is_numeric($status)) {
$where .= " AND Buildingstatus.code $op $status";
} else {
// get code of statusname
$code = BuildingstatusModel::getOne(["name" => $status]);
if($code) {
$status = FronkDB::singleton()->escape($status);
$where .= " AND Buildingstatus.code $op '$status'";
}
}
}
//var_dump($filter['termination_status_code']);
if(array_key_exists("termination_status_code", $filter)) {
if(in_array(substr($filter['termination_status_code'], 0, 2), ["<=", ">="])) {
$op = substr($filter['termination_status_code'], 0, 2);
$status = substr($filter['termination_status_code'], 2);
} elseif(in_array(substr($filter['termination_status_code'], 0, 1), ["<", ">"])) {
$op = substr($filter['termination_status_code'], 0, 1);
$status = substr($filter['termination_status_code'], 1);
} else {
$op = "=";
$status = $filter['termination_status_code'];
}
//var_dump($op, $status);exit;
if(is_numeric($status)) {
$where .= " AND Terminationstatus.code $op $status";
} else {
// get code of statusname
$code = TerminationstatusModel::getOne(["name" => $status]);
if($code) {
$status = FronkDB::singleton()->escape($status);
$where .= " AND Terminationstatus.code $op '$status'";
}
}
}
//var_dump($filter, $where);exit;
return $where;

View File

@@ -9,14 +9,15 @@ class PipeworkController extends mfBaseController {
$this->me = $me;
$this->layout()->set("me",$me);
if(!$me->is(["Admin", "netowner", "pipeplanner", "pipeworker"])) {
if(!$me->is(["Admin", "netowner", "pipeplanner", "pipeworker", "lineplanner", "lineworker"])) {
$this->redirect("Dashboard");
}
}
protected function indexAction() {
$this->layout()->setTemplate("Pipework/Index");
$filter = [];
$this->layout->set("filter", $this->request->filter);
if($this->request->filter) {
$filter = $this->getPreparedFilter($this->request->filter);