Warenwirtschaft: AP-33 (Bestell-Abwicklung: Nav „Bestellungen" + Fulfillment-Board) geplant

Kundenanforderung 16.07.2026 als AP-33a/b/c in Plan §4 aufgenommen:
Abwicklungs-Board (Konfektionierung, Dokumente, Versand-Klick), Sammel-PDFs
(Lieferscheine/Rechnungen/Etiketten), Etiketten-Integration mit AP-32;
Klärungspunkte für den Kunden dokumentiert, Roadmap neu nummeriert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-16 10:12:41 +00:00
parent c0476ebe24
commit 425b2a09e0

View file

@ -110,11 +110,13 @@ Alle Punkte dieser älteren Runde sind in V4.0 eingeflossen und umgesetzt (URL-F
| 8 | ✅ AP-27 | Wareneingang: Chargen-Merge — **erledigt 06.07.2026** | OPT-4 | 1–2 Tage |
| 9 | ✅ AP-28 | Neue Produktions-Maske + Produktionsergebnis — **erledigt 06.07.2026** | AP-21, AP-23, AP-24, AP-27 | 5–8 Tage |
| 10 | ✅ AP-13 | Shop-Bestandsabzug bei Versand (inkl. Sets) + API-Bestellungen-Protokoll — **erledigt 16.07.2026** | AP-28 (saubere Buchungslogik) ✅ | 3–5 Tage |
| 11 | 🆕 AP-32 | Versand im System: DHL-Etiketten per API (Kundenanforderung 15.07.2026, Ansatz §4) | AP-13 sinnvoll davor/gemeinsam (gleicher Andockpunkt) | 3–5 Tage |
| 12 | ⏸ AP-14 | Audit-Trail — nachgelagert | – | 2–3 Tage |
| 13 | ⏸ AP-16 | 2FA für Admins (Google Authenticator) — nachgelagert | – | 2–3 Tage |
| 14 | ⏸ AP-15 | Blockbasierte Rechte (sehen/bearbeiten je Block) — nachgelagert | AP-16 sinnvoll davor | 4–6 Tage |
| 15 | ⏸ AP-17 | WaWi-Einstellungsseite (Schwellwerte, Fenster, Defaults) — nachgelagert | – | 1–2 Tage |
| 11 | 🆕 AP-33a | Bestell-Abwicklung: Nav „Bestellungen" + Fulfillment-Board (Kundenanforderung 16.07.2026, Plan §4) | AP-13 ✅ | 2–3 Tage |
| 12 | 🆕 AP-32 | Versand im System: DHL-Etiketten per API (Kundenanforderung 15.07.2026, Ansatz §4) | Kundenantworten (DHL-Konto, Versandprodukte, Druck) | 3–5 Tage |
| 13 | 🆕 AP-33b/c | Sammel-Dokumente (Lieferscheine/Rechnungen als ein PDF) + Etiketten-Stapel/Automatik-Option | AP-33a; c: AP-32 | 2–3 Tage |
| 14 | ⏸ AP-14 | Audit-Trail — nachgelagert | – | 2–3 Tage |
| 15 | ⏸ AP-16 | 2FA für Admins (Google Authenticator) — nachgelagert | – | 2–3 Tage |
| 16 | ⏸ AP-15 | Blockbasierte Rechte (sehen/bearbeiten je Block) — nachgelagert | AP-16 sinnvoll davor | 4–6 Tage |
| 17 | ⏸ AP-17 | WaWi-Einstellungsseite (Schwellwerte, Fenster, Defaults) — nachgelagert | – | 1–2 Tage |
> **Blockabschluss 06.07.2026:** Positionen 1–9 (OPT-1/2/3/4 + AP-21/20/23/24/27/28) sind vollständig umgesetzt und einzeln committet. Die Positionen 10–14 sind auf Kundenwunsch **nachgelagert** — vor der Umsetzung prüft der Kunde weitere Anforderungen, die dort mit einfließen sollen.
@ -186,6 +188,44 @@ Der Warenkorb kommt also **per Knopfdruck** (Fulfillment-Übergabe), nicht autom
3. **„Verbrauch/Monat" (AP-22):** ✅ rollierendes 6-Monats-Fenster bleibt wie umgesetzt.
4. **Produktionsergebnis (AP-28):** ✅ Output-Produkte dürfen andere Produkte sein als das geplante (z. B. 40×50 ml + 50×5 ml).
5. **Horizont-Filter Rohstoffbestand (OPT-5):** ✅ vorerst nur clientseitige Filterung → **OPT-5 entfällt.**
### AP-33 — Bestell-Abwicklung: Nav-Punkt „Bestellungen" mit Fulfillment-Board (neu aufgenommen 16.07.2026)
**Kundenanforderung 16.07.2026:** Eigener Navigationspunkt **„Bestellungen"** in der Warenwirtschaft mit zwei Unterpunkten: **„Abwicklung"** (neu — kompakte Tagesübersicht für die Bestellabwicklung) und **„API-Bestellungen"** (bestehend, wandert als Unterpunkt hinein). Das Board dient dem Mitarbeiter zur täglichen Abarbeitung: sehen, was zu **konfektionieren** ist und wo **Etiketten** fehlen, Zugriff auf **Rechnung/Lieferschein**, Etikett erstellen, per Klick auf **„versendet"** setzen — kompakter als die bestehende Verkäufe-Seite. Perspektivisch: Etiketten für bestätigte Bestellungen **gesammelt als PDF** erzeugen/drucken, dazu Lieferscheine und Rechnungen.
**Vorhandene Bausteine (verifiziert 16.07.2026):**
- Rechnung **und** Lieferschein entstehen heute schon **gemeinsam** in `InvoiceRepository::create()` (DomPDF-Templates `resources/views/pdf/invoice.blade.php` + `delivery.blade.php`, Nummernkreis im `Invoice`-Service). Download-Routen existieren im `FileController` (Disks `invoice`, `delivery`, **`invoice_delivery`** = kombiniert).
- Statuskette deckt den Prozess ab: 0 offen (= zu konfektionieren) → 1 in Bearbeitung (= gepackt/versandfertig) → 2 versendet / 3 abgeschlossen; 4 Abholung, 5 Wartestellung, 10 storniert. Der Statuswechsel ist seit AP-13 gehärtet (Transaktion + Lock) und bucht den Bestandsabzug — das Board erbt das kostenlos.
- `setasign/fpdi` ist installiert → Zusammenführen mehrerer PDFs (Sammel-Druck) ist ohne neues Package machbar.
- AP-32 (DHL) hat denselben Andockpunkt; „Etikett erstellen → Sendungsnr. speichern → versendet setzen" wird eine Aktion.
**Umsetzung in drei Teilpaketen:**
**AP-33a — Abwicklungs-Board (2–3 Tage, sofort nutzbar ohne DHL):**
- Sidenav: „Bestellungen" mit Unterpunkten „Abwicklung" + „API-Bestellungen" (bestehende Route zieht um, Redirect/aktiver Menüpfad beachten).
- Neue Seite `admin/inventory/orders` (WaWi-Design AP-19): Standardfilter Status offen + in Bearbeitung, Umschalter Zeitraum (heute/7 Tage/alle offenen), Quelle (API/Whitelabel/manuell), Zahlstatus.
- 4 Status-Kacheln als Filter: **Heute eingegangen / Zu konfektionieren / Versandfertig / Heute versendet** (Muster Produktbestand AP-22).
- Kompakte Zeile je Bestellung: Nr. + Quelle-Badge, Datum, Kunde + Land, **Positionen aufklappbar als Packliste** (Menge × Produkt, Sets mit Komponenten), Gewicht, Zahlstatus-Pill, Dokumente (Rechnung/Lieferschein: vorhanden ⇒ Download-Icons inkl. Kombi-PDF, fehlt ⇒ Button „erstellen" über bestehendes `InvoiceRepository::create()`), Aktionen: **„Konfektioniert"** (→ Status 1), **„Etikett"** (Platzhalter bis AP-32), **„Versendet"** (→ Status 2, mit Confirm; löst AP-13-Abzug aus).
- Rechte wie Verkäufe: admin ≥ 7 für Statuswechsel/Dokumente; Sichtbarkeit des Nav-Punkts entsprechend.
- Tests: Board-Render + Filter, Statuswechsel über die bestehende gehärtete Route, Dokument-Erzeugung fehlender Rechnungen.
**AP-33b — Sammel-Dokumente (1,5–2 Tage, nach AP-33a):**
- Checkbox-Auswahl im Board + Aktion **„Dokumente drucken"**: ein zusammengeführtes PDF (FPDI) aus Lieferscheinen + optional Rechnungen der gewählten Bestellungen; fehlende Dokumente werden dabei erzeugt. Download als eine Datei zum Stapeldruck.
- Gleiches Muster vorbereitet für **Etiketten-Sammel-PDF** (kommt mit AP-32).
**AP-33c — Etiketten-Integration & Automatik (mit/nach AP-32):**
- Je Zeile „Etikett erstellen" (DHL-API aus AP-32): Label-PDF + Sendungsnr. an der Bestellung, danach Ein-Klick „Versendet" (oder kombiniert „Etikett + versendet").
- Sammel-Aktion „Etiketten für Auswahl erstellen" ⇒ ein PDF mit allen Labels.
- **Empfehlung zur Vollautomatik** („bei bestätigter Bestellung automatisch Etikett"): zunächst **halbautomatisch** lassen (Sammel-Aktion mit einem Klick für alle versandfertigen Bestellungen). Begründung: jedes fehlerhafte Label muss kostenpflichtig storniert werden, Gewicht/Versandprodukt und Adressqualität müssen je Bestellung stimmen, und „bestätigt" ist noch nicht definiert (bezahlt? `txaction`?). Auto-Modus später als Option auf der WaWi-Einstellungsseite (AP-17), sobald der DHL-Prozess stabil läuft.
**Mit dem Kunden zu klären (zusätzlich zur AP-32-Liste):**
1. Definition **„versandfertig/bestätigt"**: nur bezahlte Bestellungen (`txaction = paid`/`extern`)? Wartestellung ausgenommen?
2. Sollen fehlende **Rechnungen automatisch** beim Erscheinen im Board erzeugt werden (heute manueller Schritt) oder erst per Klick?
3. Der bisherige Automatismus „Öffnen der Detailseite setzt offen → in Bearbeitung" verwässert „zu konfektionieren" als Signal — beibehalten oder entfernen?
4. Rechte: Abwicklung nur admin ≥ 7 (wie Verkäufe) oder auch Versand-Mitarbeiter mit niedrigerer Stufe (hängt an AP-15 Blockrechte)?
**Aufwand gesamt:** 4–6 Tage (ohne AP-32). **Reihenfolge:** AP-33a sofort umsetzbar; AP-32 sobald DHL-Klärungen da sind; AP-33b/c dazwischen bzw. danach.
---
## 5. Pflege dieses Dokuments