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
+14
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;
}
+59
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;
+3 -2
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);