+
diff --git a/application/Network/NetworkController.php b/application/Network/NetworkController.php
index dee0b6e9a..3d481889e 100644
--- a/application/Network/NetworkController.php
+++ b/application/Network/NetworkController.php
@@ -76,6 +76,12 @@ class NetworkController extends mfBaseController {
$data['name'] = $r->name;
$data['note'] = $r->note;
+ if($r->sytemowner_action_status) {
+ $data['sytemowner_action_status'] = $r->sytemowner_action_status;
+ } else {
+ $data['sytemowner_action_status'] = null;
+ }
+
$data['edit_by'] = 1;
if($mode == "add") {
diff --git a/application/Network/NetworkModel.php b/application/Network/NetworkModel.php
index 3cce3dab7..7f5b6a495 100644
--- a/application/Network/NetworkModel.php
+++ b/application/Network/NetworkModel.php
@@ -3,6 +3,7 @@
class NetworkModel {
public $name = null;
public $owner_id = null;
+ public $sytemowner_action_status = null;
public $note = null;
public $create_by = null;
diff --git a/application/Order/OrderController.php b/application/Order/OrderController.php
index af07858c6..6f8d73f30 100644
--- a/application/Order/OrderController.php
+++ b/application/Order/OrderController.php
@@ -103,7 +103,7 @@ class OrderController extends mfBaseController {
$order_search[$name] = $value;
}
}
-
+ //var_dump($order_search);exit;
$pagination['maxItems'] = OrderModel::count($order_search);
foreach(OrderModel::search($order_search, $pagination) as $order) {
if(!array_key_exists($order->id, $orders)) {
@@ -111,65 +111,67 @@ class OrderController extends mfBaseController {
}
}
-
- $lonelyOrders = [];
- unset($order_search["network_id"]);
- $order_search['product_id'] = null;
- // orders without a product
- if($this->me->isAdmin()) {
- if(!$this->request->filter['network_id']) {
- $lonelies = OrderModel::search($order_search);
- }
- } else {
- $order_search['create_by'] = $this->me->id;
- $lonelies = OrderModel::search($order_search);
- }
- foreach($lonelies as $order) {
- if(!array_key_exists($order->id, $orders)) {
- $lonelyOrders[$order->id] = $order;
- }
- }
-
- // orders with termination product not requiring termination_id
- $order_search['product_id'] = ">0";
- $order_search['termination_id'] = null;
- if($this->me->isAdmin()) {
- if(!$this->request->filter['network_id']) {
- $lonelies = OrderModel::search($order_search);
- }
- } else {
- $order_search['create_by'] = $this->me->id;
- $lonelies = OrderModel::search($order_search);
- }
- foreach($lonelies as $order) {
- if(!array_key_exists($order->id, $orders)) {
- $o = new Order($order->id);
- $add = true;
- foreach($o->products as $p) {
- $attribs = $p->product->attributes;
- if(is_array($attribs) && count($attribs)) {
- if(array_key_exists(TT_ATTRIB_TERMINATION_REQUIRED_NAME, $attribs)
- && $attribs[TT_ATTRIB_TERMINATION_REQUIRED_NAME]->value == 1) {
- //$this->log->debug("found additional order where termination_required 0");
- //$lonelyOrders[$order->id] = $order;
- $add = false;
- break;
- }
- } else {
- $add = true;
- }
+ if(!array_key_exists("network_linked_status", $order_search)) {
+ $lonelyOrders = [];
+ unset($order_search["network_id"]);
+ $order_search['product_id'] = null;
+ // orders without a product
+ if($this->me->isAdmin()) {
+ if(!$this->request->filter['network_id']) {
+ $lonelies = OrderModel::search($order_search);
}
- if($add) {
+ } else {
+ $order_search['create_by'] = $this->me->id;
+ $lonelies = OrderModel::search($order_search);
+ }
+ foreach($lonelies as $order) {
+ if(!array_key_exists($order->id, $orders)) {
$lonelyOrders[$order->id] = $order;
}
-
- //$lonelyOrders[$order->id] = $order;
}
+
+ // orders with termination product not requiring termination_id
+ $order_search['product_id'] = ">0";
+ $order_search['termination_id'] = null;
+ if($this->me->isAdmin()) {
+ if(!$this->request->filter['network_id']) {
+ $lonelies = OrderModel::search($order_search);
+ }
+ } else {
+ $order_search['create_by'] = $this->me->id;
+ $lonelies = OrderModel::search($order_search);
+ }
+ foreach($lonelies as $order) {
+ if(!array_key_exists($order->id, $orders)) {
+ $o = new Order($order->id);
+ $add = true;
+ foreach($o->products as $p) {
+ $attribs = $p->product->attributes;
+ if(is_array($attribs) && count($attribs)) {
+ if(array_key_exists(TT_ATTRIB_TERMINATION_REQUIRED_NAME, $attribs)
+ && $attribs[TT_ATTRIB_TERMINATION_REQUIRED_NAME]->value == 1) {
+ //$this->log->debug("found additional order where termination_required 0");
+ //$lonelyOrders[$order->id] = $order;
+ $add = false;
+ break;
+ }
+ } else {
+ $add = true;
+ }
+ }
+ if($add) {
+ $lonelyOrders[$order->id] = $order;
+ }
+
+ //$lonelyOrders[$order->id] = $order;
+ }
+ }
+
+ $this->layout()->set("lonelyOrders", $lonelyOrders);
}
$this->layout()->set("orders", $orders);
- $this->layout()->set("lonelyOrders", $lonelyOrders);
$this->layout()->set("pagination", $pagination);
}
@@ -192,9 +194,18 @@ class OrderController extends mfBaseController {
}
if($status == "building_connected") {
$new_filter["building_status_code"] = ">=".TT_BUILDINGSTATUS_CONNECTED;
+ $new_filter["termination_status_code"] = "<".TT_TERMSTATUS_CONNECTED;
}
if($status == "pipework_needed") {
$new_filter["building_status_code"] = "<".TT_BUILDINGSTATUS_CONNECTED;
+ $new_filter["termination_status_code"] = "<".TT_TERMSTATUS_CONNECTED;
+ }
+
+ if($status == "systemowner_action_status" && $this->me->is("Admin")) {
+ $new_filter['network_linked_status'] = [];
+ foreach(NetworkModel::getAll() as $network) {
+ $new_filter['network_linked_status'][$network->id] = $network->sytemowner_action_status;
+ }
}
}
diff --git a/application/Order/OrderModel.php b/application/Order/OrderModel.php
index ed2d062e5..436be8383 100644
--- a/application/Order/OrderModel.php
+++ b/application/Order/OrderModel.php
@@ -319,7 +319,34 @@ class OrderModel {
if(is_numeric($network_id)) {
$where .= " AND Building.network_id=$network_id";
} elseif(is_array($network_id)) {
- $where .= " AND Building.network_id IN (". implode(",", $network_id).")";
+ //var_dump($filter);exit;
+ //var_dump($network_id);exit;
+ if(array_key_exists("network_linked_status", $filter)) {
+ $status_parts = [];
+ foreach($network_id as $net_id) {
+ if(!is_numeric($net_id)) {
+ continue;
+ }
+ if(array_key_exists($net_id, $filter['network_linked_status'])) {
+ if($filter['network_linked_status'][$net_id] == "term_connected") {
+ $status_parts[] = "(Building.network_id = $net_id AND Terminationstatus.code >= ".TT_TERMSTATUS_CONNECTED.")";
+ }
+ if($filter['network_linked_status'][$net_id] == "building_connected") {
+ $status_parts[] = "(Building.network_id = $net_id AND Buildingstatus.code >= ".TT_BUILDINGSTATUS_CONNECTED.")";
+ }
+ if($filter['network_linked_status'][$net_id] == "pipework_needed") {
+ $status_parts[] = "(Building.network_id = $net_id AND Buildingstatus.code <= ".TT_BUILDINGSTATUS_CONNECTED.")";
+ }
+ }
+ }
+ if(count($status_parts)) {
+ $where .= " AND (".implode(" OR ", $status_parts).")";
+ }
+ } else {
+ // just search for networks
+ $where .= " AND Building.network_id IN (". implode(",", $network_id).")";
+ }
+
}
}