feat(inventory): add spare parts management

This commit is contained in:
Schubert Ferenc 2026-07-05 11:32:06 +02:00
parent abc6e308dd
commit fb5c2cc26a
43 changed files with 2950 additions and 2 deletions

View file

@ -219,6 +219,60 @@ Tabellen:
- `repair_public_access_tokens`
- `repair_notification_events`
## Lager / Ersatzteile
Das Modul `Lager / Ersatzteile` verwaltet Bauteile und Verbrauchsmaterial fuer Werkstattprozesse. Es ist in v0.8.7 als eigenstaendige Lagerbasis umgesetzt und fuer die spaetere Verknuepfung mit Reparaturen und Kostenvoranschlaegen vorbereitet.
Datenfluss:
```text
Browser -> Athena /api/inventory... -> Hermes /inventory... -> PostgreSQL
```
Kernregeln:
- Browser greifen nie direkt auf Hermes zu.
- Artikelnummern/SKUs sind eindeutig.
- Leere SKU bei Erstellung wird automatisch im Format `ET-<jahr>-000001` vergeben.
- Preise werden intern in cents gespeichert und in Athena als Euro eingegeben.
- `quantity_available` wird konsistent als `quantity_on_hand - quantity_reserved` gespeichert.
- Bestandsaenderungen erfolgen ueber Bewegungen, nicht ueber freie Client-Manipulation.
- Artikel mit Bewegungen werden bei Delete deaktiviert statt hart geloescht.
Tabellen:
- `inventory_items`
- `inventory_categories`
- `inventory_locations`
- `inventory_suppliers`
- `inventory_stock_movements`
Bestandsbewegungen:
- `initial`
- `purchase`
- `adjustment`
- `reservation`
- `release`
- `consumption`
- `return`
- `correction`
RBAC-Permissions:
- `inventory.read`
- `inventory.create`
- `inventory.update`
- `inventory.delete`
- `inventory.stock.adjust`
- `inventory.stock.reserve`
- `inventory.stock.consume`
- `inventory.manage.masterdata`
Dashboard-Kennzahlen fuer Lagerdaten werden nur mit `inventory.read` ausgeliefert. Audit Logs und Activity Feed enthalten Artikel- und Bestandsaktionen, aber keine unnoetigen sensiblen Lieferantendaten.
Die Integration von Lagerartikeln in Kostenvoranschlagspositionen folgt in v0.8.8. CSV-Import/Export und Barcode-/QR-Funktionen bleiben vorbereitete Folgefeatures.
Hermes-Endpunkte:
- `GET /repairs`