Warenwirtschaft: AP-53 — Gramm-Mengen mit drei Nachkommastellen (Produktion, Wareneingang, Ausschuss)

Kundennachtrag 09.09.2026: Ist-Mengen je Charge in der Produktion sollen auf das Milligramm eingegeben werden können (z. B. 0,125 g). Bisher rundeten Datenbank (decimal 12,2), Bestandslogik, Anzeige und Toleranzsockel auf zwei Stellen; „0,125" wurde still zu 0,13, „0.125" nach der Punkt-Regel zu 125 g.

- Migration 2026_09_09_100000: production_ingredients.quantity_used, stock_entries.ordered_quantity/received_quantity, stock_disposals.quantity → decimal(12,3); Casts decimal:3. Auf der Dev-DB (Live-Kopie) ausgeführt, 53/78/7 Zeilen unverändert.
- InventoryService::QUANTITY_DECIMALS = 3; roundWawiQuantity() ersetzt alle round(…, 2) in InventoryService, ProductionService, StockDisposalController/-Request, StockEntryRepository/-Controller, RawMaterialStockController.
- formatWawiQuantity($v, $min = 2): bis drei Stellen, mindestens zwei — Produktionsdetail, Einkauf Liste/Detail/Formular, Ausschuss-Liste, Chargen-Rest im Rohstoff-Detail.
- Eingaberegel (reFormatWawiNumber, JS parseGerman/parseNumber): zusätzlich „0.xxx" als Dezimalzahl; „1.500" bleibt 1500. Produktions-JS: fmt() bis drei Stellen, fmtInput() schreibt gespeicherte Zahlen deutsch ins Feld (1,125 statt 1.125 = 1125).
- Soll-Ist-Toleranz: Sockel 0,05 → 0,005 g; Ausschuss min 0,001.
- Doku: Hinweise (Neu/geändert), Leitfaden Version 3.1 mit Abschnitt 26, Plan V7 AP-53, README (Deploy-Checkliste, Suite 378).

Tests: QuantityPrecisionTest (6) — Parsing, Anzeige, Produktion 0,125 g exakt + Rest 9,875 g, Entwurf 1,125 wiederöffnen, Toleranz Kleinmengen, Ausschuss 0,005 g.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-09 15:54:29 +00:00
parent 021edbfcc7
commit b8180a06a1
25 changed files with 378 additions and 71 deletions

View file

@ -5,8 +5,8 @@
> später noch ausgebaut werden können.
>
> **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).
> steht unter **Einstellungen → Leitfaden** (aktuell **Version 3.1**: Runde V7.0
> plus Nachbesserungen und Nachträge AP-52/AP-53 vom 08./09.09.2026).
---
@ -220,11 +220,25 @@ 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)
### Neu / geändert 08./09.09.2026 (Nachbesserungen + Nachträge AP-52/AP-53)
Nach der unabhängigen Prüfung der V7-Umsetzung wurden alle Befunde behoben. Was sich
dadurch für die Bedienung ändert:
- **Mengen mit drei Nachkommastellen (AP-53, Kundennachtrag 09.09.2026):** Die
Ist-Mengen je Charge in der **Produktion** lassen sich jetzt auf das Milligramm
eingeben, z. B. **0,125 g** Konservierer. Damit Restbestände ohne Rundungsdifferenz
aufgehen, gilt das genauso für die **Bestell-/Eingangsmenge im Wareneingang** und
die **Ausschussmenge**. Gespeichert, gerechnet (Chargen-Rest, FEFO-Verteilung,
Verfügbarkeit) und angezeigt wird einheitlich mit drei Stellen; Übersichten zeigen
weiterhin mindestens zwei Stellen („12,50 g") und die dritte nur, wenn sie belegt
ist („0,125 g"). Bestehende Buchungen bleiben unverändert (dritte Stelle 0).
**Eingaberegel:** Dezimaltrenner ist das **Komma** („0,125"). Ein **Punkt** mit
1–2 Stellen („5.1", „5.12") oder „0.125" wird ebenfalls als Komma gelesen; ein Punkt
mit drei Stellen hinter einer anderen Ziffer bleibt der Tausenderpunkt
(„1.500" = 1500 g). Die Soll-Ist-Toleranz von 5 % hat jetzt einen Sockel von 0,005 g
(vorher 0,05 g), damit auch Kleinstmengen sauber geprüft werden.
- **Häkchen „In der Produktion anzeigen" (AP-47, 09.09.2026 verschoben und ausformuliert):**
Das bisherige Kästchen „Produktionsrelevant" oben im Produktformular war schwer zu
finden. Es sitzt jetzt in der Karte **Warenwirtschaft** unter „Im Produktbestand

View file

@ -1,4 +1,4 @@
# Testleitfaden Warenwirtschaft — Version 3
# Testleitfaden Warenwirtschaft — Version 3.1
> **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.
@ -6,7 +6,7 @@
>
> - **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) — 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**.
> - **Teil C** (Abschnitte 19–26) — **neu: Nachbesserungen aus der Umsetzungsprüfung und Nachträge AP-52/AP-53 (08./09.09.2026)**. Wer nur die neuen Punkte prüfen will, springt direkt zu **Teil C**.
---
@ -401,6 +401,24 @@
---
## 26. Mengen mit drei Nachkommastellen (AP-53)
**Wo:** **[Produktion](/admin/inventory/productions)** (Ist-Menge je Charge), **[Einkauf & Wareneingang](/admin/inventory/stock-entries)** (Bestell-/Eingangsmenge), **[Ausschuss](/admin/inventory/stock-disposals)** (Menge)
**Neu:**
- Gramm-Mengen werden auf **drei Nachkommastellen** (Milligramm) eingegeben, gespeichert, gerechnet und angezeigt — z. B. **0,125 g**. Bisher wurde auf zwei Stellen gerundet (0,125 → 0,13).
- Anzeige: mindestens zwei Stellen („12,50 g"), die dritte nur wenn belegt („0,125 g"); Chargen-Restbestände im Rohstoff-Detail zeigen sie ebenfalls.
- Eingabe: **Komma** als Dezimaltrenner. Punkt mit 1–2 Stellen („5.12") oder „0.125" wird als Komma gelesen; „1.500" bleibt 1500 g (Tausenderpunkt).
- Soll-Ist-Toleranz: 5 % mit Sockel 0,005 g (vorher 0,05 g).
**So testen:**
1. Rezeptur mit einem Rohstoff zu 0,125 % (bzw. 0,125 g je Stück) anlegen, Produktion für 1 Stück: Ist-Menge **0,125** eintragen → Ampel grün, abschließen → Produktionsdetail zeigt **0,125 g**, Rohstoff-Detail: Chargen-Rest um genau 0,125 g kleiner.
2. Denselben Entwurf mit **1,125** speichern und wieder öffnen → im Feld steht **1,125** (nicht 1.125 oder 1,13).
3. Wareneingang mit **250,375 g** buchen → Detail zeigt 250,375 g; Ausschuss **0,005 g** buchen → geht durch, Restbestand rechnet auf drei Stellen.
4. Gegenprobe Tausenderpunkt: Ist-Menge **1.500** eingeben → Summe der Phase zeigt 1.500,00 g (nicht 1,5).
---
## Hinweis am Rande
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.