Centurio System- & Moduldokumentation
🏛️ Plattform-Architektur 🔑 Login
Alle Module / inventory_logistics / Logistik & Frachtversand
📘

Logistik & Frachtversand

logistics inventory_logistics 🛡️ RLS Protected

Logistik & Frachtversand — aus Code abgeleitete Prozess- und API-Dokumentation.

Fachliche Bestimmung: Logistik, Versand & Fuhrpark steuert den externen Warentransport und die betriebliche Mobilität: Frachtführeranbindung (DHL, UPS, Dachser, Schenker), Packstückbildung mit NVE/SSCC-Etikettierung, Tourenplanung und Ladelistengenerierung, unternehmenseigene Fuhrparkverwaltung mit digitalem Fahrtenbuch, gesetzliche Führerscheinkontrolle nach § 21 StVG Halterhaftung sowie UVV-Sicherheitsprüfungen nach DGUV Vorschrift 70.

⚡ Workflows & Lebenszyklen

Kundenauftrag → Abwicklung cascade:business.customer_order.fulfill

Kaskade (review_gated).

1. order
Verkaufsauftrag anlegen / bestätigen
sales
Aktionen: sales.create
2. issue
Warenausgang als Entwurf buchen
inventory
Aktionen: stock.issue.create
3. tour
Auslieferungstour einplanen
logistics
Aktionen: create_tour
4. project
Projekt / Kostenstelle zuordnen
projects
Aktionen: link_project
5. task
Auftrag ausführen / abrechnen
tasks
Aktionen: create_task

Lieferschein-Vollverarbeitung cascade:business.delivery_note.intake

Kaskade (review_gated).

1. stock
Wareneingang ins Lager buchen
inventory
Aktionen: post_goods_receipt
2. tour
Tour / Weitertransport einplanen
logistics
Aktionen: create_tour
3. task
Wareneingang prüfen / abgleichen
tasks
Aktionen: create_task
4. qc
Qualitätsprüfung bei Mängelverdacht
inventory
Aktionen: quality.check.create
5. ticket
Reklamations-Ticket bei Mängeln
tickets
Aktionen: create_ticket

Retourenbearbeitung cascade:business.return_note.handling

Kaskade (review_gated).

1. ticket
Reklamations-Ticket anlegen
tickets
Aktionen: create_ticket
2. tour
Abholtour einplanen
logistics
Aktionen: create_tour
3. task
Retoure weiterbearbeiten
tasks
Aktionen: create_task

Tour / Abholung einplanen cascade_target:business.logistics.tour

Kaskade (review_gated).

1. cascade
Tour / Abholung einplanen

Benutzerbefehl: logistics tour agent plan:command_logistics_tour_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. logistics_tour_agent
logistics_tour_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "logistics_tour_agent", "condition_fact": null}
Aktionen: logistics_tour_agent

Sendung status:logistics_shipment

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. draft
draft
Status «draft» der Zustandsmaschine Sendung.
2. planned
planned
Status «planned» der Zustandsmaschine Sendung.
3. picked_up
picked_up
Status «picked_up» der Zustandsmaschine Sendung.
4. in_transit
in_transit
Status «in_transit» der Zustandsmaschine Sendung.
5. delivered
delivered
Status «delivered» der Zustandsmaschine Sendung.
6. failed
failed
Status «failed» der Zustandsmaschine Sendung.
7. cancelled
cancelled
Status «cancelled» der Zustandsmaschine Sendung.

Tour status:logistics_tour

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. draft
draft
Status «draft» der Zustandsmaschine Tour.
2. planned
planned
Status «planned» der Zustandsmaschine Tour.
3. in_progress
in_progress
Status «in_progress» der Zustandsmaschine Tour.
4. completed
completed
Status «completed» der Zustandsmaschine Tour.
5. cancelled
cancelled
Status «cancelled» der Zustandsmaschine Tour.

⚙️ Fachprozesse & Capabilities (System-Fachlogik)

Registrierte Fachoperationen und System-Capabilities dieses Moduls zur Steuerung von Workflows, Kaskaden und KI-Agenten.

Gesamt: 64 manual_entry: 1 reviewed: 1 engine: 53 review_gated: 4 operator_surface: 2 durable_plan: 1 observable_only: 2
Capability & Schlüssel Fachliche Bezeichnung Ausführung / Coverage Risikostufe & Freigabe Effekte & Kaskaden
Agent-Einstieg logistics_tour_agent agent_entry:logistics_tour_agent
Agent-Einstieg logistics_tour_agent
Quelle: code:module_agent_map
manual_entry
✓ Auto
Keine Seiteneffekte deklariert
Tour / Abholung einplanen capability:create_tour
Op: create_tour
Objekt: tour
Quelle: code:capability_registry
reviewed
🔒 Freigabe nötig Risiko: business_record
  • cascade:business.logistics.tour
