Zum Hauptinhalt springen

Lager-Spots (WarehouseSpots)

Zweck

Lager-Spots (WarehouseSpot) bilden konkrete Lagerorte innerhalb eines Lagers ab — z. B. „Regal A1", „Fach 03B". Pro Spot wird ein QR-Code generiert, der per Smartphone-Scan vor Ort die Spot-Identitaet aufloesst. Die Verwaltung erfolgt ausschliesslich über die Sub-Routen am Lager: /warehouses/:id/locations (Liste) und /warehouses/:id/locations/:warehouseSpotId (Detail).

Voraussetzungen

- Es gibt mindestens ein Lager, dem der Spot zugeordnet wird. - Berechtigung `create:WarehouseSpot`.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_Warehouse, WarehouseSpotSpots in Lager-Detail sichtbar
create/update/deleteWarehouseSpotPflegenAPP_SPEAMCORE_CREATE/UPDATE/DELETE_WAREHOUSE_SPOT

Schritt-für-Schritt-Anleitung

Spot anlegen

  1. Lager (/warehouses/:id) öffnen.
  2. Tab Lagerorte (/warehouses/:id/locations).
  3. + Neu klicken — leerer Spot wird angelegt, Detail-Seite öffnet sich.
  4. Name pflegen (z. B. „Regal A1").
  5. Änderungen werden automatisch gespeichert. Der QR-Code wird im afterUpdate-Hook bei Namens-Änderungen invalidiert.

Spot löschen

DELETE /api/warehouse-spots/:id — Soft-Delete. Verknuepfungen zu Bestand bleiben technisch bestehen, sind aber nach dem Delete leere Referenzen.

Lagerplätze-Tab im Lager (Hauptlager Werkstatt Stuttgart) mit Liste der Lagerplätze — Regal A1 Schaltschränke, Regal A2 Kabel & Leitungen, Regal B1 Schutzgeräte, Regal B2 Kleinmaterial — und Button „+ Lagerplatz hinzufügen" (Test-Daten).

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

UI-Elemente

Komponente: QR-Code-Anzeige

Wird automatisch bei Namensaenderung neu erzeugt. Kann gedruckt und am Lagerort angebracht werden.

Felder und Eingaben

FeldnamePflichtDatentypWirkung beim AusfuellenVoraussetzung
namejaStringAnzeige im Lager-Tab und auf dem QR-Code-Aufkleber. Änderung triggert QR-Code-Invalidation.
warehouseIdja (disabled nach Anlage)UUIDZuordnung zum Lager. Wird beim Anlegen aus dem Routing-Kontext gesetzt.view:Warehouse.
`warehouseId` ist nach Anlage **immutable** — Spot kann nicht in ein anderes Lager verschoben werden. Lösen Sie ggf. den Spot, legen Sie einen neuen im Ziel-Lager an und übernehmen Sie die Bestaende manuell.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

  • Lager (/warehouses) — Pflicht-Parent.
  • Betriebsmittel (/operating-equipments) — OperatingEquipment.warehouseSpotId referenziert einen Spot.
  • WarehouseProduct — Bestand kann pro Spot gefuehrt werden.

Häufige Fehler und Lösungen

FehlerLösung
QR-Code aktualisiert nichtNur Namensaenderung triggert Invalidation. Bei anderen Änderungen QR-Code manuell neu erzeugen.
Spot lasst sich nicht in anderes Lager verschiebenPer Design — neuen Spot anlegen, Bestaende manuell übernehmen.
Spot fehlt im Auswahl-SelectLager nicht zugeordnet, Soft-Delete oder Berechtigung fehlt.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/warehouse-spotsListeview WarehouseSpot
POST/api/warehouse-spotsAnlegencreate WarehouseSpot
PATCH/api/warehouse-spots/:idÄndern (QR-Invalidation bei Name)update WarehouseSpot
DELETE/api/warehouse-spots/:idSoft-Deletedelete WarehouseSpot

Versionshinweise

  • 2026-04-29: Initiale Veroeffentlichung.