Centurio Systemen en modules
🏛️ Plattformarchitectuur 🔑 Login
🏠 Alle modules / sales_billing / Vervoer van goederen en diensten
🚚

Vervoer van goederen en diensten

dropship sales_billing 🛡️ RLS Protected

De Commissie heeft de Commissie verzocht om een aanvullende informatie te verstrekken.

Fachliche Bestimmung: De opdracht van de klant wordt automatisch geopend met het adres van de klant, en de klantrekening wordt op de hoogte gesteld van een factureringshut door een doorverwijzingshut, tot het fysieke bewijs van levering (proof of delivery / tracking) is aanwezig.

⚡ Werkstromen en levenscyclus

Vervoer van de goederen dropship_lifecycle

Verkoop- en logistieke verrichting van de routes zonder tussenopslag.

sequenceDiagram Customer->>ERP: Bestellt Artikel (Route: Dropship) ERP->>Supplier: PO (Lieferadresse: Kunde, Typ: dropship) Note over ERP: billing_released = False (Fakturasperre) Supplier->>Customer: Liefert Ware direkt aus Supplier-->>ERP: Sendungsnummer / Zustellnachweis ERP->>ERP: Status = delivered & billing_released = True ERP->>Customer: Ausgangsrechnung wird generiert
1. ROUTE_DETECTION
Routenochtering
resolve_route bepaalt de routehandel op basis van productcategorie of positiooverdracht.
Aktionen: Overschrijding van de opslagbehoefte
2. PURCHASE_ORDER
Opdrachtopwekking
DropshipService bundelt posities naar leverancier en genereert PO met procurement_type='dropship'.
Aktionen: Afleveringsadres = klantadres
3. TRACKING
Verzendingsachterstand
leverancier meldt tracking-nummer en verzenddienst.
Aktionen: Status 'in_transit'
4. DELIVERY_CONFIRM
Vervoer
Confirming van de levering aan de klant (POD).
Aktionen: De status "geleverd"
5. BILLING_RELEASE
Afgifte van factuur
billing_released wordt ingesteld op True; klantrekening wordt vrijgelaten.
Aktionen: Vervaardigbaar

Kundenauftrag → Abwicklung cascade:business.customer_order.fulfill

Cascade (review_gated).

1. order
Verkaufsauftrag anlegen / bestätigen
sales
Aktionen: sales.create
2. issue
Boeken van de uitgang als ontwerp
inventaris
Aktionen: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3. tour
Verzending van de uitlevering
logistiek
Aktionen: create_tour
4. project
project / kostenstellen toe te kennen
Projecten
Aktionen: link_project
5. task
Uitvoeren / afrekenen
taken
Aktionen: create_task

Verkaufsauftrag anlegen / bestätigen cascade_target:business.sales_order.create

Cascade (review_gated).

1. cascade
Verkaufsauftrag anlegen / bestätigen

Benutzerbefehl: sales order agent plan:command_sales_order_agent

Gecontroleerd duurzaam plan (durable_plan), start: manual_command.

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

🗄️ Datamodellen & velden

DropshipLines dropship_lines RLS Aktiv
37 Veld / kolom

Tabelle dropship_lines

Feldname Datatipe Verplichting Schlüssel Gezondheid
item_type VARCHAR(24) Ja * - Feld item_type
item_id UUID Ja * - Feld item_id
quote_id UUID Nein FK ➔ quotes.id Feld quote_id
work_order_id UUID Nein FK ➔ work_orders.id Feld work_order_id
project_id UUID Nein FK ➔ projects.id Feld project_id
customer_id UUID Nein FK ➔ customers.id Feld customer_id
product_id UUID Nein FK ➔ products.id Feld product_id
description VARCHAR(255) Ja * - Feld description
quantity NUMERIC(14, 4) Ja * - Feld quantity
unit VARCHAR(16) Ja * - Feld unit
sales_net NUMERIC(14, 2) Ja * - Feld sales_net
supplier_id UUID Nein FK ➔ suppliers.id Feld supplier_id
purchase_id UUID Nein FK ➔ purchases.id Feld purchase_id
purchase_item_id UUID Nein FK ➔ purchase_items.id Feld purchase_item_id
cost_net NUMERIC(14, 2) Nein - Feld cost_net
ship_to TEXT Nein - Feld ship_to
status VARCHAR(16) Ja * - Feld status
carrier VARCHAR(120) Nein - Feld carrier
tracking_number VARCHAR(120) Nein - Feld tracking_number
tracking_url VARCHAR(512) Nein - Feld tracking_url
expected_delivery_date DATE Nein - Feld expected_delivery_date
shipped_at DATETIME Nein - Feld shipped_at
delivered_at DATETIME Nein - Feld delivered_at
proof_document_id UUID Nein FK ➔ documents.id Feld proof_document_id
billing_released BOOLEAN Ja * - Feld billing_released
release_reason VARCHAR(255) Nein - Feld release_reason
chain_review BOOLEAN Ja * - Feld chain_review
issue_note VARCHAR(500) Nein - Feld issue_note
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
SalesAgents sales_agents RLS Aktiv
18 Veld / kolom