Cross-Dock-Vorgang anlegen capability:crossdock.create
Op: crossdock.create
Intent: create_crossdock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • crossdock.created
Cross Dock: add inbound capability:crossdock.cross_dock.add_inbound
Op: crossdock.cross_dock.add_inbound
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.add_inbound
Cross Dock: add inbound from purchase capability:crossdock.cross_dock.add_inbound_from_purchase
Op: crossdock.cross_dock.add_inbound_from_purchase
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.add_inbound_from_purchase
Cross Dock: add outbound capability:crossdock.cross_dock.add_outbound
Op: crossdock.cross_dock.add_outbound
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.add_outbound
Cross Dock: add outbound from quote capability:crossdock.cross_dock.add_outbound_from_quote
Op: crossdock.cross_dock.add_outbound_from_quote
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.add_outbound_from_quote
Cross Dock: cancel capability:crossdock.cross_dock.cancel
Op: crossdock.cross_dock.cancel
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.cancel
Cross Dock: create capability:crossdock.cross_dock.create
Op: crossdock.cross_dock.create
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.create
Cross Dock: create from purchase capability:crossdock.cross_dock.create_from_purchase
Op: crossdock.cross_dock.create_from_purchase
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.create_from_purchase
Cross Dock: dispatch capability:crossdock.cross_dock.dispatch
Op: crossdock.cross_dock.dispatch
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.dispatch
Cross Dock: receive capability:crossdock.cross_dock.receive
Op: crossdock.cross_dock.receive
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.receive
Cross Dock: remove line capability:crossdock.cross_dock.remove_line
Op: crossdock.cross_dock.remove_line
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.remove_line
Cross Dock: set allocation capability:crossdock.cross_dock.set_allocation
Op: crossdock.cross_dock.set_allocation
Objekt: cross_dock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • cross_dock.set_allocation
Cross-Dock-Versand buchen capability:crossdock.dispatch
Op: crossdock.dispatch
Intent: dispatch_crossdock
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • crossdock.dispatched
Cross-Dock-Eingang buchen capability:crossdock.receive
Op: crossdock.receive
Intent: receive_crossdock
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • crossdock.received
Spedition buchen capability:logistics.carrier.book
Op: logistics.carrier.book
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.carrier.book
Crossdock WE capability:logistics.crossdock.receive
Op: logistics.crossdock.receive
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.crossdock.receive
Crossdock Umschlag capability:logistics.crossdock.stage
Op: logistics.crossdock.stage
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.crossdock.stage
Dropship Versand capability:logistics.dropship.confirm_ship
Op: logistics.dropship.confirm_ship
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.dropship.confirm_ship
Ablieferbeleg capability:logistics.pod.capture
Op: logistics.pod.capture
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.pod.capture
Shipment: assign to tour capability:logistics.shipment.assign_to_tour
Op: logistics.shipment.assign_to_tour
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.assign_to_tour
Sendung auf Tour setzen capability:logistics.shipment.assign_tour
Op: logistics.shipment.assign_tour
Intent: assign_shipment_tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.assigned
Versandlabel buchen (Sendcloud) capability:logistics.shipment.book_label
Op: logistics.shipment.book_label
Intent: book_shipping_label
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: external_effect
  • shipment.label_booked
Shipment: cancel capability:logistics.shipment.cancel
Op: logistics.shipment.cancel
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.cancel
Sendung anlegen capability:logistics.shipment.create
Op: logistics.shipment.create
Intent: create_shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.created
Zustellung buchen capability:logistics.shipment.deliver
Op: logistics.shipment.deliver
Intent: record_delivery
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.delivered
Versandlabel capability:logistics.shipment.label_print
Op: logistics.shipment.label_print
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.shipment.label_print
Shipment: mark delivered capability:logistics.shipment.mark_delivered
Op: logistics.shipment.mark_delivered
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.mark_delivered
Shipment: mark failed capability:logistics.shipment.mark_failed
Op: logistics.shipment.mark_failed
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.mark_failed
Shipment: mark in transit capability:logistics.shipment.mark_in_transit
Op: logistics.shipment.mark_in_transit
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.mark_in_transit
Shipment: mark picked up capability:logistics.shipment.mark_picked_up
Op: logistics.shipment.mark_picked_up
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.mark_picked_up
Shipment: set carrier tracking capability:logistics.shipment.set_carrier_tracking
Op: logistics.shipment.set_carrier_tracking
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.set_carrier_tracking
Sendungsereignis capability:logistics.shipment.track_event
Op: logistics.shipment.track_event
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.shipment.track_event
Shipment: update vehicle capacity profile capability:logistics.shipment.update_vehicle_capacity_profile
Op: logistics.shipment.update_vehicle_capacity_profile
Objekt: shipment
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • shipment.update_vehicle_capacity_profile
Tour: add stop capability:logistics.tour.add_stop
Op: logistics.tour.add_stop
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.add_stop
Tour: assign driver capability:logistics.tour.assign_driver
Op: logistics.tour.assign_driver
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.assign_driver
Tour: assign vehicle capability:logistics.tour.assign_vehicle
Op: logistics.tour.assign_vehicle
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.assign_vehicle
Tour aufteilen capability:logistics.tour.break_bulk
Op: logistics.tour.break_bulk
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.tour.break_bulk
Tour: cancel tour capability:logistics.tour.cancel_tour
Op: logistics.tour.cancel_tour
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.cancel_tour
Tour abschließen capability:logistics.tour.complete
Op: logistics.tour.complete
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.completed
Tour: complete stop capability:logistics.tour.complete_stop
Op: logistics.tour.complete_stop
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.complete_stop
Tour: complete tour capability:logistics.tour.complete_tour
Op: logistics.tour.complete_tour
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.complete_tour
Tour anlegen capability:logistics.tour.create
Op: logistics.tour.create
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.created
Tour: create tour capability:logistics.tour.create_tour
Op: logistics.tour.create_tour
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.create_tour
Tour: mark arrived capability:logistics.tour.mark_arrived
Op: logistics.tour.mark_arrived
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.mark_arrived
Tourenstopps optimieren capability:logistics.tour.optimize_route
Op: logistics.tour.optimize_route
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.stops_optimized
Stopps neu reihen capability:logistics.tour.resequence_stops
Op: logistics.tour.resequence_stops
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • logistics.tour.resequence_stops
Tour starten capability:logistics.tour.start
Op: logistics.tour.start
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.started
Tour: start tour capability:logistics.tour.start_tour
Op: logistics.tour.start_tour
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.start_tour
Tour: update assignment capability:logistics.tour.update_assignment
Op: logistics.tour.update_assignment
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.update_assignment
Tour: update position capability:logistics.tour.update_position
Op: logistics.tour.update_position
Objekt: tour
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • tour.update_position
Vehicle Load Bay: assign load capability:logistics.vehicle_load_bay.assign_load
Op: logistics.vehicle_load_bay.assign_load
Objekt: vehicle_load_bay
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • vehicle_load_bay.assign_load
Vehicle Load Bay: create bay capability:logistics.vehicle_load_bay.create_bay
Op: logistics.vehicle_load_bay.create_bay
Objekt: vehicle_load_bay
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • vehicle_load_bay.create_bay
Vehicle Load Bay: remove load capability:logistics.vehicle_load_bay.remove_load
Op: logistics.vehicle_load_bay.remove_load
Objekt: vehicle_load_bay
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • vehicle_load_bay.remove_load
Kundenauftrag → Abwicklung cascade:business.customer_order.fulfill
Kundenauftrag → Abwicklung
Quelle: code:cascade_process
review_gated
✓ Auto
Keine Seiteneffekte deklariert
Lieferschein-Vollverarbeitung cascade:business.delivery_note.intake
Lieferschein-Vollverarbeitung
Quelle: code:cascade_process
review_gated
✓ Auto
Keine Seiteneffekte deklariert
Retourenbearbeitung cascade:business.return_note.handling
Retourenbearbeitung
Quelle: code:cascade_process
review_gated
✓ Auto
Keine Seiteneffekte deklariert
Tour / Abholung einplanen cascade_target:business.logistics.tour
Op: create_tour
Tour / Abholung einplanen
Quelle: code:cascade_target
review_gated
🔒 Freigabe nötig
Keine Seiteneffekte deklariert
logistics_shipment: edit form form_surface_anchor:logistics_shipment.edit
Objekt: logistics_shipment
Quelle: code:erp_form_surface
operator_surface
✓ Auto
Keine Seiteneffekte deklariert
logistics_tour: edit form form_surface_anchor:logistics_tour.edit
Objekt: logistics_tour
Quelle: code:erp_form_surface
operator_surface
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: logistics tour agent plan:command_logistics_tour_agent
Benutzerbefehl: logistics tour agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Sendung status:logistics_shipment
Objekt: logistics_shipment
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert
Tour status:logistics_tour
Objekt: logistics_tour
Quelle: code:status_machine
observable_only
✓ Auto
Keine Seiteneffekte deklariert

