diff --git a/dev/product management /01-entwicklungsplaene/entwicklungsplan-V7-2026-08-26.md b/dev/product management /01-entwicklungsplaene/entwicklungsplan-V7-2026-08-26.md index 88ebb55..4d4c67c 100644 --- a/dev/product management /01-entwicklungsplaene/entwicklungsplan-V7-2026-08-26.md +++ b/dev/product management /01-entwicklungsplaene/entwicklungsplan-V7-2026-08-26.md @@ -2,9 +2,10 @@ > **Stand:** 26.08.2026 · **Basis:** Kundenfeedback aus der Testphase > ([entwicklungsplan-aktualisiert-2026-08-26.md](entwicklungsplan-aktualisiert-2026-08-26.md)) -> **Vorgänger:** V6.0 ([entwicklungsplan-aktualisiert-06-07-2026.md](entwicklungsplan-aktualisiert-06-07-2026.md)) +> **Vorgänger:** V6.0 ([entwicklungsplan-aktualisiert-2026-07-06.md](entwicklungsplan-aktualisiert-2026-07-06.md)) > **Verifikation:** Jeder Befund wurde am Code **und** an der eingespielten Live-DB geprüft (Dev-Container). Die Datei-/Zeilenangaben sind der aktuelle Stand. -> **Status:** Planungsdokument — **noch nichts umgesetzt.** Umsetzung erst nach Freigabe & Klärung (Abschnitt D). +> **Status (historisch, 26.08.2026):** Planungsdokument — zu diesem Zeitpunkt noch nichts umgesetzt. +> **Status (aktuell, 08.09.2026):** AP-34…AP-51 umgesetzt (Tabelle unten). Die anschließende [Umsetzungsprüfung vom 08.09.2026](../02-audit/umsetzungspruefung-2026-09-08.md) fand 18 Restfehler, die ebenfalls alle behoben sind (Abschnitt 9 dort). Suite: 362 grün. Die mit **`#`** markierten Punkte hat der Kunde als **buggy/dringend** priorisiert. Aufwände in Personentagen (PT), inkl. Test. @@ -32,9 +33,9 @@ Die mit **`#`** markierten Punkte hat der Kunde als **buggy/dringend** priorisie | **AP-38** WooCommerce-Ampel (Cron/Auth) | ✅ erledigt (0c8d321 ERP+Connector, b6ca332 Cron-Selbstheilung) — Live-Ursache behoben | | übrige APs | — | -Suite: **338 grün**. Erledigt: **AP-34…AP-51 vollständig** (AP-34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51). **Keine offenen APs mehr.** Verbleibend nur der **Connector-Rollout v1.6.0** in den Shop (AP-34 + AP-38). +Suite (26.08.2026): **338 grün**; nach der Nacharbeit vom 08.09.2026: **362 grün**. Erledigt: **AP-34…AP-51 vollständig** (AP-34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51). **Keine offenen APs mehr.** Verbleibend nur der **Connector-Rollout v1.6.0** in den Shop (AP-34 + AP-38). -> **AP-43-Hinweis:** „Zwischenspeichern" legt die Produktion als **Entwurf** ab (kein Bestand gebucht, keine Pflichtfeld-Prüfung); erst **„Produktion abschließen"** bucht Roh-/Produkt-/Verpackungsbestand. Entwürfe zählen nirgends in den Bestand. Eine bereits abgeschlossene Produktion kann nicht zurück in den Entwurf. +> **AP-43-Hinweis:** „Zwischenspeichern" legt die Produktion als **Entwurf** ab (kein Bestand gebucht); erst **„Produktion abschließen"** bucht Roh-/Produkt-/Verpackungsbestand. Entwürfe zählen nirgends in den Bestand — auch nicht in die Chargenverfügbarkeit (F-01). Pflicht bleiben im Entwurf nur Produkt, Standort, Datum und Planmenge; Chargen- und Ergebniszeilen dürfen unvollständig sein und werden verlustfrei gesichert (F-03). Eine bereits abgeschlossene Produktion kann nicht zurück in den Entwurf. > **Rollout-Hinweis AP-34:** Der ERP-Teil ist live-fähig (matcht die volle Variations-SKU gegen `wp_number`, „-"-Split nur noch Fallback). Der Shop zeigt die korrekte Zuordnung aber erst, wenn das **Connector-Plugin v1.6.0** (`dev/partnercenter-api/`, sendet ab jetzt die Variations-SKU statt der Eltern-SKU) im WooCommerce-Shop installiert ist. **Vorbedingung:** jede Variation braucht im Shop eine gepflegte eigene Artikel-Nr. (SKU) = die `wp_number` des jeweiligen ERP-Produkts. diff --git a/dev/product management /02-audit/umsetzungspruefung-2026-09-08.md b/dev/product management /02-audit/umsetzungspruefung-2026-09-08.md index 4265c5b..334304d 100644 --- a/dev/product management /02-audit/umsetzungspruefung-2026-09-08.md +++ b/dev/product management /02-audit/umsetzungspruefung-2026-09-08.md @@ -420,3 +420,40 @@ Eine spätere Abnahme sollte mindestens folgende zusammenhängende Abläufe enth - Der Ordner heißt tatsächlich `product management ` mit abschließendem Leerzeichen. Name im Rahmen dieser Prüfung beibehalten; bei einer späteren Umbenennung sämtliche Verweise berücksichtigen. **Abschluss der Prüfung:** Die beschriebenen Korrekturen sind Empfehlungen. Keine davon wurde am Anwendungscode umgesetzt. Bestehende fremde Änderungen wurden beibehalten. + +## 9. Stand der Nacharbeit (08.09.2026) + +Alle 18 Befunde wurden am 08.09.2026 gegen den Code verifiziert (alle bestätigt) und anschließend umgesetzt — je Befund ein Commit mit Regressionstest. Suite danach: **362 Tests grün, 1.432 Assertions**. + +| Befund | Status | Umsetzung | +|---|---|---| +| F-01 | ✅ `9e745d1` | Entwürfe zählen nicht mehr als Chargenverbrauch | +| F-02 | ✅ `7351289` | getrennter Produktkatalog für Ergebniszeilen | +| F-03 | ✅ `859b1f0` | Entwurf sichert Chargenzeilen verlustfrei | +| F-04 | ✅ `104671e` | Rezeptur-Phase an Verbrauchszeilen, keine Vervielfachung beim Wiederöffnen | +| F-05 | ✅ `a803e95` | historischer Verpackungs-Snapshot bleibt bei Notizkorrektur erhalten | +| F-06 | ✅ `122d28b` | Chargenzeilen nach Validierungsfehler aus old() wiederherstellen | +| F-07 | ✅ `fd1572d` | Verpackungsvorschau aus dem Produktionsergebnis | +| F-08 | ✅ `2796b11` | Füllgewicht mit Nachkommastellen | +| F-09 | ✅ `db27f04` | Ausschuss ohne Charge standort- und chargenkonsistent | +| F-10 | ✅ `f93b16c` | Versandabschluss nur mit Zahlungsfreigabe | +| F-11 | ✅ `691f763` | Einkaufspreise auf der Rohstoff-Detailseite nur für Admins | +| F-12 | ✅ `8c460aa` | Verkaufs-Gegenbuchungen im Monatsverbrauch netto verrechnen | +| F-13 | ✅ `1e7ebfb` | Produkthistorie zeigt Kappung mit Gesamtzahl und „Alle anzeigen“ | +| F-14 | ✅ `8808ff5` | „Enthalten in“ mit Anteil (%) und Verbrauch je Stück | +| F-15 | ✅ `c2a1783` | ml-Einkauf bleibt beim Kopieren ml-Bestellung | +| F-16 | ✅ `731b246` | fachliche Vorbedingungen innerhalb der Sperre prüfen | +| F-17 | ✅ `2859aa0` | Köln-Default zentral (Location::defaultId), auch beim Ausschuss, nur aktive Standorte | +| F-18 | ✅ `aa2fcc4` | Zwischenspeichern oben/mittig/unten, Notizfeld für Touch vergrößerbar und auto-wachsend | + +**Entscheidungen bei der Umsetzung (fachlich relevant):** + +- **F-03:** Entwürfe speichern Chargenzeilen roh (`production_ingredients.batch_key`, `stock_entry_id` nullable, Migration `2026_09_08_100000`). Auflösung auf Wareneingänge und Bestandsprüfung erst beim Abschluss. Ergebniszeilen dürfen im Entwurf ohne Stückzahl bleiben. Nicht mehr verfügbare Chargen werden im Formular markiert. +- **F-04:** `production_ingredients.recipe_phase_id` (Migration `2026_09_08_110000`); Altbestand ohne Phase wird beim Wiederöffnen nur einmal (erstes Vorkommen) eingesetzt. +- **F-05:** Regel: Snapshot bleibt, solange Ergebnisprodukte und Stückzahlen unverändert sind; bei echter Mengen-/Produktkorrektur wird er mit der **aktuellen** Stückliste neu gebildet. +- **F-08:** `products.fill_weight` → `decimal(10,3)` (Migration `2026_09_08_120000`). **Migrationen auf Dev-/Live-DB ausführen.** +- **F-09:** Ausschuss ohne Charge wird FEFO auf die Chargen des Lagerorts verteilt und je Charge gebucht (wie Produktionsverbrauch). Alt-Ausschuss ohne Chargenbezug bleibt unverändert. +- **F-12:** Netto-Verrechnung nur für `source=sale, direction=in` (technische Gegenbuchungen); manuelle Eingänge zählen weiterhin nicht gegen den Verbrauch. +- **F-16:** Parallelität bleibt ohne MySQL-Integrationstest; die Vorbedingungen werden jetzt innerhalb der Sperren erneut geprüft (Board-Status, Wareneingang, Ausschuss). + +**Weiterhin offen (nicht Teil der Nacharbeit):** Abschnitt 4.3 (AP-14/15/16/17, AP-32 voll, AP-33c, Deckel-Varianten, LUCID), Abschnitt 4.4 (Verpackungsbestand als Übersicht, Bestandsalarm-E-Mail, zusätzliche Board-Filter), Abschnitt 5 (Optimierungen) sowie der Connector-Rollout v1.6.0 und die Browser-/iPad-Abnahme. diff --git a/dev/product management /README.md b/dev/product management /README.md index e5e77a4..992ea8e 100644 --- a/dev/product management /README.md +++ b/dev/product management /README.md @@ -1,8 +1,8 @@ # Warenwirtschaft — Projektübersicht & Entwicklungsplan -> **Stand:** 26.08.2026 +> **Stand:** 08.09.2026 > **Status:** Modul ist **live** und in der **Kundentestphase** (Dev-Container mit eingespielter Live-Datenbank inkl. Testdaten). -> **Testsuite:** 303 Tests grün (1130 Assertions, 0 Failures). +> **Testsuite:** 362 Tests grün (1.432 Assertions, 0 Failures). Dieses Dokument ist der Einstieg in den Ordner. Es skizziert den Gesamtstand, listet die erledigten und die noch offenen Arbeitspakete und verweist auf die @@ -16,8 +16,8 @@ Detaildokumente. Die maßgebliche, aktuellste Aufwands-/Leistungssicht ist die | Ordner | Inhalt | |---|---| | [`00-konzept/`](00-konzept/) | Ausgangs-Briefings, Fachkonzept, frühes Feedback (März–April 2026) | -| [`01-entwicklungsplaene/`](01-entwicklungsplaene/) | Versionierte Entwicklungspläne — maßgeblich ist die neueste Fassung `…06-07-2026.md` (V6.0) | -| [`02-audit/`](02-audit/) | Qualitäts- & Sicherheits-Audit vom 15.07.2026 | +| [`01-entwicklungsplaene/`](01-entwicklungsplaene/) | Versionierte Entwicklungspläne — maßgeblich ist die neueste Fassung [`entwicklungsplan-V7-2026-08-26.md`](01-entwicklungsplaene/entwicklungsplan-V7-2026-08-26.md) (V7.0); V6.0 = `entwicklungsplan-aktualisiert-2026-07-06.md` | +| [`02-audit/`](02-audit/) | Qualitäts- & Sicherheits-Audit vom 15.07.2026; [Umsetzungsprüfung 08.09.2026](02-audit/umsetzungspruefung-2026-09-08.md) (18 Befunde, alle umgesetzt) | | [`03-status-und-vorschlaege/`](03-status-und-vorschlaege/) | Aktuelle Leistungsübersicht, AP-32-Brückenlösung, Vorschlag Deckel-Varianten | | [`screens/`](screens/) | Screenshots / Mockups zu Beständen, Rezeptur-Phasen, Produktion | @@ -101,6 +101,19 @@ WooCommerce-Ampel ist voraussichtlich **kein** Partnercenter-Fehler, sondern shopseitig (Status-Cron/Auth). Rohfassung des Feedbacks: [entwicklungsplan-aktualisiert-2026-08-26.md](01-entwicklungsplaene/entwicklungsplan-aktualisiert-2026-08-26.md). Offene Klärungspunkte (D-1…D-6) im Plan blockieren den Start einzelner Pakete. +**Stand 08.09.2026:** AP-34…AP-51 sind umgesetzt (siehe Umsetzungsstand in V7.0). + +## Umsetzungsprüfung 08.09.2026 → Nacharbeit + +Die unabhängige Prüfung der V7-Umsetzung +([umsetzungspruefung-2026-09-08.md](02-audit/umsetzungspruefung-2026-09-08.md)) fand +18 Befunde (5×P1, 11×P2, 2×P3) — u. a. Entwürfe blockierten Chargen, Entwurfszeilen +gingen verloren, Rohstoffe in zwei Phasen wurden beim Wiederöffnen vervielfacht, +historische Verpackungs-Snapshots wurden überschrieben, Versand ohne Zahlungsfreigabe und +Einkaufspreise für Copyreader. **Alle 18 Befunde sind umgesetzt** (je ein Commit mit +Regressionstest, Abschnitt 9 des Berichts). Drei neue Migrationen (`2026_09_08_*`) müssen +auf Dev-/Live-DB laufen. Weiterhin offen: die im Bericht (Abschnitte 4.3/4.4/5) genannten +nachgelagerten Pakete, Optimierungen, Connector-Rollout v1.6.0 und die Browser-/iPad-Abnahme. ## Offene / nachgelagerte Pakete (nach Kundentestphase) @@ -130,8 +143,10 @@ Offene Kundenfragen im Dokument. Details: ## Bekannte, bewusst akzeptierte Grenzen -- **Parallelität** ist per Pest nicht testbar; abgesichert über `lockForUpdate()` + Review - (geringes Risiko im Ein-Personen-Admin-Betrieb). +- **Parallelität** ist per Pest (SQLite) nicht belastbar testbar; die entscheidenden + Übergänge (Board-Status, Wareneingang, Ausschuss, Produktion) prüfen ihre Vorbedingungen + seit F-16 innerhalb von `lockForUpdate()`-Transaktionen. Ein MySQL-Integrationstest mit + zwei Verbindungen steht weiterhin aus (geringes Risiko im Ein-Personen-Admin-Betrieb). - **Self-Shipping** durch Partner erzeugt bewusst keinen Bestandsabzug (Partner versendet aus eigenem Lager). - Board-gesetzte Versandstatus dürfen nicht von der Detailseiten-Automatik überschrieben werden (Sperr-Flag `shipped_status_locked`) — in der Hinweise-Doku hinterlegt. diff --git a/docs/testleitfaden-wawi-2026-07-06.md b/docs/testleitfaden-wawi-2026-07-06.md index 47cb797..98ba78f 100644 --- a/docs/testleitfaden-wawi-2026-07-06.md +++ b/docs/testleitfaden-wawi-2026-07-06.md @@ -137,4 +137,4 @@ Die Listen **Einkauf & Wareneingang** und **Produktionen** zeigen aus Performanc ## Was bewusst noch nicht dabei ist (nachgelagert) -Shop-Bestandsabzug beim Versand (inkl. Sets), Audit-Trail, 2FA, blockbasierte Rechte und die WaWi-Einstellungsseite folgen in der nächsten Runde — hier fließen zuvor noch weitere Anforderungen ein (siehe Entwicklungsplan V6.0, §3). +Audit-Trail, 2FA, blockbasierte Rechte und die WaWi-Einstellungsseite folgen in der nächsten Runde — hier fließen zuvor noch weitere Anforderungen ein (siehe Entwicklungsplan V6.0, §3). *(Der Shop-Bestandsabzug beim Versand inkl. Sets ist inzwischen umgesetzt — AP-13; Versand über das Board nur mit Zahlungsfreigabe, Rechnung/API ausgenommen.)*