Tabelle sales_agents

Feldname Datatipe Verplichting Schlüssel Gezondheid
name VARCHAR(255) Ja * - Feld name
email VARCHAR(320) Nein - Feld email
phone VARCHAR(64) Nein - Feld phone
customer_id UUID Nein FK ➔ customers.id Feld customer_id
supplier_id UUID Nein FK ➔ suppliers.id Feld supplier_id
default_commission_percent NUMERIC(5, 2) Nein - Feld default_commission_percent
default_markup_percent NUMERIC(5, 2) Nein - Feld default_markup_percent
notes TEXT Nein - Feld notes
active BOOLEAN Ja * - Feld active
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

🔌 Inleidende punten (UI&API's)

Art Metode Eindpunt / pad Titel & Zweck Aanpassing
⚡ REST API DELETE /api/v1/sales/orders/{order_id}/items/{item_id}
delete_item
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API GET /api/v1/sales/orders
list_sales_orders
Semantic binding: inventory_only; mutation=False
sales
⚡ REST API GET /api/v1/sales/orders/{order_id}
get_sales_order
Semantic binding: inventory_only; mutation=False
sales
⚡ REST API GET /api/v1/sales/summary
sales_summary
Semantic binding: inventory_only; mutation=False
sales
⚡ REST API GET /portal/{slug}/bestellung
order_form
Semantic binding: inventory_only; mutation=False
sales
⚡ REST API GET /verkauf
sales_page
Semantic binding: inventory_only; mutation=False
sales
⚡ REST API GET /verkauf/{order_id}
sales_order_page
Semantic binding: inventory_only; mutation=False
sales
⚡ REST API PATCH /api/v1/sales/orders/{order_id}
update_sales_order
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API PATCH /api/v1/sales/orders/{order_id}/items/{item_id}
update_item
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders
create_sales_order
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders/from-quote/{quote_id}
create_from_quote
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders/{order_id}/cancel
cancel_sales_order
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders/{order_id}/confirm
confirm_sales_order
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders/{order_id}/invoice
invoice_sales_order
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders/{order_id}/items
add_item
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders/{order_id}/mark-delivered
mark_delivered
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /api/v1/sales/orders/{order_id}/start-delivery
start_delivery
Semantic binding: operator_surface; mutation=True
sales
⚡ REST API POST /portal/{slug}/bestellung
order_submit
Semantic binding: operator_surface; mutation=True
sales
🖥️ WEB-UI GET /quotes?status=dropship
Aanbiedingen voor streekfilters
Filterde aanbiedingen met routes
quotes:read
🖥️ WEB-UI GET /purchasing#dropship
Verkoop op routes
Degeerde aankoopritters met kennisgevingen en tracking
purchasing:read
⚡ REST API GET /api/v1/dropshipping
Vervoer van de onderdelen
Voor de levering van routesposities met leveranciers- en bewijsgegevens
quotes:read
⚡ REST API POST /api/v1/dropshipping/{id}/assign-supplier
aan te wijzen
Toont aan en genereert een aankoopbestelling
purchasing:write
⚡ REST API POST /api/v1/dropshipping/{id}/tracking
Deposito van de tracking
Voer een trackingnummer in en zet status in_transit in
purchasing:write
⚡ REST API POST /api/v1/dropshipping/{id}/delivered
Bevestiging van de levering
De status van de verrichting wordt ingevuld en de afrekening wordt afgegeven
purchasing:write

🛡️ Reglementarische en compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • UStG §25b (Internationale driehoekigeningen)
  • GoBD (invooi pas na prestatie)
Gecombineerde modules:
➔ finance ➔ purchasing ➔ catalog ➔ customers ➔ suppliers