🧠 Fachprozess-Erzählung & Dual Knowledge Architektur

Synthese aus der ideologischen Blaupause (Meta-Fachlogik / Soll), der faktischen System-Implementierung (System-Fachlogik / Ist) und No-Code Customizing für KI-Consultants.

Dual Knowledge Layer
📖

Der durchgängige Businessprozess im Detail (End-to-End Fließtext-Erzählung)

Der durchgängige Logistik-, Versand- und Fuhrparkprozess in der betrieblichen Praxis

Die pünktliche und unbeschädigte Zustellung von Waren beim Kunden sowie der sichere und rechtlich einwandfreie Betrieb der Firmenfahrzeuge bilden das logistische Rückgrat jedes Handels- und Fertigungsunternehmens.

1. Warenausgang & Versandbereitstellung (Dispatch Staging)

Sobald das Lager (inventory) die Kommissionierung für einen Verkaufsauftrag (sales) abschließt, übernimmt das Logistikmodul:

  • Packstückbildung: Die gepickten Artikel werden in Versandkartons oder auf Europaletten konsolidiert. Das System ermittelt Brutto-, Netto- und Volumengewicht.
  • NVE / SSCC-Etikettierung: Jedes Packstück erhält eine weltweit eindeutige Nummer der Versandeinheit (NVE / Serial Shipping Container Code - SSCC) als GS1-128-Barcode.
  • Frachtführer-Auswahl & Ratenvergleich: Anhand von Gewicht, Destination (Inland, EU, Drittland) und gewünschter Laufzeit (Standard vs. Express) vergleicht das System hinterlegte Tarife oder ruft Live-Raten über Speditions-APIs ab (DHL, UPS, DPD, Dachser, DB Schenker, Kühne+Nagel).
  • Labeldruck: Über die integrierte Druckserver-Bridge (printbridge) wird das offizielle Versandetikett mit Routing-Barcode auf dem Thermotransferdrucker am Packtisch ausgegeben.

2. Ladelisten & Speditionsübergabe (Manifest & Handover)

  • Bei Paletten- und Speditionssendungen fasst das System Packstücke zu einer Ladeliste / einem Frachtbrief (CMR-Frachtbrief) zusammen (cap:logistics.shipment.generate_manifest).
  • Bei Abholung durch den Speditionsfahrer quittiert dieser die Anzahl der übernommenen Packstücke auf dem Handheld oder Lieferschein.
  • Warenausgangs-Gateway: Der Gateway setzt den Sendungsstatus auf Im Transit (in_transit) und übermittelt die Sendungsverfolgungsnummer (Tracking-ID) per E-Mail an den Kunden.

3. Eigener Fuhrpark & Tourenplanung (Fleet & Routing)

Verfügt das Unternehmen über eigene Liefer- oder Montagefahrzeuge:

  • Fahrzeugstamm (fleet): Verwaltung von PKWs, Transportern, LKWs und Anhängern mit Kennzeichen, Nutzlast, Ladevolumen und Wartungsintervallen.
  • Tourenoptimierung: Aufträge eines Liefergebiets werden wege- und zeitoptimiert zu einer Ausliefertour zusammengefasst. Das System berücksichtigt Zeitfenster, LKW-Mautstrecken und Lenk- und Ruhezeiten.
  • Rollende Fahrzeuglager: Kundendienstfahrzeuge führen einen eigenen mobilen Ersatzteilbestand, der vor Abfahrt aufgefüllt wird.

4. Halterhaftung & Führerscheinkontrolle (§ 21 StVG)

Als Fahrzeughalter haftet die Geschäftsführung strafrechtlich, wenn Mitarbeitern ohne gültige Fahrerlaubnis ein Firmenwagen überlassen wird:

  • Regelmäßige Pflichtprüfung: Das System erzwingt alle 6 Monate (oder anlassbezogen) die Führerscheinprüfung aller Dienstwagenberechtigten (cap:fleet.vehicle.verify_license).
  • Audit-Nachweis: Die Prüfung erfolgt per Sichtprüfung mit Scan oder über manipulationssichere RFID-Führersiegelsysteme. Das Prüfergebnis wird unveränderbar im Audit-Trail protokolliert.

5. Digitales Fahrtenbuch & Finanzamtskonformität

  • Zur Versteuerung des geldwerten Vorteils (Alternative zur 1%-Regelung) führt das Modul ein digitales, finanzamtskonformes Fahrtenbuch.
  • Fahrten werden mit Startort, Zielort, Kilometerstand, Fahrtzweck (Dienstfahrt, Arbeitsweg, Privatfahrt) und besuchtem Kunden erfasst.
  • Nachträgliche Manipulationen an Zeitstempeln oder Routendaten sind softwareseitig ausgeschlossen.

