Added admin workorder filter in order and in network
This commit is contained in:
@@ -49,7 +49,20 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="sytemowner_action_status">Workorder Filter (Admins)</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="select2 form-control " name="sytemowner_action_status" id="sytemowner_action_status">
|
||||
<option></option>
|
||||
<option value="pipework_needed" <?=($network->sytemowner_action_status == "pipework_needed") ? "selected='selected'" : ""?>>Tiefbau ausständig</option>
|
||||
<option value="building_connected" <?=($network->sytemowner_action_status == "building_connected") ? "selected='selected'" : ""?>>Tiefbau erledigt</option>
|
||||
<option value="term_connected" <?=($network->sytemowner_action_status == "term_connected") ? "selected='selected'" : ""?>>Anschluss passiv erschlossen</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
<form method="get" action="<?=self::getUrl("Order")?>">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-1">
|
||||
<label class="form-label" for="filter_network_id">Netzgebiet</label>
|
||||
<select name="filter[network_id]" id="filter_network_id" class="form-control">
|
||||
@@ -58,6 +59,7 @@
|
||||
<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>
|
||||
<?php if($me->is("Admin")): ?><option value="systemowner_action_status" <?=($filter['termination_status'] == "systemowner_action_status") ? "selected='selected'" : ""?>>Admin Workorder</option><?php endif; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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