Centurio Documentação de sistemas e módulos
🏛️ Arquitetura de plataforma 🔑 Login
🏠 Todos os módulos / supply_chain / Returnos e reclamações
↩️

Returnos e reclamações

returns supply_chain 🛡️ RLS Protected

Gestão de devoluções para clientes e fornecedores, verificação da qualidade, armazenamento e criação de credores.

Fachliche Bestimmung: Processo RMA abrangente (autorization de retour de marchandises). Os clientes ou técnicos de serviços notificam as remessas.

⚡ Fluxos de trabalho e ciclos de vida

Revisão e contabilidade dos retornos de RMA rma_workflow

A partir da entrada de devolução, da verificação técnica até ao crédito.

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
Registo de devolução
O Tribunal de Justiça de Portugal, em nome do Tribunal de Justiça,
Aktionen: Número de RMA
2. RECEIVE
Introdução e identificação
Pacote em armazém, barcode de RMA.
Aktionen: A Comissão
3. INSPECT
Verificação de estado
Exame: Novos, usados, em necessidade de reparação ou em lixo.
Aktionen: Documentar os resultados da verificação
4. SETTLE
Definição
Re-investimento no armazém ou em decomposição, exclusão do crédito.
Aktionen: Crédito

Retorno status:return_order

Massinha de estado observável (só observável)

1. draft
Projecto
Estado da máquina de devolução de estado.
2. requested
Requerido
Estado da máquina de retorno de estado.
3. approved
Aplicado
Estado <unk>aprovado<unk> da máquina de retorno de estado.
4. rejected
Rejeitado
Estado de regresso da máquina de estado.
5. in_transit
in_transit
Estado <unk>in_transit<unk> da máquina de retorno de estado.
6. part_received
part_received
Status <unk>part_received<unk> da máquina de regresso de estado.
7. received
recebido
Estado <unk>recebido <unk> da máquina de regresso de estado.
8. inspected
inspeccionado
Estado da máquina de retorno de estado.
9. resolved
Resolução
Estado da máquina de regresso de estado.
10. closed
fechado
Estado da máquina de retorno de estado.
11. cancelled
Cancelação
Status de devolução da máquina de devolução.

🗄️ Modelos de dados

ReturnLines return_lines RLS Aktiv
30 Fontes de cálculo

Tabelle return_lines

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
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 Fontes de cálculo

Tabelle return_notes

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
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 Fontes de cálculo

Tabelle return_orders

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
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 Fontes de cálculo

Tabelle return_policies

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
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 Fontes de cálculo

Tabelle return_reasons

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
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

🔌 Pontos de partida (UI e APIs)

Art Método Ponto final / caminho Titel & Zweck Recurso
⚡ REST API GET /api/v1/returns
list_returns
Semantic binding: not_evaluated; mutation=False
returns
⚡ REST API GET /api/v1/returns/analytics
Análise
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
Metá
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
Aplicar
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/cancel
Cancel
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/close
- cerca
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
Inspecção
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
recebimento
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/reject
Rejeitar
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/resolve
Resolução
Semantic binding: not_evaluated; mutation=True
returns
⚡ REST API POST /api/v1/returns/{return_id}/ship
Navio
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

🛡️ Regulação e conformidade

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • BGB direito de revogação (§355)
  • Direito de garantia (§ 437 BGB)
  • Prove de crédito
Modulos ligados:
➔ inventory ➔ finance ➔ customers ➔ portal