Added waiting status to Orders

This commit is contained in:
Frank Schubert
2022-03-08 20:24:39 +01:00
parent ab3601391d
commit 2fdbb10142
3 changed files with 61 additions and 3 deletions

View File

@@ -104,6 +104,7 @@
<option></option>
<option value="0" <?=( (!array_key_exists("finish_date", $filter) || $filter["finish_date"] != "1") ? 'selected="selected"' : "")?>>Offen</option>
<option value="1" <?=($filter["finish_date"] == "1" ? 'selected="selected"' : "")?>>Fertiggestellt</option>
<option value="waiting" <?=($filter["finish_date"] == "waiting") ? 'selected="selected"' : ""?>>Wartend / ausgeblendet</option>
</select>
</div>
@@ -200,6 +201,11 @@
<td onclick="toggleOrder(<?=$order->id?>)" class="text-monospace"><?=date("d.m.Y", $order->edit)?></td>
<td onclick="toggleOrder(<?=$order->id?>)" class="text-monospace"><?=$order->editor->name?></td>
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
<?php if($order->waiting == 1): ?>
<a href="<?=self::getUrl("Order", "setwaiting", ["id" => $order->id, "unset" => "1", "filter" => $filter, "s" => $pagination['start']])?>"><i class="fas fa-eye-slash" title="Einblenden"></i></a>
<?php else: ?>
<a href="<?=self::getUrl("Order", "setwaiting", ["id" => $order->id, "filter" => $filter, "s" => $pagination['start']])?>"><i class="fas fa-eye-slash text-muted" title="Ausblenden / auf wartend stellen"></i></a>
<?php endif; ?>
<a href="<?=self::getUrl("Order", "downloadServicePin", ["id" => $order->id])?>"><i class="fas fa-file-alt" title="Service PIN als PDF herunterladen"></i></a>
<a href="<?=self::getUrl("Order", "sendServicePin", ["id" => $order->id])?>" onclick="if(!confirm('Soll der Service-PIN an den Vertragsinhaber gesendet werden?')) return false;"><i class="fas fa-paper-plane" title="Service PIN als PDF per Email an Vertragsinhaber"></i></a>
<a href="<?=self::getUrl("Order", "edit", ["id" => $order->id])?>"><i class="far fa-edit" title="Bearbeiten"></i></a>
@@ -635,6 +641,11 @@
<td onclick="toggleOrder(<?=$order->id?>)" class="text-monospace"><?=date("d.m.Y", $order->edit)?></td>
<td onclick="toggleOrder(<?=$order->id?>)" class="text-monospace"><?=$order->editor->name?></td>
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
<?php if($order->waiting == 1): ?>
<a href="<?=self::getUrl("Order", "setwaiting", ["id" => $order->id, "waiting" => "false", "filter" => $filter, "s" => $pagination['start']])?>"><i class="fas fa-eye-slash" title="Einblenden"></i></a>
<?php else: ?>
<a href="<?=self::getUrl("Order", "setwaiting", ["id" => $order->id, "filter" => $filter, "s" => $pagination['start']])?>"><i class="fas fa-eye-slash text-muted" title="Ausblenden / auf wartend stellen"></i></a>
<?php endif; ?>
<a href="<?=self::getUrl("Order", "downloadServicePin", ["id" => $order->id])?>"><i class="fas fa-file-alt" title="Service PIN als PDF herunterladen"></i></a>
<a href="<?=self::getUrl("Order", "sendServicePin", ["id" => $order->id])?>" onclick="if(!confirm('Soll der Service-PIN an den Vertragsinhaber gesendet werden?')) return false;"><i class="fas fa-paper-plane" title="Service PIN als PDF per Email an Vertragsinhaber"></i></a>
<a href="<?=self::getUrl("Order", "edit", ["id" => $order->id])?>"><i class="far fa-edit" title="Bearbeiten"></i></a>

View File

@@ -215,12 +215,19 @@ class OrderController extends mfBaseController {
}
if(array_key_exists("finished", $filter)) {
if($filter["finished"] == "1") {
if(array_key_exists("finish_date", $filter)) {
if($filter["finish_date"] == "1") {
$new_filter["finish_date"] = true;
} else {
$new_filter["finish_date"] = false;
}
if($filter["finish_date"] == "waiting") {
$new_filter["finish_date"] = false;
$new_filter["waiting"] = true;
unset($filter['finish_date']);
}
}
//var_dump($new_filter);exit;
@@ -229,8 +236,9 @@ class OrderController extends mfBaseController {
}
} else {
$new_filter["finish_date"] = false;
$new_filter["waiting"] = false;
}
//var_dump($new_filter);exit;
return $new_filter;
}
@@ -292,6 +300,37 @@ class OrderController extends mfBaseController {
return $this->addAction();
}
protected function setwaitingAction() {
$order_id = $this->request->id;
$order = new Order($order_id);
if(!$order->id) {
$this->layout()->setFlash("Bestellung nicht gefunden.", "error");
$this->redirect("Order");
}
//var_dump($this->request);exit;
if($this->request->unset == "1" && $order->waiting == 1) {
$order->waiting = 0;
$order->save();
} elseif(!$this->request->unset && $order->waiting == 0) {
$order->waiting = 1;
$order->save();
}
$sq = "";
$query = [];
if(is_numeric($this->request->s) && $this->request->s > 0) {
$query["s"] = $this->request->s;
}
if (is_array($this->request->filter)) {
$query["filter"] = $this->request->filter;
}
$qs = http_build_query($query);
$this->layout()->setFlash("Wartestatus erfolgreich gespeichert", "success");
$this->redirect("Order","Index", $qs);
}
protected function saveAction() {
$r = $this->request;
//var_dump($r->products);

View File

@@ -279,6 +279,14 @@ class OrderModel {
}
}
if(array_key_exists("waiting", $filter)) {
if($filter['waiting'] == 1) {
$where .= " AND `Order`.waiting = 1";
} else {
$where .= " AND `Order`.waiting = 0";
}
}
if(array_key_exists("name", $filter)) {
$name = FronkDB::singleton()->escape($filter['name']);
if($name) {