Added admin workorder filter in order and in network
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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).")";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user