Zum Hauptinhalt springen

Betriebsmittel

Zweck

Betriebsmittel sind Werkzeuge, Geraete und Material, die in der Brandschutz-Praxis unterwegs sind — z. B. Pruefkoffer, Werkzeuge, Messgeraete. Pro Betriebsmittel pflegen Sie Lager-Ort, Lieferant, Bewegungen, Dokumente und einen QR-Code zur Vor-Ort-Identifikation.

Voraussetzungen

- Mindestens ein Lager (`Warehouse`) ist angelegt. - Optional: Lager-Spots (`WarehouseSpot`) und Lieferanten. - Berechtigung `create:OperatingEquipment`.

Berechtigungen (CASL)

Frontend-Page-Guard:

ActionSubjectKeycloak-Rolle
viewFE_OperatingEquipment
viewOperatingEquipmentAPP_SPEAMCORE_VIEW_OPERATING_EQUIPMENT

Tab-Subjects:

TabSub-PfadSubject
Bewegungen/operating-equipments/:id/operating-equipment-movement-operating-equipmentsOperatingEquipmentMovement:view
Dokumente/operating-equipments/:id/documentsDocument:view, DocumentParent:view

API-Datenzugriff:

ActionSubjectEndpointKeycloak-Rolle
viewOperatingEquipmentGET /api/operating-equipments, GET /api/operating-equipments/:idAPP_SPEAMCORE_VIEW_OPERATING_EQUIPMENT
createOperatingEquipmentPOST /api/operating-equipmentsAPP_SPEAMCORE_CREATE_OPERATING_EQUIPMENT
updateOperatingEquipmentPATCH /api/operating-equipments/:idAPP_SPEAMCORE_UPDATE_OPERATING_EQUIPMENT
deleteOperatingEquipmentDELETE /api/operating-equipments/:idAPP_SPEAMCORE_DELETE_OPERATING_EQUIPMENT

Schritt-für-Schritt-Anleitung

Betriebsmittel anlegen

  1. Betriebsmittel (/operating-equipments) → + Neu.
  2. Das System legt einen leeren Datensatz an und navigiert direkt auf die Detail-Seite (Mutation mit leerem Body).
  3. Pflegen Sie name, wählen Sie ein Lager und optional einen Spot.
  4. Optional: Lieferant, Bilder, Custom-Felder ergaenzen.
  5. Änderungen werden automatisch gespeichert.

Lager-Ort wechseln

Wenn Sie ein Betriebsmittel umlagern wollen, ändern Sie warehouseId — der warehouseSpotId-Filter wird sofort neu gebaut. Der vorhandene Spot wird automatisch geleert, wenn er nicht im neuen Lager existiert.

Code-Lookup: Bewegungen werden nicht automatisch beim Ändern eines OperatingEquipments erzeugt — sie sind explizite Datensaetze, die über /operating-equipment-movements angelegt werden. Die Sub-Liste /operating-equipments/:id/operating-equipment-movement-operating-equipments zeigt nur Bewegungen, in denen das Equipment bereits beteiligt war.

QR-Code einsetzen

Der QR-Code auf der Detail-Seite zeigt auf die Public-Route /qr/:id und ermoeglicht im Aussendienst Vor-Ort-Identifikation per Smartphone-Kamera.

Listenansicht — operating-equipments

