Added admin workorder filter in order and in network

This commit is contained in:
Frank Schubert
2021-11-16 23:07:12 +01:00
parent 075fe1532f
commit a2f454fc5c
6 changed files with 113 additions and 53 deletions

View File

@@ -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;
}
}
}