6. UVV-Sicherheitsprüfung nach DGUV Vorschrift 70

  • Gewerblich genutzte Fahrzeuge unterliegen der jährlichen Prüfung auf Betriebssicherheit nach DGUV Vorschrift 70 (UVV Fahrzeuge):
    • Überprüfung von Bremsen, Reifen, Gurten, Ladungssicherungsmitteln (Spanngurte, Antirutschmatten), Warnwesten und Verbandkasten.
  • Das System terminiert die UVV-Prüfung und sperrt das Fahrzeug bei Fristüberziehung für Neuvergaben im Kalender (cap:fleet.vehicle.schedule_uvv).
🏛️

Meta-Fachlogik: Ideologische Blaupause, Soll-Weltbild & Normen

Meta-Fachlogik: Die ideologische Blaupause & das normative Weltbild

Die Meta-Fachlogik stützt sich auf das Transport- und Speditionsrecht (HGB §§ 407 ff., ADSp 2017), das Straßenverkehrsgesetz (§ 21 StVG), die Berufsgenossenschaftlichen Vorschriften (DGUV V70) und Steuerrichtlinien zum Fahrtenbuch.

1. Frachtrecht & Haftung (HGB §§ 407 ff., CMR, ADSp 2017)

  • Frachtvertrag & Haftungskorridor: Gesetzliche Haftungsbegrenzung des Frachtführers nach HGB § 431 (8,33 SZR pro kg) bzw. CMR im internationalen Straßengüterverkehr.
  • Sorgfaltspflicht der Ladungssicherung (§ 22 StVO / VDI 2700): Der Absender ist für die verkehrssichere Verladung und Ladungssicherung verantwortlich. Das Soll-Modell verlangt Dokumentation geeigneter Sicherungsmittel vor Abfahrt.

2. Gesetzliche Halterhaftung (§ 21 Abs. 1 Nr. 2 StVG)

  • Wer als Fahrzeughalter anordnet oder zulässt, dass jemand ein Fahrzeug führt, der die erforderliche Fahrerlaubnis nicht besitzt, macht sich strafbar (Freiheitsstrafe bis zu einem Jahr oder Geldstrafe).
  • Das Soll-Modell verbietet die Zuweisung von Dienstwagen an Mitarbeiter mit ungeprüftem oder abgelaufenem Führerschein.

3. Invarianten des Soll-Modells

  1. Kein Warenausgang ohne lückenlose Packstück- und Gewichtsdokumentation.
  2. Keine Fahrzeugausgabe ohne verifizierten Führerscheinprüfungsnachweis.
  3. Ein finanzamtskonformes Fahrtenbuch darf keine rückwirkenden, unprotokollierten Änderungen zulassen.
  4. Fahrzeuge mit überzogener UVV-Prüfung oder abgelaufenem TÜV sind für den Fahrdienst zu sperren.
⚙️

Systemische Fachlogik: Faktische Umsetzung in Centurio ERP & Capabilities

Systemische Fachlogik: Die faktische Umsetzung in Centurio ERP

Die System-Fachlogik dokumentiert die Realisierung in den Modulen logistics und fleet.

1. Datenmodelle & Semantische Schicht (ORM)

  • LogisticsShipment: Sendungskopf (Felder: id, tenant_id, shipment_number, carrier_code, tracking_number, service_level, total_weight_kg, package_count, shipping_label_url, status).
  • ShipmentPackage: Einzelne Packstücke (Felder: shipment_id, sscc_nve, weight_kg, dimensions_cm).
  • FleetVehicle: Fahrzeugstamm (Felder: id, license_plate, vin_chassis, vehicle_type, assigned_driver_id, odometer_km, next_inspection_date, next_uvv_date, status [active, maintenance, locked]).
  • FleetTrip: Fahrtenbucheintrag (Felder: vehicle_id, driver_id, start_time, end_time, start_km, end_km, trip_type [business, commute, private], purpose, customer_id).
  • DriverLicenseCheck: Revisionssicherer Nachweis der Führerscheinkontrolle.

2. Das Capability-Register

  • cap:logistics.shipment.create: Erzeugung einer Sendung und Ratenabfrage.
  • cap:logistics.shipment.generate_label: Druck des Frachtführer-Versandlabels via PrintBridge.
  • cap:logistics.shipment.generate_manifest: Ladelistenerstellung und Speditionsavis.
  • cap:logistics.shipment.track: Statusabfrage der Tracking-Events beim Carrier.
  • cap:fleet.vehicle.verify_license: Erfassung der gesetzlichen Führerscheinprüfung.
  • cap:fleet.vehicle.log_trip: Verbuchung eines Fahrtenbucheintrags.
  • cap:fleet.vehicle.schedule_uvv: Planung der jährlichen Sicherheitsprüfung nach DGUV 70.

3. Der Gateway gw:shipment_dispatch@v1

Sichert den Warenausgang ab:

  1. Validierung: Prüft Gewicht, Versandadresse und Gefahrgutdeklaration.
  2. Statuswechsel: LogisticsShipment.status = 'dispatched'.
  3. Outbox-Signal: Feuert SHIPMENT_DISPATCHED und triggert die Kundenbenachrichtigung mit Tracking-Link.

4. Statusmodelle

  • Sendung: draft ➔ labeled ➔ manifested ➔ in_transit ➔ delivered oder exception.
  • Fahrzeug: available ➔ in_use ➔ maintenance_due ➔ locked (z.B. wegen fehlender UVV).
🤖

KI-Consultant Leitfaden: Customizing- & No-Code-Konzept (Soll-Ist-Synthese)

AI Solution Architect Blueprint

KI-Consultant Blueprint: Customizing & No-Code Architektur

Anleitung für Solution Architects zur Einrichtung von Logistik- und Fuhrparkprozessen.

1. Kundenanforderungsanalyse

  • Welche Frachtführer und Speditionen müssen angebunden werden?
  • Sollen Versandkosten dem Kunden nach Staffel oder mit Festpauschalen in Rechnung gestellt werden?
  • Gibt es Gefahrguttransporte (ADR-Auflagen mit Tunnelbeschränkungen)?

2. No-Code Zusatzfelder (Custom Fields)

