made lonely orders its own page, navigatable by tabs

This commit is contained in:
Frank Schubert
2022-05-18 16:59:16 +02:00
parent e0551d35fa
commit 074edeead7
2 changed files with 62 additions and 33 deletions

View File

@@ -42,7 +42,7 @@
<div class="card-body mb-3">
<h4 class="header-title mb-3">Filter</h4>
<form method="get" action="<?=self::getUrl("Order")?>">
<form method="get" action="<?=($showLonelies) ? self::getUrl("Order","Index", ["noTermProducts" => 1]) : self::getUrl("Order")?>">
<div class="row">
<div class="col-2">
@@ -131,13 +131,21 @@
</div>
</div>
<?php if(is_array($lonelyOrders) && count($lonelyOrders)): ?>
<ul class="nav nav-tabs ml-1 border-0" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link <?=(!$showLonelies) ? "active" : ""?>" href="<?=self::getUrl("Order", "Index", ["filter" => $filter])?>">Bestellungen mit Anschluss</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link <?=($showLonelies) ? "active" : ""?>" href="<?=self::getUrl("Order", "Index", ["noTermProducts" => 1, "filter" => $filter])?>">Bestellungen ohne Anschluss</a>
</li>
</ul>
<?php if($showLonelies): ?>
<div class="card">
<div class="card-body mb-3">
<div class="float-left">
<h4 class="header-title">Bestellungen ohne Anschluss</h4>
</div>
<h4 class="header-title">Bestellungen ohne Anschluss</h4>
<?php if(is_array($lonelyOrders) && count($lonelyOrders)): ?>
<table class="table">
<tr>
<th></th>
@@ -518,10 +526,14 @@
<?php $order_count++; ?>
<?php endforeach; ?>
</table>
<?php else: ?>
<i>Keine anschlusslosen Bestellungen zu den Suchkriterien gefunden</i>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php else: ?>
<div class="card">
<div class="card-body mb-3">
<div class="row">
@@ -959,6 +971,7 @@
</div>
</div>
<?php endif; ?>
</div>
</div>

View File

@@ -46,6 +46,13 @@ class OrderController extends mfBaseController {
if(is_numeric($this->request->s)) {
$pagination['start'] = intval($this->request->s);
}
$showLonelies = false;
if($this->request->noTermProducts) {
$showLonelies = true;
}
$my_networks = [];
@@ -104,36 +111,42 @@ 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)) {
$orders[$order->id] = $order;
if(!$showLonelies) {
//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)) {
$orders[$order->id] = $order;
}
}
}
$userIds = $this->me->getAddressOrParent()->getUserIds();
//var_dump($userIds);exit;
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']) {
if($showLonelies) {
$userIds = $this->me->getAddressOrParent()->getUserIds();
//var_dump($userIds);exit;
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);
}
} else {
$order_search['create_by'] = $userIds;
//var_dump($order_search);exit;
$lonelies = OrderModel::search($order_search);
}
} else {
$order_search['create_by'] = $userIds;
//var_dump($order_search);exit;
$lonelies = OrderModel::search($order_search);
}
foreach($lonelies as $order) {
if(!array_key_exists($order->id, $orders)) {
$lonelyOrders[$order->id] = $order;
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;
@@ -170,16 +183,19 @@ class OrderController extends mfBaseController {
//$lonelyOrders[$order->id] = $order;
}
}
$this->layout()->set("lonelyOrders", $lonelyOrders);
}
$this->layout()->set("showLonelies", $showLonelies);
$this->layout()->set("orders", $orders);
$this->layout()->set("pagination", $pagination);
}
private function getPreparedFilter($filter) {
$new_filter = [];