From be29be863f0e188cbd09d952190c8aeb784067d6 Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Wed, 9 Sep 2026 09:17:28 +0000 Subject: [PATCH] =?UTF-8?q?Warenwirtschaft:=20In-App-Doku=20f=C3=BCr=20Dep?= =?UTF-8?q?loy=20=E2=80=94=20Hinweise=20Stand=2009.09.2026,=20Testleitfade?= =?UTF-8?q?n=20Version=203=20(Teil=20C),=20Deployment-Checkliste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - resources/docs/hinweise.md: Abschnitt „Neu / geändert 08./09.09.2026“ (alle nutzerrelevanten Nachbesserungen + AP-52), Spalte „Lagerort“, Entwurfsregeln, Versand nur versandfertig, Köln-Default auch im Ausschuss. - resources/docs/testleitfaden.md: Version 3 mit Teil C (Abschnitte 19–25). - README: Deployment-Checkliste (Migrationen 2026_09_08_* auf Dev-DB gelaufen), In-App-Doku als maßgebliche Nutzerdoku; docs/testleitfaden V1 als Archiv markiert. Co-Authored-By: Claude Fable 5.1 --- dev/product management /README.md | 15 +++- docs/testleitfaden-wawi-2026-07-06.md | 2 + resources/docs/hinweise.md | 104 ++++++++++++++++++---- resources/docs/testleitfaden.md | 122 ++++++++++++++++++++++++-- 4 files changed, 219 insertions(+), 24 deletions(-) diff --git a/dev/product management /README.md b/dev/product management /README.md index d7589bf..125c9f4 100644 --- a/dev/product management /README.md +++ b/dev/product management /README.md @@ -115,8 +115,8 @@ Regressionstest, Abschnitt 9 des Berichts). Eine anschließende [Nachprüfung](02-audit/nachpruefung-befundbehebung-2026-09-08.md) fand sechs Restfehler (N-01…N-06: Entwurfsmenge ohne Charge, Phasenverlust beim Artikelspeichern, Chargensplit vs. Snapshot, Vorschau vs. Snapshot, Alt-Ausschuss ohne Charge, ml-Kopie im Bearbeiten), die -ebenfalls behoben sind (Abschnitt 6 dort); die Gegenprüfung vom 09.09.2026 fand zu N-02/N-04 zwei Randfälle (R-01 stabile Phasen-IDs, R-02 leerer Snapshot), ebenfalls behoben. 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 +ebenfalls behoben sind (Abschnitt 6 dort); die Gegenprüfung vom 09.09.2026 fand zu N-02/N-04 zwei Randfälle (R-01 stabile Phasen-IDs, R-02 leerer Snapshot), ebenfalls behoben. Drei neue Migrationen (`2026_09_08_*`) sind auf der Dev-DB +(Live-Kopie) gelaufen und müssen beim Deploy auf der Live-DB ausgeführt werden. 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) @@ -145,6 +145,17 @@ Offene Kundenfragen im Dokument. Details: --- +## Deployment-Checkliste (Stand 09.09.2026, Paket V7.0 + Nachbesserungen + AP-52) + +1. **Code:** `master` bis Commit der Doku-Aktualisierung 09.09.2026 (siehe `git log`). +2. **Migrationen:** `php artisan migrate` — drei neue Migrationen `2026_09_08_100000` (batch_key, stock_entry_id nullable), `2026_09_08_110000` (recipe_phase_id), `2026_09_08_120000` (fill_weight decimal). Auf der Dev-DB (Live-Kopie, MySQL) am 09.09.2026 erfolgreich ausgeführt; bestehende Produktionszeilen bleiben unverändert (neue Spalten NULL). +3. **In-App-Doku:** `resources/docs/hinweise.md` (Stand 09.09.2026) und `resources/docs/testleitfaden.md` (Version 3, Teil C) sind aktualisiert und werden ohne Build ausgeliefert (Einstellungen → Hinweise / Leitfaden). +4. **Kein Frontend-Build nötig:** alle Änderungen liegen in Blade/Inline-JS; Laravel Mix ist nicht betroffen. +5. **Nach dem Deploy:** `php artisan view:clear` (Blade-Cache), optional `config:cache`/`route:cache` wie gewohnt; Testleitfaden Teil C mit dem Kunden durchgehen (insb. Abschnitte 19–21 auf dem iPad). +6. **Getrennt davon:** Connector-Plugin **v1.6.0** im WooCommerce-Shop einspielen (AP-34/AP-38), siehe `dev/partnercenter-api/README.md`. + +> Die In-App-Doku unter `resources/docs/` ist die **maßgebliche Nutzerdokumentation**; `docs/testleitfaden-wawi-2026-07-06.md` ist die archivierte Version 1. + ## Bekannte, bewusst akzeptierte Grenzen - **Parallelität** ist per Pest (SQLite) nicht belastbar testbar; die entscheidenden diff --git a/docs/testleitfaden-wawi-2026-07-06.md b/docs/testleitfaden-wawi-2026-07-06.md index 98ba78f..4d7f434 100644 --- a/docs/testleitfaden-wawi-2026-07-06.md +++ b/docs/testleitfaden-wawi-2026-07-06.md @@ -1,5 +1,7 @@ # Testleitfaden Warenwirtschaft — Anforderungsrunde 12.06.2026 +> **Archiv (Version 1).** Der aktuelle Leitfaden (Version 3, Stand 09.09.2026) liegt in `resources/docs/testleitfaden.md` und ist in der App unter **Einstellungen → Leitfaden** erreichbar. + > **Stand:** 06.07.2026 · Alle Punkte aus `nächsten Anforderungen an die WaWi.md` (12.06.2026) sind umgesetzt. > Dieser Leitfaden führt einmal durch alle neuen Funktionen — in der Reihenfolge eines typischen Arbeitsablaufs, sodass jede Stelle direkt im Browser nachgeschaut und getestet werden kann. > Die fachlichen Erklärungen dazu stehen wie gewohnt in der App unter den **[Hinweisen zur Warenwirtschaft](/admin/inventory/notices)**. diff --git a/resources/docs/hinweise.md b/resources/docs/hinweise.md index dec7809..e5fa1cf 100644 --- a/resources/docs/hinweise.md +++ b/resources/docs/hinweise.md @@ -4,8 +4,9 @@ > wichtige Hinweise für die Nutzung sowie festgehaltene Entscheidungen, die > später noch ausgebaut werden können. > -> **Stand:** 28.08.2026 — ein geführter Rundgang durch die neuen Funktionen -> steht unter **Einstellungen → Leitfaden** (aktuell **Version 2**, Runde V7.0). +> **Stand:** 09.09.2026 — ein geführter Rundgang durch die neuen Funktionen +> steht unter **Einstellungen → Leitfaden** (aktuell **Version 3**: Runde V7.0 +> plus Nachbesserungen und Nachtrag vom 08./09.09.2026). --- @@ -87,6 +88,9 @@ Gramm (Rohstoff) bzw. Stück (Verpackung) und Datum. Jeder Ausgang reduziert sofort den Bestand – beim Rohstoffbestand also auch die „auf Null"-Prognose und den Kritisch-Status. +- **Bestell-Abwicklung — Versand nur versandfertig (seit 08.09.2026):** „Versendet" + ist nur für bezahlte Bestellungen (bzw. Rechnung/API) möglich; „Konfektioniert" + auch vorher. Siehe „Neu / geändert 08./09.09.2026". - **Rohstoffbestand — kritische außerhalb der Rezepturen (Hinweis, 20.07.2026):** Die Standardansicht zeigt „Nur aus Herstellerrezepturen", das Sidebar-Badge zählt aber **alle** aktiven kritischen Rohstoffe. Liegt ein kritischer @@ -164,7 +168,8 @@ Aus der Testphasen-Rückmeldung 26.08.2026 umgesetzt: höchstens **±5 %** vom Soll, **rot** = Abweichung über 5 % (Schutz vor Zahlendreher). - **INCI-Tabelle: Bestand & Differenz (AP-40):** Rechts zwei neue Spalten — aktueller **Bestand** des Rohstoffs und **Differenz** (Bestand − Soll; negativ rot, - positiv grün). Spaltenkopf **„Regal" → „Ablage"**. + positiv grün). Spaltenkopf für den Lagerplatz heißt seit 09.09.2026 einheitlich + **„Lagerort"** (vorher „Regal"/„Ablage"). - **Verpackungs-Vorschau oben + Phasen-Gramm (AP-41):** Die Box „Verpackung (Vorschau)" steht direkt unter der INCI-Tabelle; je Phase steht die **Gesamt-Gramm-Summe** in Klammern hinter dem Namen (zeigt die nötige Rührgefäß-Größe). @@ -187,16 +192,19 @@ Aus der Testphasen-Rückmeldung 26.08.2026 umgesetzt: **Rohstoff-Lieferanten** (Kategorie „Kosmetikrohstoffe") angeboten. - **Lagerorte übernehmbar + Köln-Default (AP-50):** Ein belegter Lagerort lässt sich löschen, indem seine Buchungen auf einen **Ziel-Lagerort übernommen** werden; - **Köln** ist im Wareneingang als Lagerort vorbelegt. Die Standort-Funktion bleibt - für künftige Standorte erhalten. + **Köln** ist in Wareneingang, Produktion **und Ausschuss** als Standort vorbelegt + (nur solange Köln aktiv ist). Die Standort-Funktion bleibt für künftige Standorte + erhalten. - **Lagerplatz für Produkte & Verpackung (AP-51):** Die Lagerplatz-Zuordnung **Raum / Regal / Fach** gibt es jetzt auch bei **Produkten** und **Verpackungsartikeln** (gleiche Bausteine wie beim Rohstoff). Angezeigt im Produktbestand und in der Produktverpackungs-Übersicht. - **Produktion zwischenspeichern (Entwurf) (AP-43):** Neben **„Produktion abschließen"** - gibt es **„Zwischenspeichern (Entwurf)"**. Ein Entwurf sichert den Stand **ohne - Pflichtfeld-Prüfung** und **bucht keinen Bestand**; erst „abschließen" prüft - vollständig und bucht. Entwürfe sind mit einem Badge markiert. + gibt es **„Zwischenspeichern (Entwurf)"** — seit 09.09.2026 an drei Stellen + (oben, vor dem Produktionsergebnis, unten). Ein Entwurf sichert den kompletten + Arbeitsstand und **bucht keinen Bestand**; Pflicht sind nur Produkt, Standort, + Datum und Planmenge. Erst „abschließen" prüft vollständig und bucht. Entwürfe sind + mit einem Badge markiert. Details unter „Neu / geändert 08./09.09.2026". - **Rezeptur-Darstellung aufgehübscht (AP-44):** Phasenkästen leicht hinterlegt, kein innerer Kasten mehr um die Chargen, einheitliche Schrift, iPad-taugliche (größere) Eingabefelder, formatierte Phasenbeschreibung. @@ -207,6 +215,70 @@ Aus der Testphasen-Rückmeldung 26.08.2026 umgesetzt: Status-Mapping ist vollständig (Wartestellung, Abholung, Storno). *Details im Connector-README; benötigt v1.6.0.* +### Neu / geändert 08./09.09.2026 (Nachbesserungen + Nachtrag AP-52) + +Nach der unabhängigen Prüfung der V7-Umsetzung wurden alle Befunde behoben. Was sich +dadurch für die Bedienung ändert: + +- **Verpackungs-Vorschau mit Bestand, Differenz und Lagerort (AP-52, Kundennachtrag):** + Die Box „Verpackung (Vorschau)" in der Produktion zeigt je Verpackungsartikel + **Stück gesamt**, **Lagerort** (Raum | Regal | Fach), **Bestand** und **Differenz** + (Bestand − Bedarf; rot = fehlt, grün = reicht) — genau wie bei den Rohstoffen + darüber. So sieht man schon bei der Planung, ob alles da ist und wo es liegt. Die + Vorschau folgt dem **Produktionsergebnis** (Produkte, Stückzahlen, Zeilen) und + aktualisiert sich live. +- **Spalte „Lagerort":** Der Lagerplatz heißt in der INCI-Tabelle und in der + Verpackungs-Vorschau einheitlich **„Lagerort"** (statt „Ablage"/„Regal"). +- **Entwurf sichert alles:** Ein Entwurf speichert **jede** Chargenzeile — auch mit + eingetragener Menge, aber noch ohne gewählte Charge, oder mit gewählter Charge ohne + Menge — und Ergebniszeilen auch ohne Stückzahl. Ist eine im Entwurf gewählte Charge + beim Wiederöffnen nicht mehr verfügbar, wird sie **rot markiert** (statt still zu + verschwinden); der Abschluss verlangt dann eine andere Charge. Entwürfe **blockieren + keine Chargen** mehr für andere Produktionen oder den Ausschuss. +- **Eingaben bleiben nach einer Fehlermeldung erhalten:** Lehnt „Produktion + abschließen" etwas ab (z. B. Abweichung über 5 %), stehen alle Chargen und + Ist-Mengen unverändert im Formular. +- **Rohstoff in mehreren Phasen:** Wird derselbe Rohstoff in zwei Phasen verwendet, + bleibt beim Wiederöffnen die Ist-Menge **je Phase** erhalten (vorher wurde die + Gesamtmenge in jeder Phase eingesetzt). Auch das Speichern des Artikels + (Umbenennen, Umsortieren, Einfügen von Phasen) ändert diese Zuordnung nicht mehr. +- **Ergebnisprodukte:** Im Produktionsergebnis sind **alle aktiven Einzelprodukte** + wählbar — auch nicht produktionsrelevante (z. B. die 5-ml-Variante aus der + 50-ml-Masse). Der Filter „produktionsrelevant" gilt nur für die Planung oben. +- **Historischer Verpackungsverbrauch:** Wird eine bereits gebuchte Produktion + nachträglich bearbeitet (Notiz, Datum, Chargen-Nr., Aufteilung auf mehrere Zeilen bei + gleicher Gesamtstückzahl), bleibt der beim Buchen gespeicherte Verpackungsverbrauch + erhalten — auch wenn die Stückliste am Produkt inzwischen geändert wurde. Nur eine + echte Änderung der Ergebnisprodukte oder -stückzahlen berechnet ihn mit der aktuellen + Stückliste neu. Die Vorschau zeigt in diesem Fall den gespeicherten Verbrauch. +- **Füllgewicht mit Nachkommastellen:** z. B. **39,5 g** (50 ml × Dichte 0,79) — vorher + wurde auf ganze Gramm gekürzt. +- **Ausschuss ohne Charge:** Wird kein bestimmter Wareneingang gewählt, prüft das + System gegen den Bestand des **gewählten Lagerorts** und verteilt die Menge — wie der + Produktionsverbrauch — **nach frühestem MHD auf die Chargen** dieses Lagerorts (je + Charge eine Buchung). Gesamt-, Standort- und Chargenbestand stimmen damit überein; + ältere Ausschussbuchungen ohne Chargenbezug werden für die Chargenverfügbarkeit + rechnerisch genauso angerechnet. +- **Versand nur mit Zahlungsfreigabe:** In der Bestell-Abwicklung lässt sich + **„Versendet"** nur buchen, wenn die Bestellung **versandfertig** ist (bezahlt; + Rechnung und API-Bestellungen gelten sofort). Der Button ist sonst ausgegraut, ein + direkter Aufruf wird abgelehnt. **„Konfektioniert"** bleibt vor Zahlungseingang + möglich. +- **Einkaufspreise nur für Admins:** Der letzte Einkaufspreis je Lieferant auf der + Rohstoff-Detailseite ist — wie in Einkauf & Wareneingang — nur für Admins sichtbar. +- **„Enthalten in" (Rohstoff-Detail):** zeigt je Produkt den **Anteil in %** und den + **Verbrauch in g je Stück** (Anteil × Füllgewicht × Faktor; netto in Klammern), + Phasen summiert. Ohne Füllgewicht steht „—". +- **Verbrauch/Monat:** Versand → Rücksetzung/Storno → erneuter Versand zählt nur einmal + (Gegenbuchungen werden verrechnet). +- **Produktbestand-Historie:** zeigt die Gesamtzahl und einen Link **„Alle anzeigen"**, + wenn mehr als 500 Buchungen zum Filter passen. +- **ml-Einkauf kopieren:** Die Kopie einer in **ml** erfassten Bestellung bleibt eine + ml-Bestellung (Menge in ml, Dichte übernommen) — auch beim anschließenden Bearbeiten + und Wareneingang. Ein Wareneingang „100" bucht also 79 g, nicht 100 g. +- **iPad:** Das Notizfeld der Produktion wächst beim Tippen automatisch mit und lässt + sich vergrößern; die Zwischenspeichern-Buttons sind über die Seite verteilt. + ### In Vorbereitung / geplant - **Versand im System** (DHL-Etiketten per API, AP-32 — bis dahin gilt die @@ -283,7 +355,7 @@ Aus der Testphasen-Rückmeldung 26.08.2026 umgesetzt: und wird von den Detailseiten nicht überschrieben. Bewusste manuelle Statuswechsel über das Verkäufe-Modal (z. B. Storno) bleiben möglich. - **Produktions-Maske:** zeigt die Hersteller-Rezeptur als **INCI-Liste** mit - Alternativname, Qualität, Anteil %, Gesamt-Gramm und **Regal** (Lagerort); + Alternativname, Qualität, Anteil %, Gesamt-Gramm und **Lagerort** (Raum | Regal | Fach); die Chargen-Zuordnung ist nach **Rezeptur-Phasen** gegliedert (inkl. Phasen-Notiz), mit Status-Ampel je Rohstoff (grün = Soll erfüllt). Der **Rohstoffbestand** berechnet sich unverändert aus den je Charge @@ -327,12 +399,14 @@ Aus der Testphasen-Rückmeldung 26.08.2026 umgesetzt: gewählt werden; gespeichert wird der über die Dichte errechnete Gramm-Wert. Ohne hinterlegte Dichte ist keine ml-Erfassung möglich. - **Produktion: Entwurf vs. Abschließen (V7.0):** **„Zwischenspeichern (Entwurf)"** - sichert eine Produktion **ohne Pflichtfeld-Prüfung** und **ohne Bestandsbuchung** — - ideal, um mitten in der Erfassung zu pausieren. Ein Entwurf taucht **nirgends im - Bestand** auf und ist mit „Entwurf" markiert. Erst **„Produktion abschließen"** - prüft Rezeptur/Chargen/Ergebnis vollständig und bucht Roh-/Produkt-/Verpackungsbestand. - Eine bereits abgeschlossene Produktion kann **nicht** zurück in den Entwurf - (die Buchungen würden sonst verwaisen). + sichert eine Produktion **ohne Bestandsbuchung** und ohne fachliche Prüfung — + ideal, um mitten in der Erfassung zu pausieren. Pflicht sind nur Produkt, Standort, + Datum und Planmenge; Chargen- und Ergebniszeilen dürfen unvollständig sein und + bleiben komplett erhalten. Ein Entwurf taucht **nirgends im Bestand** auf (auch + nicht in der Chargenverfügbarkeit) und ist mit „Entwurf" markiert. Erst + **„Produktion abschließen"** prüft Rezeptur/Chargen/Ergebnis vollständig und bucht + Roh-/Produkt-/Verpackungsbestand. Eine bereits abgeschlossene Produktion kann + **nicht** zurück in den Entwurf (die Buchungen würden sonst verwaisen). - **Varianten & Aktions-Kopien (V7.0, AP-34):** Zwei bewusst unterschiedene Fälle: **(1)** Physisch verschiedene Produkte (z. B. 50 ml vs. 5 ml, mit/ohne Natron) sind im Shop **eigene Produkte mit eigener Artikelnummer** und werden je auf ihr eigenes diff --git a/resources/docs/testleitfaden.md b/resources/docs/testleitfaden.md index 51015d0..77f4d8c 100644 --- a/resources/docs/testleitfaden.md +++ b/resources/docs/testleitfaden.md @@ -1,11 +1,12 @@ -# Testleitfaden Warenwirtschaft — Version 2 +# Testleitfaden Warenwirtschaft — Version 3 -> **Stand:** 28.08.2026 +> **Stand:** 09.09.2026 > Dieser Leitfaden führt einmal durch die Funktionen der Warenwirtschaft — in der Reihenfolge eines typischen Arbeitsablaufs, sodass jede Stelle direkt im Browser nachgeschaut und getestet werden kann. > Die fachlichen Erklärungen dazu stehen wie gewohnt in der App unter den **[Hinweisen zur Warenwirtschaft](/admin/inventory/notices)**. > > - **Teil A** (Abschnitte 1–11) — die Basis-Funktionen der Warenwirtschaft (Runde 12.06.2026, Stand 16.07.2026). Unverändert gültig. -> - **Teil B** (Abschnitte 12–18) — **neu in Runde V7.0** (Testphasen-Rückmeldung 26.–28.08.2026). Wer nur die neuen Punkte prüfen will, springt direkt zu **Teil B**. +> - **Teil B** (Abschnitte 12–18) — Runde V7.0 (Testphasen-Rückmeldung 26.–28.08.2026). +> - **Teil C** (Abschnitte 19–25) — **neu: Nachbesserungen aus der Umsetzungsprüfung und Nachtrag AP-52 (08./09.09.2026)**. Wer nur die neuen Punkte prüfen will, springt direkt zu **Teil C**. --- @@ -238,7 +239,7 @@ **Neu:** - **Soll = Anteil % × Füllgewicht × Stückzahl (AP-35)** statt fix 100 g. - **Abwiege-Ist-Wert + Ampel (AP-39):** orange = nichts eingetragen, grün = ±5 % vom Soll, rot = >5 % Abweichung. -- **INCI-Tabelle: Spalten „Bestand" und „Differenz", „Regal" → „Ablage" (AP-40).** +- **INCI-Tabelle: Spalten „Bestand" und „Differenz" (AP-40); Lagerplatz-Spalte heißt „Lagerort" (seit 09.09.).** - **Verpackungs-Vorschau direkt unter der INCI-Tabelle + Phasen-Gramm hinter dem Namen (AP-41).** - **INCI-Liste nach Konzentration absteigend sortiert (AP-46).** - **Verpackung wird aus dem Produktionsergebnis gebucht (AP-45).** @@ -246,7 +247,7 @@ **So testen:** 1. Produkt mit Füllgewicht (Schritt 13) wählen, Stückzahl planen → die Soll-Gramm je Rohstoff entsprechen **Anteil % × Füllgewicht × Stück** (nicht mehr 100 g). 2. Je Charge eine Ist-Menge eintragen: exakt aufs Soll → **grün**; ~10 % daneben → **rot**; leer → **orange**. -3. Spalten **Bestand/Differenz** prüfen (Differenz negativ = rot). Kopf heißt **„Ablage"**. +3. Spalten **Bestand/Differenz** prüfen (Differenz negativ = rot). Lagerplatz-Kopf heißt **„Lagerort"**. 4. Phasen-Kopf zeigt die **Gesamt-Gramm** in Klammern; die Verpackungs-Vorschau steht direkt unter der INCI-Tabelle. 5. Ergebnis mit zwei Output-Produkten buchen → die **Verpackung** wird je Ergebnisprodukt × Menge gebucht (Detailseite prüfen). @@ -256,7 +257,7 @@ **Wo:** **Produktion → Neue Produktion** / eine Produktion **bearbeiten** -**Neu (AP-43):** Neben **„Produktion abschließen"** gibt es **„Zwischenspeichern (Entwurf)"**. +**Neu (AP-43):** Neben **„Produktion abschließen"** gibt es **„Zwischenspeichern (Entwurf)"** (seit 09.09. an drei Stellen: oben, vor dem Ergebnis, unten). Die erweiterten Entwurfs-Szenarien stehen in **Teil C, Abschnitt 19**. **So testen:** 1. Eine neue Produktion nur teilweise ausfüllen (Produkt + Standort + Datum + Menge), **„Zwischenspeichern"** → wird ohne Fehlermeldung gespeichert und in der Liste mit **Badge „Entwurf"** angezeigt. @@ -293,9 +294,116 @@ --- +--- + +# Teil C — Nachbesserungen & Nachtrag (08./09.09.2026) + +> Eine unabhängige Prüfung der V7-Umsetzung hat 18 Befunde ergeben; alle sind behoben, +> dazu der Kundennachtrag **AP-52**. Diese Abschnitte prüfen die spürbaren Änderungen. + +## 19. Produktion: Entwurf sichert alles, blockiert nichts + +**Wo:** **Produktion → [Neue Produktion](/admin/inventory/productions/create)** + +**Geändert:** +- Der Entwurf speichert **jede** Chargenzeile — auch „Menge ohne Charge" und „Charge ohne Menge" — und Ergebniszeilen ohne Stückzahl. +- Eine im Entwurf gewählte, inzwischen nicht mehr verfügbare Charge wird beim Öffnen **rot markiert**. +- Entwürfe **reduzieren keine Chargenverfügbarkeit** (weder für andere Produktionen noch für den Ausschuss). +- **„Zwischenspeichern (Entwurf)"** gibt es dreimal auf der Seite; das **Notizfeld** wächst beim Tippen mit (iPad). +- Nach einer Ablehnung durch „Produktion abschließen" bleiben **alle Chargen und Ist-Mengen** im Formular. + +**So testen:** +1. Rezeptur-Produkt wählen, bei einem Rohstoff nur **9,8 g** eintragen, **keine** Charge wählen → Zwischenspeichern → Entwurf öffnen: die 9,8 g stehen noch da, Charge ist leer. +2. Charge ergänzen, bei einem Ergebnisprodukt die Stückzahl leer lassen → Zwischenspeichern → Ergebniszeile bleibt erhalten. +3. Parallel eine **zweite Produktion** anlegen: die im Entwurf gewählte Charge ist dort in **voller** Menge wählbar. +4. Beim Abschließen absichtlich **20 g statt 10 g** eintragen → Fehlermeldung; alle Chargen/Mengen stehen unverändert im Formular. + +--- + +## 20. Produktion: Rohstoff in mehreren Phasen, Ergebnisprodukte + +**Wo:** Produkt bearbeiten (Hersteller-Rezeptur) und **Produktion → Neue Produktion** + +**Geändert:** +- Ein Rohstoff in **zwei Phasen** (z. B. 6 % in A, 4 % in B) behält beim Wiederöffnen je Phase seine Ist-Menge. Auch Speichern des Artikels (Phase umbenennen, neue Phase voranstellen, umsortieren) ändert das nicht. +- Im **Produktionsergebnis** sind alle aktiven Einzelprodukte wählbar, auch nicht produktionsrelevante (5-ml-Variante). + +**So testen:** +1. Rezeptur mit demselben Rohstoff in Phase A (6 %) und Phase B (4 %) anlegen → Produktion mit 6 g / 4 g als Entwurf speichern → öffnen: **6 g in A, 4 g in B** (nicht 10/10). +2. Artikel öffnen, Phase „Vorbereitung" (nur Text) **vor** Phase A einfügen, Phase B umbenennen, speichern → Entwurf erneut öffnen: weiterhin 6 g / 4 g in den richtigen Phasen. +3. 5-ml-Variante auf „nicht produktionsrelevant" stellen → in der Planung oben nicht mehr wählbar, im Ergebnis unten weiterhin. + +--- + +## 21. Verpackungs-Vorschau: Bestand, Differenz, Lagerort (AP-52) + historischer Verbrauch + +**Wo:** **Produktion → Neue Produktion** / Produktion bearbeiten + +**Neu/geändert:** +- Vorschau-Spalten: **Artikel · Stück gesamt · Lagerort · Bestand · Differenz** (rot/grün wie bei den Rohstoffen). Rechnet aus dem **Produktionsergebnis** und reagiert live auf Produkt-/Mengenänderungen und zusätzliche Ergebniszeilen. +- Bei einer **bereits gebuchten** Produktion zeigt die Vorschau den **gespeicherten** Verbrauch, solange Ergebnisprodukte und Stückzahlen unverändert sind — auch wenn die Stückliste am Produkt inzwischen anders ist (Differenz dann „—"). Ändert man die Stückzahl, wird mit der aktuellen Stückliste neu gerechnet (Hinweis unter der Tabelle). +- **Füllgewicht** akzeptiert Nachkommastellen (39,5). + +**So testen:** +1. Verpackungsartikel mit Lagerplatz und Wareneingang anlegen → Neue Produktion: Vorschau zeigt Lagerort, Bestand und Differenz; Stückzahl über den Bestand erhöhen → Differenz wird **rot**. +2. Produktion mit 1 Tiegel je Stück buchen → am Produkt Stückliste auf 2 Tiegel ändern → Produktion bearbeiten: Vorschau zeigt weiter den gespeicherten Verbrauch; nur die Notiz ändern und speichern → Detailseite: Verpackungsverbrauch unverändert. Danach Stückzahl ändern → Neuberechnung. +3. Am Produkt Füllgewicht **39,5** eintragen → Soll-Gramm in der Produktion skalieren mit 39,5 (nicht 39). + +--- + +## 22. Ausschuss ohne Charge & Köln-Default + +**Wo:** **[Ausgang / Ausschuss](/admin/inventory/stock-disposals)** + +**Geändert:** Ohne gewählte Charge prüft das System gegen den Bestand des **gewählten Lagerorts** und verteilt die Menge nach frühestem MHD auf die Chargen dieses Lagerorts (je Charge eine Buchung). **Köln** ist vorbelegt. + +**So testen:** +1. Rohstoff mit zwei Chargen (älteres und jüngeres MHD) am Lagerort Köln; 400 g ohne Charge buchen → in der Ausgangsliste zwei Buchungen (ältere Charge zuerst); Rohstoff-Detail: Chargenrest entsprechend kleiner. +2. Denselben Rohstoff an einem **leeren** zweiten Lagerort ohne Charge buchen → wird abgelehnt („übersteigt den Restbestand am gewählten Lagerort"). + +--- + +## 23. Bestell-Abwicklung: Versand nur mit Zahlungsfreigabe + +**Wo:** **[Bestellungen → Abwicklung](/admin/inventory/orders)** + +**Geändert:** „Versendet" ist nur für **versandfertige** Bestellungen möglich (bezahlt; Rechnung/API sofort). Der Button ist sonst ausgegraut. „Konfektioniert" bleibt vorher möglich. + +**So testen:** Eine Vorkasse-Bestellung ohne Zahlungseingang → „Versendet" ist deaktiviert, „Konfektioniert" funktioniert. Zahlung eingegangen → „Versendet" buchbar, Abgang in der Produktbestand-Historie. + +--- + +## 24. Rohstoff-Detail: Preise nur für Admins, „Enthalten in" + +**Wo:** **[Rohstoffbestand](/admin/inventory/raw-material-stock)**, Rohstoff öffnen + +**Geändert:** +- Spalte **„Letzter Einkauf (Netto/kg)"** nur für Admins (Versand-/Produktionsmitarbeiter sehen keine Preise). +- **„Enthalten in"** zeigt **Anteil (%)** und **Verbrauch (g/Stück)** inkl. Faktor, Phasen summiert. + +**So testen:** Als Mitarbeiter (Copyreader) anmelden → keine Preisspalte; als Admin → Preis sichtbar. Produkt mit 50 g Füllgewicht und 20 % Anteil (Faktor 1,1) → „20,00 %" und „11,00 g (netto 10,00 g)". + +--- + +## 25. Einkauf: ml-Kopie, Historie, Verbrauch/Monat + +**Wo:** **[Einkauf & Wareneingang](/admin/inventory/stock-entries)**, **[Produktbestand → Historie](/admin/inventory/product-stock/history)**, **[Produktbestand](/admin/inventory/product-stock)** + +**Geändert:** +- **Kopieren** einer ml-Bestellung erhält Einheit und Dichte — auch nach Bearbeiten und Wareneingang. +- **Historie** zeigt bei mehr als 500 Treffern die Gesamtzahl und **„Alle anzeigen"**. +- **Verbrauch/Monat** zählt Versand → Storno → Wiederversand nur einmal. + +**So testen:** +1. 100-ml-Bestellung (Dichte 0,79) kopieren → Kopie öffnen: 100,00 **ml** → speichern → Wareneingang „100" → gebucht **79 g**. +2. Historie eines Produkts mit vielen Buchungen filtern → Hinweis „… von … Buchungen" und „Alle anzeigen". +3. Bestellung versenden, zurücksetzen, erneut versenden → Verbrauch/Monat steigt nur um die einfache Menge. + +--- + ## Hinweis am Rande -Die Listen **Einkauf & Wareneingang** und **Produktionen** zeigen aus Performance-Gründen die neuesten 500 Einträge; darüber erscheint ein Link **„Alle anzeigen"**. Offene Bestellungen sind immer vollständig gelistet. +Die Listen **Einkauf & Wareneingang**, **Produktionen** und die **Produktbestand-Historie** zeigen aus Performance-Gründen die neuesten 500 Einträge; darüber erscheint ein Link **„Alle anzeigen"**. Offene Bestellungen sind immer vollständig gelistet. ## Was bewusst noch nicht dabei ist (nachgelagert)