瀏覽代碼

changing views in Admin Dashboard to only show orders with actions pending

Medowar 6 天之前
父節點
當前提交
708065d7aa
共有 3 個文件被更改,包括 25 次插入26 次删除
  1. 9 12
      admin/index.php
  2. 11 9
      docs/ADMIN_BUSINESS_LOGIC.md
  3. 5 5
      docs/SHOP_LOGIC.md

+ 9 - 12
admin/index.php

@@ -42,7 +42,10 @@ $recentOrders = array_values(array_filter($orders, function ($order) {
         return false;
     }
     foreach ($order['items'] as $item) {
-        if (empty($item['is_processed'])) {
+        if (!empty($item['is_processed'])) {
+            continue;
+        }
+        if (trim((string) ($item['backorder_status'] ?? '')) === '') {
             return true;
         }
     }
@@ -63,6 +66,9 @@ foreach ($orders as $order) {
         if (!empty($item['is_processed'])) {
             continue;
         }
+        if (trim((string) ($item['backorder_status'] ?? '')) !== '') {
+            continue;
+        }
         $outstandingItems[] = [
             'order_id' => $order['id'],
             'customer_name' => $order['customer_name'],
@@ -71,7 +77,6 @@ foreach ($orders as $order) {
             'product_name' => $item['product_name'],
             'size' => $item['size'],
             'availability_label' => $item['availability_label'],
-            'backorder_status' => $item['backorder_status'] ?? '',
         ];
     }
 }
@@ -137,10 +142,10 @@ include __DIR__ . '/../includes/header.php';
     </div>
 </div>
 
-<h3 class="section-title mt-4">Letzte offene Bestellungen</h3>
+<h3 class="section-title mt-4">Bestellungen mit Aktion erforderlich</h3>
 
 <?php if (empty($recentOrders)): ?>
-    <p>Keine offenen Bestellungen vorhanden.</p>
+    <p>Keine Bestellungen mit erforderlicher Aktion.</p>
 <?php else: ?>
     <div class="table-responsive">
         <table class="responsive-table">
@@ -195,7 +200,6 @@ include __DIR__ . '/../includes/header.php';
                     <th>Artikel</th>
                     <th>Größe</th>
                     <th>Lieferhinweis</th>
-                    <th>Nachbestellung</th>
                     <th>Erstellt</th>
                     <th>Aktionen</th>
                 </tr>
@@ -209,13 +213,6 @@ include __DIR__ . '/../includes/header.php';
                         <td data-label="Artikel"><?php echo escape($row['product_name']); ?></td>
                         <td data-label="Größe"><?php echo $row['size'] !== '' ? escape($row['size']) : '-'; ?></td>
                         <td data-label="Lieferhinweis"><?php echo $row['availability_label'] !== '' ? escape($row['availability_label']) : '-'; ?></td>
-                        <td data-label="Nachbestellung">
-                            <?php if (($row['backorder_status'] ?? '') !== ''): ?>
-                                <span class="status <?php echo escape(getBackorderStatusClass($row['backorder_status'])); ?>"><?php echo escape(getBackorderStatusLabel($row['backorder_status'])); ?></span>
-                            <?php else: ?>
-                                -
-                            <?php endif; ?>
-                        </td>
                         <td data-label="Erstellt"><?php echo escape(formatDate($row['created_at'])); ?></td>
                         <td data-label="Aktionen"><a href="order.php?id=<?php echo urlencode($row['order_id']); ?>" class="btn btn-small">Details</a></td>
                     </tr>

+ 11 - 9
docs/ADMIN_BUSINESS_LOGIC.md

@@ -106,12 +106,14 @@ Stornierte Bestellungen werden **nicht** automatisch aus Positionen neu berechne
 | **Storniert** | `status = cancelled` |
 | **Nachbestellung** | Summe aller Positionen in `to_be_backordered` oder `ordered` (inkl. manueller Nachbestellungen) |
 
-#### „Letzte offene Bestellungen" (max. 5)
+#### „Bestellungen mit Aktion erforderlich" (max. 5)
 
 Eine Bestellung erscheint hier nur, wenn:
 
 1. Das Anzeige-Label **Offen** oder **Teilweise bearbeitet** ist (nicht Bearbeitet, nicht Storniert), **und**
-2. Mindestens **eine Position** existiert, die **nicht** bearbeitet ist (unabhängig vom Nachbestell-Status).
+2. Mindestens **eine Position** existiert, die **nicht** bearbeitet ist **und keinen** Nachbestell-Status hat (`to_be_backordered` / `ordered`).
+
+Bestellungen, bei denen alle offenen Positionen nur noch Nachbestell-Status haben, erscheinen **nicht** (Weiterbearbeitung über **Nachbestellungen**).
 
 Spalte **Nachbestellung:** Zusammenfassung der Nachbestell-Status aller **offenen** Positionen (`-`, ein Status-Badge, oder **Gemischt**).
 
@@ -122,9 +124,9 @@ Sortierung: neueste zuerst.
 Eine Position erscheint hier nur, wenn:
 
 1. Die zugehörige Bestellung das Label **Offen** oder **Teilweise bearbeitet** hat, **und**
-2. Die Position **nicht** bearbeitet ist (auch mit Nachbestell-Status).
+2. Die Position **nicht** bearbeitet ist **und keinen** Nachbestell-Status hat.
 
-Spalte **Nachbestellung:** pro Zeile **Nachzubestellen**, **Wartet auf Lieferung** oder `-`.
+Positionen mit **Nachzubestellen** oder **Wartet auf Lieferung** erscheinen nur unter **Nachbestellungen**.
 
 Sortierung: **älteste zuerst** (FIFO-Arbeitsliste).
 
@@ -193,10 +195,10 @@ Manuelle Nachbestellungen können über ein Formular auf derselben Seite hinzuge
 
 Übersicht: Wo erscheint ein Zustand?
 
-| Zustand / Bedingung | Dashboard-Statistik | Letzte offene Bestellungen | Offene Positionen | Bestellliste-Filter | Bestelldetail | Nachbestellungen |
+| Zustand / Bedingung | Dashboard-Statistik | Aktion erforderlich | Offene Positionen | Bestellliste-Filter | Bestelldetail | Nachbestellungen |
 | --- | --- | --- | --- | --- | --- | --- |
-| **Offen** | Offen | Ja*, wenn offene Positionen ohne NB | Ja*, pro Position | Offen, Alle | Ja, bearbeitbar | Ja, wenn NB markiert |
-| **Teilweise bearbeitet** | Teilweise | Ja*, wenn offene Positionen ohne NB | Ja*, pro Position | Teilweise, Alle | Ja, bearbeitbar | Ja, wenn NB markiert |
+| **Offen** | Offen | Ja*, wenn offene Positionen ohne NB | Ja*, nur Positionen ohne NB | Offen, Alle | Ja, bearbeitbar | Ja, wenn NB markiert |
+| **Teilweise bearbeitet** | Teilweise | Ja*, wenn offene Positionen ohne NB | Ja*, nur Positionen ohne NB | Teilweise, Alle | Ja, bearbeitbar | Ja, wenn NB markiert |
 | **Bearbeitet** | Bearbeitet | — | — | Bearbeitet, Alle | Ja (nur Ansehen) | Ja, wenn NB markiert |
 | **Storniert** | Storniert | — | — | Storniert, Alle | Ja (Stornierung aufheben) | — |
 | Position **Nachzubestellen** | In NB-Statistik | Position ausgeblendet | Position ausgeblendet | Bestellung in Liste | Toggle auf Detail | Ja |
@@ -204,7 +206,7 @@ Manuelle Nachbestellungen können über ein Formular auf derselben Seite hinzuge
 | Nur NB-Positionen, Bestellung operativ **Offen** | Offen | — (keine qualif. Position) | — | Alle, Offen | Ja | Ja |
 | Manuelle Nachbestellung | In NB-Statistik | — | — | — | — | Ja |
 
-*NB = Nachbestell-Status. „Ja*" = nur wenn mindestens eine unverarbeitete Position **ohne** Nachbestell-Status existiert.
+*NB = Nachbestell-Status. „Ja*" = nur für unverarbeitete Positionen **ohne** Nachbestell-Status (Bestellungen: mindestens eine solche Position; Positionen: jede Zeile einzeln).
 
 ---
 
@@ -212,7 +214,7 @@ Manuelle Nachbestellungen können über ein Formular auf derselben Seite hinzuge
 
 ### 1. Neue Bestellung abarbeiten
 
-1. **Dashboard** → „Offene Positionen" oder „Letzte offene Bestellungen" prüfen.
+1. **Dashboard** → „Offene Positionen" oder „Bestellungen mit Aktion erforderlich" prüfen.
 2. **Details** öffnen.
 3. Pro Position **„Als bearbeitet markieren"**, sobald ausgegeben.
 4. Wenn alle Positionen bearbeitet: Status wechselt automatisch zu **Bearbeitet**.

+ 5 - 5
docs/SHOP_LOGIC.md

@@ -85,11 +85,11 @@ In Listen und auf dem Dashboard sehen Sie eines dieser Labels:
 - **Offen**, **Teilweise bearbeitet**, **Bearbeitet**, **Storniert** — Anzahl Bestellungen je Status
 - **Nachbestellung** — wie viele Positionen gerade nachbestellt werden oder auf Lieferung warten
 
-**„Letzte offene Bestellungen“**
+**„Bestellungen mit Aktion erforderlich“**
 
-- Zeigt bis zu 5 Bestellungen, die noch Arbeit brauchen
-- Nur Bestellungen mit mindestens einer **noch nicht ausgegebenen** Position
-- Positionen mit Nachbestell-Status zählen hier **nicht** — die bearbeiten Sie unter **Nachbestellungen**
+- Zeigt bis zu 5 Bestellungen, bei denen auf der Bestelldetailseite noch etwas zu tun ist (Ausgabe, Nachbestellung markieren usw.)
+- Nur Bestellungen mit mindestens einer **noch nicht ausgegebenen** Position **ohne** Nachbestell-Status
+- Liegen nur noch Positionen mit Nachbestell-Status offen, erscheint die Bestellung hier **nicht** — weiter unter **Nachbestellungen**
 
 **„Offene Positionen“**
 
@@ -142,7 +142,7 @@ Hier bearbeiten Sie **eine konkrete Bestellung**:
 
 ### Neue Bestellung ausgeben
 
-1. **Dashboard** → „Offene Positionen“ oder „Letzte offene Bestellungen“
+1. **Dashboard** → „Offene Positionen“ oder „Bestellungen mit Aktion erforderlich
 2. Bestellung öffnen (**Details**)
 3. Jede Position **„Als bearbeitet markieren"**, sobald der Artikel raus ist
 4. Sind alle Positionen erledigt, steht die Bestellung automatisch auf **Bearbeitet**