INV-005 (Ablaufdaten) und INV-006 (Fehlbestand/Mindermenge) decken sich vollständig mit bereits ausgereiften MABEA-Modulen. INV-007 (Ausgabe/ Rückgabe) ist eine echte Lücke: MABEA kennt nur Standortzuordnung von Objekten (Lagerbewegung), kein personenbezogenes Ausleih-Konzept für Verbrauchsmaterial/Einzelteile. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
176 lines
8.4 KiB
Markdown
176 lines
8.4 KiB
Markdown
# Epic 06 — Inventory
|
|
|
|
Details zu INV-001 … INV-007 (vollständig).
|
|
|
|
---
|
|
|
|
## INV-001 — Materialarten/Kategorien
|
|
|
|
- **Ziel:** Grobe Materialarten-Gliederung innerhalb Inventory.
|
|
- **Beschreibung:** Unterscheidet sich von ASSET-001 durch Fachlichkeit (Medizin/
|
|
Sanitätsmaterial/Funk/Strom/...) statt technischer Asset-Kategorie — **Entscheidung:
|
|
ASSET-001 wiederverwenden**, keine Doppelstruktur.
|
|
- **Benutzerwert:** Konsistente Kategorien app-weit statt zwei parallele Systeme.
|
|
- **Abhängigkeiten:** ASSET-001
|
|
- **Datenmodell:** keins neu (Wiederverwendung von `asset_category`)
|
|
- **Backend/Frontend/Mobile:** keins zusätzlich
|
|
- **QR-Code/Seriennummer/Inventarnummer:** nein
|
|
- **Akte:** nein direkt
|
|
- **Rechte:** wie ASSET-001
|
|
- **Audit:** wie ASSET-001
|
|
- **Akzeptanzkriterien:** keine doppelte Kategorie-Verwaltung im UI.
|
|
- **Tests:** keine zusätzlichen.
|
|
- **DoD:** Entscheidung dokumentiert (kein neuer Code nötig) — MABEA macht das bereits so
|
|
(Material nutzt dieselbe Kategorie/Bereich-Struktur wie Objekte).
|
|
|
|
## INV-002 — Einzelgeräte (SN-pflichtig)
|
|
|
|
- **Ziel:** Materialtyp, der als Asset (nicht Consumable) geführt wird, mit Pflicht-SN.
|
|
- **Beschreibung:** Kennzeichnung am AssetType („materialtyp=geraet_sn"), erzwingt
|
|
SN-Erfassung bei Instanzanlage.
|
|
- **Benutzerwert:** Geräte wie Pulsoxymeter/Defibrillator korrekt als Einzelstücke mit
|
|
Prüfhistorie führen.
|
|
- **Abhängigkeiten:** ASSET-003, IDENT-004
|
|
- **Datenmodell:** `asset_type.materialtyp` (enum: standard/ablauf_charge/geraet_sn)
|
|
- **Backend:** Validierung SN-Pflicht bei diesem Typ
|
|
- **Frontend:** Formular passt sich Materialtyp an
|
|
- **Mobile:** Erfassung im Feld
|
|
- **QR-Code:** eigener QR je Instanz (IDENT-006)
|
|
- **Seriennummer:** hier Pflichtfeld
|
|
- **Inventarnummer:** ergänzend
|
|
- **Akte:** Stammdatenbereich
|
|
- **Rechte:** Materialwart+
|
|
- **Audit:** Änderung geloggt
|
|
- **Akzeptanzkriterien:** Anlage ohne SN bei diesem Typ wird abgelehnt.
|
|
- **Tests:** Validierungstest.
|
|
- **DoD:** deckt sich mit MABEA `materialtyp=geraet_sn` + `GeraetInstanz` (bereits
|
|
umgesetzt).
|
|
|
|
## INV-003 — Verbrauchsmaterial (Mengen)
|
|
|
|
- **Ziel:** Mengenbasierte Führung statt Einzel-Instanz.
|
|
- **Beschreibung:** Consumable-Bestand als Zahl+Einheit statt Liste von Objekten.
|
|
- **Benutzerwert:** Verbandsmaterial/Medikamente ohne unnötigen Verwaltungsaufwand pro
|
|
Stück.
|
|
- **Abhängigkeiten:** ASSET-008
|
|
- **Datenmodell:** `bestand` (consumable_id, standort_id, menge, einheit)
|
|
- **Backend:** Mengenanpassung (Zu-/Abgang)
|
|
- **Frontend:** Mengenfeld statt Instanzliste
|
|
- **Mobile:** Mengenerfassung bei Kontrolle
|
|
- **QR-Code:** nein direkt
|
|
- **Seriennummer:** entfällt
|
|
- **Inventarnummer:** ggf. je Charge (INV-004), nicht je Stück
|
|
- **Akte:** vereinfachte Bestandsansicht
|
|
- **Rechte:** Mitarbeiter darf melden, Materialwart verwaltet Struktur
|
|
- **Audit:** Mengenänderung geloggt
|
|
- **Akzeptanzkriterien:** Menge erhöhen/verringern, negative Menge unmöglich.
|
|
- **Tests:** Grenzwerttest (0, negativ abgelehnt).
|
|
- **DoD:** deckt sich mit MABEA `Objektposition.istmenge`
|
|
(materialtyp=standard/ablauf_charge).
|
|
|
|
## INV-004 — Chargenverwaltung
|
|
|
|
- **Ziel:** Mehrere Chargen desselben Verbrauchsmaterials unterscheidbar führen.
|
|
- **Beschreibung:** Chargennummer + Ablaufdatum je Teilbestand statt nur am Gesamtbestand.
|
|
- **Benutzerwert:** Rückrufaktionen chargen-genau möglich, unterschiedliche Ablaufdaten pro
|
|
Charge korrekt abgebildet.
|
|
- **Abhängigkeiten:** INV-003
|
|
- **Datenmodell:** `charge` (consumable_bestand_id, chargennummer, ablaufdatum, menge)
|
|
- **Backend:** CRUD je Charge
|
|
- **Frontend:** Chargen-Liste je Verbrauchsmaterial
|
|
- **Mobile:** Erfassung bei Wareneingang
|
|
- **QR-Code:** nein
|
|
- **Seriennummer:** entfällt
|
|
- **Inventarnummer:** Chargennummer ist eine Art Sub-Identität
|
|
- **Akte:** Bestandsverlauf-Detailebene
|
|
- **Rechte:** Materialwart+
|
|
- **Audit:** Änderung geloggt
|
|
- **Akzeptanzkriterien:** mehrere Chargen mit unterschiedlichem Ablaufdatum gleichzeitig
|
|
führbar.
|
|
- **Tests:** Mehrfach-Chargen-Test.
|
|
- **DoD:** **echte MABEA-Lücke:** MABEA führt `chargennummer`+`ablaufdatum` nur EINFACH je
|
|
Objektposition (ein Wert, keine Liste) — mehrere Chargen gleichzeitig an derselben Position
|
|
sind aktuell NICHT abbildbar. Diese Kachel wäre in MABEA kein reiner Nachzug, sondern ein
|
|
Datenmodell-Umbau (1:1 → 1:n).
|
|
|
|
## INV-005 — Ablaufdaten & Warnschwellen
|
|
|
|
- **Ziel:** Frühwarnung vor Ablauf von Verbrauchsmaterial/Chargen.
|
|
- **Beschreibung:** Warnschwelle (Tage vor Ablauf) je Material oder global konfigurierbar,
|
|
Statusberechnung (gültig/bald ablaufend/abgelaufen).
|
|
- **Benutzerwert:** Materialwart erkennt rechtzeitig, bevor Material abläuft, kann
|
|
rotieren/nachbestellen.
|
|
- **Abhängigkeiten:** INV-004
|
|
- **Datenmodell:** `warnzeitraum_tage` (an Material oder global als Default) — Status wird
|
|
berechnet, nicht gespeichert
|
|
- **Backend:** Berechnungsfunktion + Endpoint „bevorstehende Ablaufdaten"
|
|
- **Frontend:** Dashboard-Kachel/Liste
|
|
- **Mobile:** Anzeige
|
|
- **QR-Code/Seriennummer/Inventarnummer:** nein
|
|
- **Akte:** Bestandsverlauf-Detailebene
|
|
- **Rechte:** wie Lese-Recht (Verantwortliche)
|
|
- **Audit:** nein (reine Berechnung)
|
|
- **Akzeptanzkriterien:** korrekte Einteilung gültig/bald_ablaufend/abgelaufen nach
|
|
Schwelle.
|
|
- **Tests:** Schwellenwert-Tests (Randfälle: genau am Schwellenwert, exakt heute).
|
|
- **DoD:** deckt sich mit MABEA (`bevorstehende_ablaufdaten()`, Dashboard-Kachel) — bereits
|
|
vollständig umgesetzt.
|
|
|
|
## INV-006 — Mindestbestände & Fehlbestandserkennung
|
|
|
|
- **Ziel:** Automatische Erkennung, wenn Ist < Soll.
|
|
- **Beschreibung:** Sollmenge je Material/Ort, Vergleich mit Istmenge, automatischer
|
|
Fehlbestand-Vorgang bei Abweichung.
|
|
- **Benutzerwert:** Kern der ganzen Bestandskontrolle — keine manuelle Dauerüberwachung
|
|
nötig.
|
|
- **Abhängigkeiten:** INV-003, LOAD-001 (Soll kommt oft aus dem Beladungsplan)
|
|
- **Datenmodell:** `fehlbestand` (material_id, ort_id, sollmenge, istmenge, fehlmenge,
|
|
status, entstanden_am)
|
|
- **Backend:** Erkennungslogik bei Kontrolle/Bestandsänderung
|
|
- **Frontend:** Fehlbestand-Liste, Nachfüll-Aktion
|
|
- **Mobile:** Nachfüllen im Feld
|
|
- **QR-Code/Seriennummer/Inventarnummer:** nein
|
|
- **Akte:** eigener Bereich bzw. Teil des Bestandsverlaufs
|
|
- **Rechte:** Melden/Nachfüllen: Mitarbeiter+; Mindermenge genehmigen: Verantwortliche
|
|
- **Audit:** Entstehung/Erledigung geloggt
|
|
- **Akzeptanzkriterien:** Abweichung erzeugt Fehlbestand automatisch, Nachfüllung
|
|
reduziert Fehlmenge korrekt, bei 0 automatisch erledigt.
|
|
- **Tests:** Erkennungstest, Nachfüll-Test, Mindermenge-Sonderfall.
|
|
- **DoD:** deckt sich 1:1 mit MABEA (Fehlbestand-Kernmodul inkl. Mindermenge-Genehmigung)
|
|
— eines der am weitesten ausgereiften Module im gesamten Projekt, bereits vollständig
|
|
umgesetzt.
|
|
|
|
## INV-007 — Ausgabe/Rückgabe
|
|
|
|
- **Ziel:** Verbrauchsmaterial/Leihgeräte gezielt an Person/Einsatz ausgeben und
|
|
zurücknehmen, nicht nur pauschal Bestand ändern.
|
|
- **Beschreibung:** Ausgabevorgang mit Empfänger (Person/Einheit/Einsatz), Rückgabe
|
|
schließt den Vorgang, offene Ausgaben bleiben sichtbar.
|
|
- **Benutzerwert:** Nachvollziehbarkeit „wer hat was gerade" — z.B. Leihgeräte, Schlüssel,
|
|
Funkgeräte.
|
|
- **Abhängigkeiten:** INV-003
|
|
- **Datenmodell:** `ausgabe` (material_id/asset_id, menge, empfaenger_id, ausgegeben_am,
|
|
rueckgabe_am, status offen/zurück)
|
|
- **Backend:** Ausgabe-/Rückgabe-Endpunkte
|
|
- **Frontend:** Ausgabe-Formular, Liste offener Ausgaben
|
|
- **Mobile:** Ausgabe im Feld erfassen
|
|
- **QR-Code:** Scan des Assets kann Ausgabevorgang direkt starten
|
|
- **Seriennummer/Inventarnummer:** Anzeige, keine neue Logik
|
|
- **Akte:** Bewegungs-/Historienbereich — „aktuell ausgegeben an" als Sonderfall von
|
|
Standort (Person statt Lagerplatz)
|
|
- **Rechte:** Mitarbeiter+ für Ausgabe/Rückgabe
|
|
- **Audit:** jeder Vorgang geloggt
|
|
- **Akzeptanzkriterien:** Ausgabe erzeugt offenen Vorgang, Rückgabe schließt ihn,
|
|
überfällige Rückgaben erkennbar.
|
|
- **Tests:** Ausgabe-/Rückgabe-Test, Überfällig-Test.
|
|
- **DoD:** mind. ein vollständiger Ausgabe-Rückgabe-Zyklus getestet.
|
|
|
|
---
|
|
|
|
**MABEA-Ist-Stand-Abgleich:** INV-001…003 sowie INV-005/006 vollständig vorhanden — INV-006
|
|
(Fehlbestand+Mindermenge) ist sogar eines der am weitesten ausgereiften Module im gesamten
|
|
Projekt. **INV-004 (echter struktureller Umbau, siehe oben) und INV-007 (Ausgabe/Rückgabe)
|
|
fehlen komplett:** MABEA kennt nur Standortzuordnung von Objekten (Lagerbewegung), aber kein
|
|
personenbezogenes Ausleih-Konzept für Verbrauchsmaterial/Einzelteile — „wer hat gerade das
|
|
Funkgerät" ist aktuell nicht beantwortbar.
|