Im No-Code Studio (/semantic/customizing):

  • Auf LogisticsShipment:
    • customs_declaration_mrn (Text): Movement Reference Number bei Ausfuhr in Drittländer (ATLAS).
    • liftgate_required (Checkbox): Hebebühnenzustellung erforderlich.
  • Auf FleetVehicle:
    • fuel_card_number (Text): Flottentankkartennummer für Tankbelegabgleich.
    • toll_onboard_unit_id (Text): OBU-Gerätenummer für automatische LKW-Maut.

3. No-Code Workflow Canvas DAGs

Blueprint A: Automatisches Tracking & Proaktiver Lieferverzugs-Alert
  • Trigger-Node: Webhook des Paketdienstes (z.B. DHL Event shipment.delayed).
  • Condition-Node: event.delay_days >= 2.
  • Action-Node: Sende automatische SMS/E-Mail an Kunden: "Ihre Sendung verzögert sich um 2 Tage; Tracking-Link hier."
Blueprint B: Automatische Sperre bei überfälliger Führerscheinkontrolle
  • Trigger-Node: Täglicher Scan der Führerscheingültigkeit.
  • Condition-Node: driver.last_license_check_date < current_date - 180_days.
  • Action-Node: Sperre Fahrzeugzuweisung für diesen Fahrer und sende Eskalations-Mail an Fuhrparkleiter.

📚 Operative Prozessbegriffe & Transaktionsschnittstellen

Zentrale Fachbegriffe im Prozesszusammenhang (Operatives Modell)
NVE / SSCC (Nummer der Versandeinheit)
18-stellige, weltweit eindeutige Seriennummer für Packstücke und Paletten.
Halterhaftung (§ 21 StVG)
Strafrechtliche Verantwortung des Fahrzeughalters zur Prüfung der Fahrerlaubnis.
UVV-Prüfung (DGUV Vorschrift 70)
Jährliche berufsgenossenschaftliche Sicherheitsprüfung gewerblicher Fahrzeuge.
Finanzamtskonformes Fahrtenbuch
Lückenloser, manipulationssicherer Nachweis aller Fahrten zur Besteuerung.
Frachtbrief (CMR)
Beförderungsdokument im internationalen Straßengüterverkehr mit Haftungsbestimmungen.
Ladeliste (Manifest)
Übergabeprotokoll aller an einen Frachtführer übergebenen Packstücke.
📥 Eingänge & Trigger (Inputs)
  • Versandbereite Packstücke aus dem Warenausgang des Lagers
  • Speditionsaufträge aus Streckengeschäften (Dropshipping)
  • Fahrzeugdaten und Fahrtenbucheingaben der Fahrer
  • Prüffristen für Führerscheine und Hauptuntersuchungen
📤 Ausgänge & Arbeitsergebnisse (Outputs)
  • Frachtführer-Versandlabels mit Barcodes (DHL, UPS, Dachser)
  • Speditions-Ladelisten und CMR-Frachtbriefe
  • Audit-Nachweise über durchgeführte Führerscheinkontrollen (§ 21 StVG)
  • Finanzamtskonforme Fahrtenbuchberichte (PDF/Excel)
  • Tracking-Links und Lieferzeit-Avis an Kunden
⚡ Kaskaden & Folgeprozesse (Cascades)
  • shipment_dispatched -> update_sales_order_status: Auftrag wird als versendet markiert
  • tracking_delivered -> trigger_customer_review: Einladung zur Kundenzufriedenheitsbewertung
  • license_check_failed -> lock_vehicle_assignment: Fahrersperre im Fuhrpark
  • uvv_expired -> set_vehicle_status_maintenance: Fahrzeugsperre bis zur Werkstattprüfung
🛡️ Nebenprozesse & Resilienz
  • Schadensabwicklung bei Transportschäden mit Speditionsregress
  • Zollabfertigung und Ausfuhranmeldung über ATLAS bei Drittlandsendungen
  • Kraftstoff- und Tankkartenabrechnung mit Plausibilitätsprüfung (Verbrauch l/100km)
  • Bußgeldbearbeitung und Zeugenfragebogenverwaltung im Fuhrpark
💡 No-Code Checkliste & Praxistipps
  • Speditions- und Paketdienst-Zugangsdaten (API-Keys) im System hinterlegen
  • Zyklen für Führerscheinprüfung (Standard: 6 Monate) in Fuhrparkrichtlinien definieren
  • Frachtkostenstaffeln nach Gewicht und Postleitzahlenzonen pflegen
  • No-Code Zusatzfelder für Maut-OBU und Gefahrgut auf LogisticsShipment anlegen

🗄️ Datenmodelle & Felder

GeoImportBatches geo_import_batches
8 Felder / Spalten

Tabelle geo_import_batches

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
source_url VARCHAR(500) Ja * - Feld source_url
source_sha256 VARCHAR(64) Ja * - Feld source_sha256
continents VARCHAR(32) Ja * - Feld continents
place_count INTEGER Ja * - Feld place_count
imported_by UUID Nein - Feld imported_by
imported_at DATETIME Ja * - Feld imported_at
is_active BOOLEAN Ja * - Feld is_active
id UUID Nein PK Feld id
GeoPlaces geo_places
14 Felder / Spalten

Tabelle geo_places

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
batch_id UUID Ja * FK ➔ geo_import_batches.id Feld batch_id
geoname_id BIGINT Ja * - Feld geoname_id
name VARCHAR(200) Ja * - Feld name
ascii_name VARCHAR(200) Ja * - Feld ascii_name
alt_names TEXT Ja * - Feld alt_names
search_name VARCHAR(200) Ja * - Feld search_name
country_code VARCHAR(2) Ja * - Feld country_code
admin1_code VARCHAR(20) Nein - Feld admin1_code
admin1_name VARCHAR(200) Nein - Feld admin1_name
latitude NUMERIC(9, 6) Ja * - Feld latitude
longitude NUMERIC(9, 6) Ja * - Feld longitude
population INTEGER Ja * - Feld population
timezone VARCHAR(64) Nein - Feld timezone
id UUID Nein PK Feld id
LogisticsCn23Declarations logistics_cn23_declarations RLS Aktiv
23 Felder / Spalten

