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

@ -214,6 +214,48 @@ Kostenvoranschlaege:
- Die oeffentliche Website zeigt diese Daten erst nach einer spaeteren Website-Version an. Olympus stellt die API dafuer bereit.
- PDF-Erzeugung, Lexoffice und Rechnungen sind Folgefeatures.
## Lager / Ersatzteile
Das Lagermodul ist ab v0.8.7 aktiv.
Migration lokal ausfuehren:
```bash
cd backend/hermes
SECRET_KEY=local-check uv run alembic upgrade head
```
Athena erreicht Lagerdaten ausschliesslich ueber BFF-Routen:
- `/api/inventory/items`
- `/api/inventory/items/[id]`
- `/api/inventory/items/[id]/stock/adjust`
- `/api/inventory/items/[id]/stock/reserve`
- `/api/inventory/items/[id]/stock/release`
- `/api/inventory/items/[id]/stock/consume`
- `/api/inventory/items/[id]/movements`
- `/api/inventory/categories`
- `/api/inventory/categories/[id]`
- `/api/inventory/locations`
- `/api/inventory/locations/[id]`
- `/api/inventory/suppliers`
- `/api/inventory/suppliers/[id]`
Hermes-Endpunkte liegen unter `/inventory/...` und sind mit `inventory.*` Permissions geschuetzt.
Bestandslogik:
- SKU optional; bei leerer SKU erzeugt Hermes `ET-<jahr>-000001`.
- `quantity_available = quantity_on_hand - quantity_reserved`.
- Bestandsanpassungen, Reservierungen, Freigaben und Verbrauch erzeugen `inventory_stock_movements`.
- Artikel mit Bewegungen werden deaktiviert statt hart geloescht.
- Preise werden intern in cents gespeichert; Athena akzeptiert deutsche Euro-Eingaben wie `1`, `1,50` und `1.50`.
Folgefeatures:
- Integration in Kostenvoranschlaege folgt in v0.8.8.
- CSV-Template, Import/Export und Barcode-/QR-Funktionen bleiben vorbereitet, sind aber in v0.8.7 nicht aktiv.
Vorbereitete Website-/Portal-Routen fuer spaeter:
- `/status/<token>`