Centurio Documents de système et de module
🏛️ Architecture de plateforme 🔑 Login
🏠 Tous les modules / sales_billing / Les activités de transport en ligne
🚚

Les activités de transport en ligne

dropship sales_billing 🛡️ RLS Protected

Les conditions de la présente décision sont les suivantes:

Fachliche Bestimmung: Il s'agit d'une offre de livraison qui est effectuée en ligne ou en ligne, et qui est effectuée en ligne ou en ligne.

⚡ Flux de travail et cycles de vie

Réservation des coûts de production dropship_lifecycle

Les activités de transport en commun sont effectuées en fonction de la nature et de la nature des activités de transport en commun.

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
Identification de route
le résolution_route détermine les activités de ligne à l'aide de catégories de produits ou de positions.
Aktionen: Supprimer les besoins en stockage
2. PURCHASE_ORDER
Génération de commandes
DropshipService regroupe les positions selon fournisseur et génère PO avec procurement_type='dropship'.
Aktionen: Adresse de livraison = adresse du client
3. TRACKING
Surveillance des expéditions
fournisseur indique le numéro de suivi et le service de livraison.
Aktionen: Résultats de la procédure
4. DELIVERY_CONFIRM
Les services de livraison
Confirmation de la livraison au client (POD).
Aktionen: Statut "départ"
5. BILLING_RELEASE
Déclaration des factures
billing_released est mis sur True; le compte client est débloqué.
Aktionen: Les produits de la catégorie 1

Kundenauftrag → Abwicklung cascade:business.customer_order.fulfill

Les cascades (réview_gated)

1. order
Verkaufsauftrag anlegen / bestätigen
sales
Aktionen: sales.create
2. issue
Réservation de la sortie des marchandises
les produits
Aktionen: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3. tour
Plan de tournée de livraison
logistique
Aktionen: create_tour
4. project
- les coûts de l'établissement
projets
Aktionen: link_project
5. task
Exécution / calcul
tâches
Aktionen: create_task

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

Les cascades (réview_gated)

1. cascade
Verkaufsauftrag anlegen / bestätigen

Benutzerbefehl: sales order agent plan:command_sales_order_agent

Plan durable vérifié (durable_plan), démarrage: manuel_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

🗄️ Modèles de données

DropshipLines dropship_lines RLS Aktiv
37 Les champs / colonnes

Tabelle dropship_lines

Feldname Type de données Le dépôt Schlüssel Importance professionnelle
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 Les champs / colonnes

Tabelle sales_agents

Feldname Type de données Le dépôt Schlüssel Importance professionnelle
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

🔌 Les points d'entrée (UI et API)

Art Le mode de fonctionnement Point de fin / parcours Titel & Zweck Leur
⚡ 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
Offres de filtres à traction
Filtrage des offres avec des positions de commerce de détail
quotes:read
🖥️ WEB-UI GET /purchasing#dropship
Achat en ligne
Rides d'achat dédiés avec numéros de référence et suivi
purchasing:read
⚡ REST API GET /api/v1/dropshipping
Les positions de trajet
Les positions de l'activité de transport en commun avec les données fournisseurs et les données de preuve
quotes:read
⚡ REST API POST /api/v1/dropshipping/{id}/assign-supplier
Les dérivés de l'équipement
Indique fournisseur et génère des commandes d'achat
purchasing:write
⚡ REST API POST /api/v1/dropshipping/{id}/tracking
déposer le suivi
Insérer le numéro de suivi et insérer le statut en_transit
purchasing:write
⚡ REST API POST /api/v1/dropshipping/{id}/delivered
Confirmer la livraison
Mette le statut de livraison et déclare la délivrance de facture
purchasing:write

🛡️ Réglementation et conformité

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • UStG §25b (Tréviers intracommunautaires)
  • Dépôt de crédit (payement de crédit)
Modules liés:
➔ finance ➔ purchasing ➔ catalog ➔ customers ➔ suppliers