Tabelle logistics_cn23_declarations

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
package_id UUID Ja * FK ➔ logistics_shipment_packages.id Feld package_id
shipment_id UUID Ja * FK ➔ logistics_shipments.id Feld shipment_id
status VARCHAR(48) Ja * - Feld status
category VARCHAR(32) Ja * - Feld category
currency VARCHAR(3) Ja * - Feld currency
total_weight_kg NUMERIC(14, 4) Nein - Feld total_weight_kg
total_value NUMERIC(14, 2) Nein - Feld total_value
contents JSONB Ja * - Feld contents
missing_fields JSONB Ja * - Feld missing_fields
sender_name VARCHAR(255) Nein - Feld sender_name
sender_country_code VARCHAR(2) Nein - Feld sender_country_code
recipient_name VARCHAR(255) Nein - Feld recipient_name
recipient_country_code VARCHAR(2) Nein - Feld recipient_country_code
notes TEXT Nein - Feld notes
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
LogisticsExportConsolidationPackages logistics_export_consolidation_packages RLS Aktiv
9 Felder / Spalten

Tabelle logistics_export_consolidation_packages

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
consolidation_id UUID Ja * FK ➔ logistics_export_consolidations.id Feld consolidation_id
package_id UUID Ja * FK ➔ logistics_shipment_packages.id Feld package_id
position INTEGER Ja * - Feld position
loaded_at DATETIME Nein - Feld loaded_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
LogisticsExportConsolidations logistics_export_consolidations RLS Aktiv
21 Felder / Spalten

Tabelle logistics_export_consolidations

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
consolidation_number VARCHAR(32) Ja * - Feld consolidation_number
mode VARCHAR(48) Ja * - Feld mode
status VARCHAR(48) Ja * - Feld status
container_ref VARCHAR(64) Nein - Feld container_ref
vessel_voyage VARCHAR(128) Nein - Feld vessel_voyage
destination_country_code VARCHAR(2) Nein - Feld destination_country_code
etd DATE Nein - Feld etd
eta DATE Nein - Feld eta
partner_customer_id UUID Nein FK ➔ customers.id Feld partner_customer_id
notes TEXT Nein - Feld notes
closed_at DATETIME Nein - Feld closed_at
shipped_at DATETIME Nein - Feld shipped_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
LogisticsShipmentPackages logistics_shipment_packages RLS Aktiv
20 Felder / Spalten

Tabelle logistics_shipment_packages

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
shipment_id UUID Ja * FK ➔ logistics_shipments.id Feld shipment_id
position INTEGER Ja * - Feld position
barcode VARCHAR(64) Nein - Feld barcode
label VARCHAR(255) Nein - Feld label
status VARCHAR(48) Ja * - Feld status
gross_weight_kg NUMERIC(14, 4) Nein - Feld gross_weight_kg
length_cm NUMERIC(14, 4) Nein - Feld length_cm
width_cm NUMERIC(14, 4) Nein - Feld width_cm
height_cm NUMERIC(14, 4) Nein - Feld height_cm
is_dangerous_goods BOOLEAN Ja * - Feld is_dangerous_goods
adr_un_number VARCHAR(16) Nein - Feld adr_un_number
adr_class VARCHAR(16) Nein - Feld adr_class
is_bulky BOOLEAN Ja * - Feld is_bulky
notes TEXT Nein - Feld notes
scanned_at DATETIME Nein - Feld scanned_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
LogisticsShipments logistics_shipments RLS Aktiv
69 Felder / Spalten

Tabelle logistics_shipments

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
shipment_number VARCHAR(32) Ja * - Feld shipment_number
status VARCHAR(48) Ja * - Feld status
carrier_mode VARCHAR(48) Ja * - Feld carrier_mode
subcontractor_supplier_id UUID Nein FK ➔ suppliers.id Feld subcontractor_supplier_id
contract_id UUID Nein FK ➔ contracts.id Feld contract_id
carrier_contract_id UUID Nein FK ➔ contracts.id Feld carrier_contract_id
customer_id UUID Nein FK ➔ customers.id Feld customer_id
work_order_id UUID Nein FK ➔ work_orders.id Feld work_order_id
project_id UUID Nein FK ➔ projects.id Feld project_id
stock_issue_id UUID Nein FK ➔ stock_issues.id Feld stock_issue_id
sender_name VARCHAR(255) Ja * - Feld sender_name
sender_address_line1 VARCHAR(255) Nein - Feld sender_address_line1
sender_postal_code VARCHAR(32) Nein - Feld sender_postal_code
sender_city VARCHAR(128) Nein - Feld sender_city
sender_country_code VARCHAR(2) Nein - Feld sender_country_code
consignee_name VARCHAR(255) Ja * - Feld consignee_name
consignee_address_line1 VARCHAR(255) Nein - Feld consignee_address_line1
consignee_postal_code VARCHAR(32) Nein - Feld consignee_postal_code
consignee_city VARCHAR(128) Nein - Feld consignee_city
consignee_country_code VARCHAR(2) Nein - Feld consignee_country_code
place_of_taking_over VARCHAR(255) Nein - Feld place_of_taking_over
date_of_taking_over DATE Nein - Feld date_of_taking_over
place_of_delivery VARCHAR(255) Nein - Feld place_of_delivery
goods_description TEXT Nein - Feld goods_description
packages_count INTEGER Nein - Feld packages_count
gross_weight_kg NUMERIC(14, 4) Nein - Feld gross_weight_kg
volume_m3 NUMERIC(14, 4) Nein - Feld volume_m3
is_dangerous_goods BOOLEAN Ja * - Feld is_dangerous_goods
adr_un_number VARCHAR(16) Nein - Feld adr_un_number
adr_class VARCHAR(16) Nein - Feld adr_class
adr_packing_group VARCHAR(8) Nein - Feld adr_packing_group
adr_tunnel_code VARCHAR(8) Nein - Feld adr_tunnel_code
adr_net_mass_kg NUMERIC(14, 4) Nein - Feld adr_net_mass_kg
is_bulky BOOLEAN Ja * - Feld is_bulky
length_cm NUMERIC(14, 4) Nein - Feld length_cm
width_cm NUMERIC(14, 4) Nein - Feld width_cm
height_cm NUMERIC(14, 4) Nein - Feld height_cm
loading_meters NUMERIC(14, 4) Nein - Feld loading_meters
pallet_type VARCHAR(16) Nein - Feld pallet_type
pallet_count INTEGER Nein - Feld pallet_count
stack_factor INTEGER Ja * - Feld stack_factor
requires_tail_lift BOOLEAN Ja * - Feld requires_tail_lift
requires_crane BOOLEAN Ja * - Feld requires_crane
carriage_charge_terms VARCHAR(48) Ja * - Feld carriage_charge_terms
special_agreements TEXT Nein - Feld special_agreements
tour_id UUID Nein FK ➔ logistics_tours.id Feld tour_id
picked_up_at DATETIME Nein - Feld picked_up_at
pickup_signature_document_id UUID Nein FK ➔ documents.id Feld pickup_signature_document_id
pickup_signed_by_name VARCHAR(255) Nein - Feld pickup_signed_by_name
delivered_at DATETIME Nein - Feld delivered_at
delivery_signature_document_id UUID Nein FK ➔ documents.id Feld delivery_signature_document_id
delivery_signed_by_name VARCHAR(255) Nein - Feld delivery_signed_by_name
carrier_code VARCHAR(32) Nein - Feld carrier_code
tracking_number VARCHAR(64) Nein - Feld tracking_number
carrier_provider VARCHAR(32) Nein - Feld carrier_provider
carrier_booking_ref VARCHAR(64) Nein - Feld carrier_booking_ref
shipping_option_code VARCHAR(64) Nein - Feld shipping_option_code
label_document_id UUID Nein FK ➔ documents.id Feld label_document_id
notes TEXT Nein - Feld notes
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
LogisticsTourPositionSamples logistics_tour_position_samples RLS Aktiv
12 Felder / Spalten

