Centurio System- & moduladokumentation
🏛️ Plattformarkitektur 🔑 Login
🏠 Alle moduler / supply_chain / Tilbagesendelser og klager
↩️

Tilbagesendelser og klager

returns supply_chain 🛡️ RLS Protected

Tilbagesendelse for kunder og leverandører, kvalitetskontrol, opbevaring og kreditvurdering.

Fachliche Bestimmung: Det er en omfattende RMA-proces (godtgørelse af returvarer).Kunder eller service teknikere anmelder returforsendelser.Systemet angiver et RMA-nummer, fører lagerarbejderen gennem kvalitets- og fejlkontrol, bogholder fejlfri varer tilbage i lager og giver automatisk opkald på kredit- eller erstatningsleverancer.

⚡ Arbejdsflow & livscyklusser

RMA-returkontrol og -regnskab rma_workflow

Fra returindtjening til teknisk kontrol og til kredit.

stateDiagram-v2 [*] --> REGISTER: RMA anlegen REGISTER --> RECEIVE: Ware trifft ein RECEIVE --> INSPECT: Qualitätsprüfung INSPECT --> RESTOCK: Ware einwandfrei -> Lagerzubuchung INSPECT --> SCRAP: Defekt -> Schrottbuchung RESTOCK --> SETTLE: Gutschrift auslösen SCRAP --> SETTLE: Kulanz- / Garantiegutschrift SETTLE --> [*]
1. REGISTER
Tilmelding af retur
kunde eller indenrigsministerium meddeler tilbageførsel med begrundelse.
Aktionen: RMA-nummer
2. RECEIVE
Indtastning & identifikation
Pakke er i lager en, barcode scanning af RMA.
Aktionen: Udførelse af kontrolopgaver
3. INSPECT
Kontrol af status
Undersøgelse: Ny, brugt, reparationsbevidst eller skrot
Aktionen: Dokumentere resultaterne af undersøgelsen
4. SETTLE
Indtægter
Tilbageindtægten i lager eller forringelse, udløser kredit.
Aktionen: Udvikling af kredit

Tilbage status:return_order

Det er ikke nødvendigt at foretage overførsler her.

1. draft
Udkast til
Status <unk>udkast <unk> til returmaskinen.
2. requested
anmodet
Status <unk>requested<unk> af returmaskinen.
3. approved
godkendte
Status <unk>godkendt <unk> returmaskinen
4. rejected
Afvist
Status <unk>afvist <unk> returmaskinen.
5. in_transit
in_transit
Status <unk>in_transit<unk> af returmaskinen.
6. part_received
part_received
Status <unk>part_received<unk> af returmaskinen
7. received
Indtalt
Status <unk> modtaget <unk> returmaskinen
8. inspected
Kontroller
Status <unk>inspektion <unk> returmaskinen.
9. resolved
-
Status <unk>resolved<unk> af returmaskinen.
10. closed
lukket
Status <unk>closed<unk> af returmaskinen.
11. cancelled
aflyst
Status af den returmaskine.

🗄️ Datamodeller & felt

ReturnLines return_lines RLS Aktiv
30 Feltet / Columner

Tabelle return_lines

Feldname Data-type Det er en pligt Schlüssel Faglige betydning
return_id UUID Ja * FK ➔ return_orders.id Feld return_id
position INTEGER Ja * - Feld position
stock_owner VARCHAR(16) Ja * - Feld stock_owner
product_id UUID Nein FK ➔ products.id Feld product_id
stored_article_id UUID Nein FK ➔ stored_articles.id Feld stored_article_id
asset_id UUID Nein FK ➔ assets.id Feld asset_id
invoice_item_id UUID Nein - Feld invoice_item_id
description VARCHAR(255) Ja * - Feld description
unit VARCHAR(32) Ja * - Feld unit
unit_price NUMERIC(14, 2) Nein - Feld unit_price
tax_rate NUMERIC(6, 3) Nein - Feld tax_rate
quantity_requested NUMERIC(14, 4) Ja * - Feld quantity_requested
quantity_received NUMERIC(14, 4) Ja * - Feld quantity_received
quantity_accepted NUMERIC(14, 4) Ja * - Feld quantity_accepted
from_location_id UUID Nein FK ➔ locations.id Feld from_location_id
tracking_codes JSONB Ja * - Feld tracking_codes
reason_id UUID Nein FK ➔ return_reasons.id Feld reason_id
condition_grade VARCHAR(1) Nein - Feld condition_grade
disposition VARCHAR(24) Nein - Feld disposition
disposition_location_id UUID Nein FK ➔ locations.id Feld disposition_location_id
disposed_at DATETIME Nein - Feld disposed_at
unit_cost NUMERIC(14, 2) Nein - Feld unit_cost
inspection_notes TEXT Nein - Feld inspection_notes
photo_document_ids JSONB Ja * - Feld photo_document_ids
child_return_id UUID Nein - Feld child_return_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
ReturnNotes return_notes RLS Aktiv
9 Feltet / Columner

Tabelle return_notes

Feldname Data-type Det er en pligt Schlüssel Faglige betydning
return_id UUID Ja * FK ➔ return_orders.id Feld return_id
author_id UUID Nein - Feld author_id
kind VARCHAR(16) Ja * - Feld kind
body TEXT Ja * - Feld body
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
ReturnOrders return_orders RLS Aktiv
46 Feltet / Columner

Tabelle return_orders

