Warenwirtschaft: Anforderungsrunde 12.06. — Plan V5.0 + AP-26/AP-25/AP-22

Neue Anforderungen (docs/) interpretiert und als Entwicklungsplan V5.0
(AP-20 bis AP-28) aufgenommen; erste drei Pakete umgesetzt:

AP-26 Ausschuss-Gründe konfigurierbar:
- Stammdaten-Tabelle disposal_reasons + CRUD unter Einstellungen → Allgemein
- StockDisposalController liest aktive DB-Gründe statt hartkodierter Liste
- Seeder übernimmt die bisherigen 6 Gründe idempotent

AP-25 Lieferbestand — Datum statt Tage:
- "Nicht vorrätig" wird über Datepicker "Wieder lieferbar ab" gepflegt;
  Resttage-Hinweis zählt täglich automatisch herunter
- Interne Bestellliste wieder kaufbar: Hinweis erscheint zusätzlich zu
  den Mengen-Buttons (VP entscheidet selbst)

AP-22 Produktbestand-Erweiterungen:
- Default-Sortierung nach Dringlichkeit, Status-Kopf toggelt
- Alle vier Status-Kacheln als Filter klickbar
- Neue Spalte "Verbrauch/Monat" (Ø Abgänge der letzten 6 Monate)
- Produkt-Flag "Im Produktbestand anzeigen" (products.show_in_product_stock)

Tests: 77 grün (DisposalReasonSettings 8, ProductOutOfStock 8,
ProductStock 13 + Regression). Hinweise-Doku + Plan-Protokoll fortgeschrieben;
nächster Schritt laut Plan: AP-21 (INCI-Erweiterungen).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-06-12 16:28:45 +00:00
parent a8f6fef38e
commit e53201f229
32 changed files with 1377 additions and 94 deletions

View file

@ -4,7 +4,7 @@
> wichtige Hinweise für die Nutzung sowie festgehaltene Entscheidungen, die
> später noch ausgebaut werden können.
>
> **Stand:** 03.06.2026
> **Stand:** 12.06.2026
---
@ -12,8 +12,9 @@
### Bereits nutzbar
- **Einstellungen → Allgemein:** Umsatzsteuersätze und Lieferzeit-Vorlagen
(inkl. Tageswert) pflegbar.
- **Einstellungen → Allgemein:** Umsatzsteuersätze, Lieferzeit-Vorlagen
(inkl. Tageswert) und **Ausschuss-Gründe** pflegbar. Die Ausschuss-Gründe
erscheinen im Ausschuss-Formular (nur aktive, in gepflegter Reihenfolge).
- **Stammdaten:** Lagerorte, Rohstoffqualität, Verpackungsmaterial,
Lieferanten-Kategorien.
- **Lieferanten:** Bestellweg (E-Mail / Online-Shop), Bestell-Adresse,
@ -28,11 +29,12 @@
- **Produkt-Klassen:** Einzelprodukt vs. **Set** (Bündel mehrerer Einzelprodukte
mit Menge). Sets werden nicht produziert; optional kann ein Einzelprodukt einem
Hauptprodukt zugeordnet werden.
- **„Nicht vorrätig":** Produkt zeitlich begrenzt (mit Tagesangabe →
„In ca. X Tagen wieder da!") oder auf unbestimmte Zeit als nicht vorrätig
markierbar. Im öffentlichen Shop erscheint nur ein Hinweis, der Kauf bleibt
möglich. In der **internen Bestellliste** ersetzt der rote Hinweis die
Mengen-Buttons – dort ist das Produkt also vorübergehend nicht bestellbar.
- **„Nicht vorrätig":** Produkt zeitlich begrenzt (mit **Datum** „Wieder
lieferbar ab" → der Hinweis „In ca. X Tagen wieder da!" zählt täglich
automatisch herunter) oder auf unbestimmte Zeit als nicht vorrätig
markierbar. Es erscheint **überall nur ein Hinweis** – im öffentlichen Shop
**und** in der internen Bestellliste bleibt der Kauf möglich; der
Vertriebspartner entscheidet selbst, ob er die Ware später bekommt.
- **Rohstoffbestand:** Übersicht aller aktiven Rohstoffe mit echtem Restbestand
(Wareneingang abzüglich Produktionsverbrauch), durchschnittlichem Verbrauch
pro Tag, voraussichtlichem „auf Null"-Datum und Hochrechnung für 1/3/6/12
@ -53,14 +55,21 @@
ausgewähltem Produkt. Suche und Filter „nur kritische anzeigen"; bei
unterschrittenem kritischem Bestand ist die Zeile rot, beim Meldebestand gelb –
ein Badge in der Navigation zeigt die Anzahl. Schwellwerte werden je Produkt im
Produktformular (Warenwirtschaft) gepflegt.
Produktformular (Warenwirtschaft) gepflegt. Die Übersicht ist standardmäßig
nach **Dringlichkeit** sortiert (kritische Produkte oben, Klick auf „Status"
dreht die Reihenfolge), alle vier Status-Kacheln oben sind als Filter
anklickbar, und die Spalte **„Verbrauch/Monat"** zeigt den Durchschnitt der
Abgänge der letzten 6 Monate. Produkte ohne Lagerführung (z. B. Abrechnung
Druckkosten, Logo-Etiketten) lassen sich über die Produkt-Option
**„Im Produktbestand anzeigen"** aus der Übersicht ausblenden.
- **Produktbestand-Historie:** Revisionssichere Liste aller Bewegungen
(Eingang/Ausgang, Stückzahl, Datum, Grund, Hinweis, Mitarbeiter), filterbar
nach Produkt, Richtung, Grund und Zeitraum (Monat/Jahr).
- **Ausgang / Ausschuss:** Erfassung von Rohstoff- und Verpackungs-Abgängen
(z. B. Bruch, Verfall/MHD, Qualitätsmangel, Schwund, Testverbrauch). Pflichtfeld
**Grund**, optionale **Charge** (setzt den Lagerort automatisch), Menge in
(z. B. Bruch, Verfall/MHD, Qualitätsmangel, Schwund, Testverbrauch). Die
Gründe sind selbst pflegbar unter **Einstellungen → Allgemein →
Ausschuss-Gründe**. Pflichtfeld **Grund**, optionale **Charge** (setzt den Lagerort automatisch), Menge in
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.