Tabelle logistics_tour_position_samples

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
tour_id UUID Ja * FK ➔ logistics_tours.id Feld tour_id
recorded_at DATETIME Ja * - Feld recorded_at
lat NUMERIC(9, 6) Ja * - Feld lat
lng NUMERIC(9, 6) Ja * - Feld lng
accuracy_m NUMERIC(10, 2) Nein - Feld accuracy_m
speed_kmh NUMERIC(8, 2) Nein - Feld speed_kmh
heading_deg NUMERIC(6, 2) Nein - Feld heading_deg
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
LogisticsTourStopPhotos logistics_tour_stop_photos RLS Aktiv
9 Felder / Spalten

Tabelle logistics_tour_stop_photos

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
tour_stop_id UUID Ja * FK ➔ logistics_tour_stops.id Feld tour_stop_id
document_id UUID Ja * FK ➔ documents.id Feld document_id
caption VARCHAR(255) Nein - Feld caption
position INTEGER Ja * - Feld position
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
LogisticsTourStops logistics_tour_stops RLS Aktiv
32 Felder / Spalten

Tabelle logistics_tour_stops

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
tour_id UUID Ja * FK ➔ logistics_tours.id Feld tour_id
shipment_id UUID Nein FK ➔ logistics_shipments.id Feld shipment_id
position INTEGER Ja * - Feld position
stop_type VARCHAR(48) Ja * - Feld stop_type
status VARCHAR(48) Ja * - Feld status
contact_name VARCHAR(255) Nein - Feld contact_name
address_line1 VARCHAR(255) Nein - Feld address_line1
address_line2 VARCHAR(255) Nein - Feld address_line2
postal_code VARCHAR(32) Nein - Feld postal_code
city VARCHAR(128) Nein - Feld city
country_code VARCHAR(2) Nein - Feld country_code
phone VARCHAR(64) Nein - Feld phone
latitude NUMERIC(9, 6) Nein - Feld latitude
longitude NUMERIC(9, 6) Nein - Feld longitude
planned_window_start DATETIME Nein - Feld planned_window_start
planned_window_end DATETIME Nein - Feld planned_window_end
arrived_at DATETIME Nein - Feld arrived_at
completed_at DATETIME Nein - Feld completed_at
signature_document_id UUID Nein FK ➔ documents.id Feld signature_document_id
signed_by_name VARCHAR(255) Nein - Feld signed_by_name
failure_reason TEXT Nein - Feld failure_reason
notes TEXT Nein - Feld notes
damage_reported BOOLEAN Ja * - Feld damage_reported
damage_notes TEXT Nein - Feld damage_notes
pod_lat NUMERIC(9, 6) Nein - Feld pod_lat
pod_lng NUMERIC(9, 6) Nein - Feld pod_lng
delivery_note_document_id UUID Nein FK ➔ documents.id Feld delivery_note_document_id
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
LogisticsTours logistics_tours RLS Aktiv
26 Felder / Spalten

Tabelle logistics_tours

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
tour_number VARCHAR(32) Ja * - Feld tour_number
status VARCHAR(48) Ja * - Feld status
planned_date DATE Nein - Feld planned_date
vehicle_asset_id UUID Nein FK ➔ assets.id Feld vehicle_asset_id
driver_user_id UUID Nein FK ➔ users.id Feld driver_user_id
depot_location_id UUID Nein FK ➔ locations.id Feld depot_location_id
started_at DATETIME Nein - Feld started_at
completed_at DATETIME Nein - Feld completed_at
cancelled_at DATETIME Nein - Feld cancelled_at
notes TEXT Nein - Feld notes
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
current_lat NUMERIC(9, 6) Nein - Feld current_lat
current_lng NUMERIC(9, 6) Nein - Feld current_lng
current_accuracy_m NUMERIC(8, 2) Nein - Feld current_accuracy_m
current_speed_kmh NUMERIC(6, 2) Nein - Feld current_speed_kmh
current_heading_deg NUMERIC(5, 1) Nein - Feld current_heading_deg
position_updated_at DATETIME Nein - Feld position_updated_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
LogisticsVehicleBayLoads logistics_vehicle_bay_loads RLS Aktiv
10 Felder / Spalten

Tabelle logistics_vehicle_bay_loads

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
bay_id UUID Ja * FK ➔ logistics_vehicle_load_bays.id Feld bay_id
tour_id UUID Ja * FK ➔ logistics_tours.id Feld tour_id
shipment_id UUID Ja * FK ➔ logistics_shipments.id Feld shipment_id
package_id UUID Nein FK ➔ logistics_shipment_packages.id Feld package_id
notes TEXT Nein - Feld notes
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
LogisticsVehicleLoadBays logistics_vehicle_load_bays RLS Aktiv
21 Felder / Spalten