Feldname Data-type Det er en pligt Schlüssel Faglige betydning
rma_number VARCHAR(64) Ja * - Feld rma_number
kind VARCHAR(24) Ja * - Feld kind
status VARCHAR(16) Ja * - Feld status
channel VARCHAR(16) Ja * - Feld channel
public_token UUID Ja * - Feld public_token
customer_id UUID Nein FK ➔ customers.id Feld customer_id
supplier_id UUID Nein FK ➔ suppliers.id Feld supplier_id
contract_id UUID Nein FK ➔ contracts.id Feld contract_id
invoice_id UUID Nein - Feld invoice_id
work_order_id UUID Nein - Feld work_order_id
project_id UUID Nein - Feld project_id
rental_booking_id UUID Nein FK ➔ rental_bookings.id Feld rental_booking_id
ticket_id UUID Nein FK ➔ tickets.id Feld ticket_id
parent_return_id UUID Nein - Feld parent_return_id
policy_id UUID Nein - Feld policy_id
reason_id UUID Nein FK ➔ return_reasons.id Feld reason_id
reason_text TEXT Nein - Feld reason_text
resolution VARCHAR(24) Nein - Feld resolution
restocking_fee_percent NUMERIC(5, 2) Ja * - Feld restocking_fee_percent
credit_note_id UUID Nein - Feld credit_note_id
replacement_ref VARCHAR(255) Nein - Feld replacement_ref
repair_work_order_id UUID Nein - Feld repair_work_order_id
charge_invoice_id UUID Nein - Feld charge_invoice_id
credit_amount NUMERIC(14, 2) Nein - Feld credit_amount
carrier VARCHAR(128) Nein - Feld carrier
tracking_number VARCHAR(128) Nein - Feld tracking_number
return_location_id UUID Nein FK ➔ locations.id Feld return_location_id
pickup_address TEXT Nein - Feld pickup_address
risk_score INTEGER Ja * - Feld risk_score
risk_flags JSONB Ja * - Feld risk_flags
requested_at DATETIME Nein - Feld requested_at
approved_at DATETIME Nein - Feld approved_at
shipped_at DATETIME Nein - Feld shipped_at
received_at DATETIME Nein - Feld received_at
inspected_at DATETIME Nein - Feld inspected_at
resolved_at DATETIME Nein - Feld resolved_at
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
ReturnPolicies return_policies RLS Aktiv
22 Feltet / Columner

Tabelle return_policies

Feldname Data-type Det er en pligt Schlüssel Faglige betydning
name VARCHAR(255) Ja * - Feld name
customer_id UUID Nein FK ➔ customers.id Feld customer_id
contract_id UUID Nein FK ➔ contracts.id Feld contract_id
is_default BOOLEAN Ja * - Feld is_default
window_days INTEGER Ja * - Feld window_days
auto_approve BOOLEAN Ja * - Feld auto_approve
restocking_fee_percent NUMERIC(5, 2) Ja * - Feld restocking_fee_percent
require_inspection BOOLEAN Ja * - Feld require_inspection
shipping_paid_by VARCHAR(16) Ja * - Feld shipping_paid_by
grade_credit_percent JSONB Ja * - Feld grade_credit_percent
condition_matrix JSONB Ja * - Feld condition_matrix
max_return_rate_percent NUMERIC(5, 2) Ja * - Feld max_return_rate_percent
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
ReturnReasons return_reasons RLS Aktiv
16 Feltet / Columner

Tabelle return_reasons

Feldname Data-type Det er en pligt Schlüssel Faglige betydning
code VARCHAR(32) Ja * - Feld code
label VARCHAR(255) Ja * - Feld label
category VARCHAR(32) Ja * - Feld category
fault_party VARCHAR(16) Ja * - Feld fault_party
default_disposition VARCHAR(24) Nein - Feld default_disposition
default_resolution VARCHAR(24) Nein - Feld default_resolution
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

🔌 Startpunkter (UI'er og API'er)

Art Metode Endpunkt / vej Titel & Zweck Tilladelse
⚡ REST API GET /api/v1/returns
list_returns
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/analytics
Analyser
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/contract/{contract_id}/returnables
contract_returnables
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/invoice/{invoice_id}/items
invoice_items
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/meta
med
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/party-context
party_context
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/policies
list_policies
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/reasons
list_reasons
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/{return_id}
get_return
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/{return_id}/credit-preview
credit_preview
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /portal/{slug}/retouren
returns_page
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /pub/retoure/status/{token}
return_status
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /pub/retoure/status/{token}/slip
return_slip
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /pub/retoure/{tenant_id}
return_form
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /returns
returns_list_page
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /returns/analytics
returns_analytics_page
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /returns/new
returns_new_page
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /returns/settings
returns_settings_page
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /returns/{return_id}
returns_detail_page
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /returns/{return_id}/print
returns_print_page
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API PATCH /api/v1/returns/policies/{policy_id}
update_policy
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API PATCH /api/v1/returns/reasons/{reason_id}
update_reason
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns
create_return
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/collective-credit-note
create_collective_credit_note
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/policies
create_policy
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/reasons
create_reason
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/approve
godkendelse
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/cancel
afskaffe
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/close
- nær
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/escalate-ticket
escalate_to_ticket
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/inspect
Kontrol
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/lines/{line_id}/photos
add_photos
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/notes
add_note
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/receive
-
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/reject
afvisning
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/resolve
- at
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/ship
Skip
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /portal/{slug}/retouren/anfordern
return_request
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /pub/retoure/{tenant_id}
return_lookup
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /pub/retoure/{tenant_id}/submit
return_submit
Semantic binding: not_evaluated; mutation=True
returns

🛡️ Reglering og overholdelse

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • BGB Ret til tilbagekaldelse (§ 355)
  • Garantieret (§ 437 BGB)
  • Gældsbevis
Knytte moduler:
➔ inventory ➔ finance ➔ customers ➔ portal