Betriebsmittel-Detailseite (EQP-2026-00005, „Leitern-Set 3-teilig 6m") — Tab Allgemeine Daten mit Feldern Betriebsmittel-Nr., Name, Lager, Hersteller, Modell, Seriennummer, Kaufdatum; Bild-Platzhalter und QR-Code rechts, Kommentar-Karte (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

Button: „+ Neu"

Listenseite. Erfordert create:OperatingEquipment. Erzeugt einen leeren Datensatz via POST /api/operating-equipments und navigiert auf Details — Sie tippen direkt im Form.

Tab: „General Data"

Standard-Tab. Form mit OperatingEquipmentForm — Standard-Felder + Attribute-Felder + Custom-Felder + Bilder + QR-Code.

Tab: „Bewegungen"

Sub-Liste der OperatingEquipmentMovement-Einträge — wann wurde das Betriebsmittel von wo nach wo verlagert.

Tab: „Dokumente"

Polymorpher DocumentParent-Anhang. Erfordert Document:view und DocumentParent:view.

Komponente: QrCodeComponent

Erzeugt den QR-Code zur /qr/:id-Route. Beim Scannen kommt der Anwender auf die Public-Detail-Seite (auch ohne Login für Identifikation).

Felder und Eingaben

FeldnamePflichtDatentypBeschreibungWirkung beim AusfuellenVoraussetzung
operatingEquipmentNoautomatischNumberCircleAssignmentAus Nummernkreis. Disabled.Wird in Bewegungs-Listen, Aufträgen und im QR-Code verwendet.view:NumberCircleAssignment
nameneinStringBezeichnung des Betriebsmittels.Anzeige in Listen und Auswahl-Selects.
warehouseIdneinUUID (Searchable Select)Lager, in dem das Betriebsmittel registriert ist.Aktiviert die warehouseSpotId-Auswahl, gefiltert auf dieses Lager. Bewegungen werden anhand dieses Werts berechnet.view:Warehouse.
warehouseSpotIdneinUUID (Select)Konkreter Lager-Spot (Regal/Fach). Disabled + invisible, wenn warehouseId leer ist.Wird beim Wechsel von warehouseId automatisch geleert, wenn der Spot im neuen Lager nicht existiert.view:WarehouseSpot; passender Spot existiert im gewählten Lager.
supplierIdneinUUID (Searchable Select)Lieferant des Betriebsmittels. Clearable.Wird in der Detail-Anzeige und in Reports verwendet.view:Supplier

Custom-Felder

Am unteren Rand der Detail-Seite stehen die Buttons aus Standardwerte und Attributfelder — Sie koennen pro Betriebsmittel Attribut- und Freitextfelder hinzufuegen (z. B. Pruefdatum, Kalibrierungsintervall).

Die im Formular sichtbaren Felder **Hersteller, Modell, Seriennummer** und **Kaufdatum** sind **keine** festen Modell-Felder, sondern über das Attributfeld-System hinterlegt (das `OperatingEquipment`-Modell selbst kennt nur `name`, `warehouseId`, `warehouseSpotId`, `supplierId`). Sie sind daher **optional** und pro Mandant konfigurierbar — bleiben sie leer, ist das kein Fehler. Welche Attributfelder erscheinen, steuern Sie über die [Standardwerte und Attributfelder](/grundlagen/standardwerte-und-attributfelder).

Workflows und Zustaende

Betriebsmittel haben kein Status-Feld — Aktivität wird über paranoid Soft-Delete gesteuert. Bewegungen werden in der Bewegungs-Sub-Liste festgehalten.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

  • Lager (/warehouses) — Pflicht-Auswahl bei warehouseId.
  • Lieferanten (/suppliers) — optionale Auswahl bei supplierId.
  • OperatingEquipmentMovement — Bewegungen über Tab.
  • Dokumente — Anhänge per DocumentParent.
  • /qr/:id — Public-QR-Detail-Route für Vor-Ort-Identifikation.

Häufige Fehler und Lösungen

FehlerLösung
warehouseSpotId änderbar trotz leerem LagerPer Design — erst warehouseId setzen, dann Spot.
Spot ist beim Lagerwechsel verlorenWenn der Spot im neuen Lager nicht existiert, wird er beim Wechsel automatisch geleert. Neuen Spot wählen.
QR-Code zeigt 404/qr/:id-Route ist nur bei aktiver id gültig. Soft-Delete prüfen.
Auswahl warehouseSpotId leerLager hat keine Spots angelegt — vorher in der Lager-Detail-Seite Spots ergaenzen.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/operating-equipmentsListeview OperatingEquipment
GET/api/operating-equipments/:idDetailview OperatingEquipment
POST/api/operating-equipmentsAnlegen (mit leerem Body durch Listenseite)create OperatingEquipment
PATCH/api/operating-equipments/:idÄndernupdate OperatingEquipment
DELETE/api/operating-equipments/:idSoft-Deletedelete OperatingEquipment

Versionshinweise

  • 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard (Page-Komponente, Modal, Hooks, Field-Wirkungen).