Tabelle logistics_vehicle_load_bays

Feldname Datentyp Pflicht Schlüssel Fachliche Bedeutung
asset_id UUID Ja * FK ➔ assets.id Feld asset_id
code VARCHAR(32) Ja * - Feld code
name VARCHAR(128) Ja * - Feld name
position INTEGER Ja * - Feld position
max_weight_kg NUMERIC(14, 4) Nein - Feld max_weight_kg
max_loading_meters NUMERIC(14, 4) Nein - Feld max_loading_meters
length_cm NUMERIC(14, 4) Nein - Feld length_cm
width_cm NUMERIC(14, 4) Nein - Feld width_cm
height_cm NUMERIC(14, 4) Nein - Feld height_cm
allows_dangerous_goods BOOLEAN Ja * - Feld allows_dangerous_goods
is_active BOOLEAN Ja * - Feld is_active
notes TEXT Nein - Feld notes
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata

🔌 Einstiegspunkte (UI & APIs)

Art Methode Endpunkt / Pfad Titel & Zweck Berechtigung
⚡ REST API DELETE /api/v1/crossdock/{op_id}/lines/{kind}/{line_id}
remove_line
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API DELETE /api/v1/logistics/vehicle-bay-loads/{load_id}
remove_vehicle_bay_load
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API GET /api/v1/crossdock
list_operations
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/crossdock/meta
meta
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/crossdock/rules
list_rules
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/crossdock/{op_id}
get_operation
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/docks
list_docks
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/docks/{dock_id}/slots
list_dock_slots
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/export-consolidations/{consolidation_id}
get_export_consolidation
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/packages/{package_id}/cn23
get_package_cn23
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/sendcloud/settings
get_sendcloud_settings
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments
list_shipments
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments/{shipment_id}
get_shipment
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments/{shipment_id}/cmr
shipment_cmr_pdf
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments/{shipment_id}/cmr.json
shipment_cmr_json
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments/{shipment_id}/contract-check
shipment_contract_check
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments/{shipment_id}/delivery-note
shipment_delivery_note_pdf
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments/{shipment_id}/label
shipment_label_pdf
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/shipments/{shipment_id}/packages
list_packages
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/tours
list_tours
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/tours/my
list_my_tours
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/tours/{tour_id}
get_tour
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/tours/{tour_id}/load-plan
tour_load_plan
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/tours/{tour_id}/positions
list_tour_positions
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/vehicle-bay-loads
list_vehicle_bay_loads
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/vehicle-bays
list_vehicle_bays
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /api/v1/logistics/vehicles/{asset_id}/capacity
get_vehicle_capacity
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /crossdock
crossdock_page
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /logistics
logistics_page
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /logistics/meine-touren
logistics_meine_page
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API GET /portal/{slug}/sendungen
shipments_page
Semantic binding: inventory_only; mutation=False
logistics
⚡ REST API PATCH /api/v1/logistics/tours/{tour_id}
patch_tour
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock
create_operation
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/dock-scan
dock_scan
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/from-purchase/{purchase_id}
from_purchase
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/rules
create_rule
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/allocate
allocate
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/cancel
cancel
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/dispatch
dispatch
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/inbound
add_inbound
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/inbound/from-purchase/{purchase_id}
inbound_from_purchase
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/outbound
add_outbound
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/outbound/from-quote/{quote_id}
outbound_from_quote
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/plan
plan
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/putaway
putaway
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/crossdock/{op_id}/receive
receive
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/dock-slots/{slot_id}/cancel
cancel_dock_slot
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/dock-slots/{slot_id}/check-in
check_in_dock_slot
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/dock-slots/{slot_id}/complete
complete_dock_slot
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/docks
create_dock
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/docks/{dock_id}/slots
book_dock_slot
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/export-consolidations
create_export_consolidation
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/export-consolidations/{consolidation_id}/close
close_export_consolidation
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/export-consolidations/{consolidation_id}/packages
add_export_consolidation_package
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/export-consolidations/{consolidation_id}/ship
ship_export_consolidation
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/packages/scan
scan_package
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/packages/{package_id}/cn23
ensure_package_cn23
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments
create_shipment
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/import
import_shipments
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/assign-tour
assign_tour
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/cancel
cancel_shipment
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/carrier-tracking
set_carrier_tracking
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/deliver
deliver_shipment
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/fail
fail_shipment
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/in-transit
in_transit_shipment
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/packages
add_package
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/pickup
pickup_shipment
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/sendcloud/book
book_sendcloud_label
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/sendcloud/cancel
cancel_sendcloud_booking
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/shipments/{shipment_id}/verify-charges
shipment_verify_charges
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours
create_tour
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/from-picking
tour_from_picking
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/from-return
tour_from_return
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/from-shipments
tour_from_shipments
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/cancel
cancel_tour
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/complete
complete_tour
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/geocode-stops
geocode_tour_stops
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/optimize-stops
optimize_tour_stops
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/position
update_position
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/start
start_tour
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/stops
add_stop
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/stops/{stop_id}/arrive
arrive_stop
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/tours/{tour_id}/stops/{stop_id}/complete
complete_stop
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/vehicle-bay-loads
assign_vehicle_bay_load
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /api/v1/logistics/vehicle-bays
create_vehicle_bay
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API POST /portal/{slug}/sendungen/import
shipments_import_cmr
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API PUT /api/v1/crossdock/rules/{rule_id}
update_rule
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API PUT /api/v1/crossdock/{op_id}/allocations
set_allocation
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API PUT /api/v1/logistics/sendcloud/settings
update_sendcloud_settings
Semantic binding: operator_surface; mutation=True
logistics
⚡ REST API PUT /api/v1/logistics/vehicles/{asset_id}/capacity
put_vehicle_capacity
Semantic binding: operator_surface; mutation=True
logistics

🛡️ Regulatorik & Compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • GoBD Nachvollziehbarkeit
  • Mandanten-Isolation (PostgreSQL RLS)