Centurio Documentação de sistemas e módulos
🏛️ Arquitetura de plataforma 🔑 Login
🏠 Todos os módulos / sales_billing / Sistema de caixa (POS)
📘

Sistema de caixa (POS)

pos sales_billing 🛡️ RLS Protected

Sistema de caixa (POS) <unk> Documentação processual e API derivada de código.

Fachliche Bestimmung: Sistema de caixa (POS) <unk> Documentação de processo e API derivada de código.

⚡ Fluxos de trabalho e ciclos de vida

Dieses Modul folgt dem standardisierten transaktionalen CRUD- und Event-Lifecycle.

🗄️ Modelos de dados

PortalInvites portal_invites RLS Aktiv
14 Fontes de cálculo

Tabelle portal_invites

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
customer_id UUID Ja * FK ➔ customers.id Feld customer_id
email VARCHAR(320) Ja * - Feld email
token_hash VARCHAR(64) Ja * - Feld token_hash
expires_at DATETIME Ja * - Feld expires_at
used_at DATETIME Nein - Feld used_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
PortalRequests portal_requests RLS Aktiv
19 Fontes de cálculo

Tabelle portal_requests

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
customer_id UUID Ja * FK ➔ customers.id Feld customer_id
portal_user_id UUID Nein FK ➔ portal_users.id Feld portal_user_id
request_type VARCHAR(24) Ja * - Feld request_type
asset_id UUID Nein FK ➔ assets.id Feld asset_id
payload JSON Nein - Feld payload
note TEXT Nein - Feld note
status VARCHAR(16) Ja * - Feld status
handled_by UUID Nein - Feld handled_by
handled_at DATETIME Nein - Feld handled_at
rejection_note TEXT Nein - Feld rejection_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
PortalSettings portal_settings RLS Aktiv
37 Fontes de cálculo

Tabelle portal_settings

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
enabled BOOLEAN Ja * - Feld enabled
allow_registration BOOLEAN Ja * - Feld allow_registration
registration_requires_review BOOLEAN Ja * - Feld registration_requires_review
show_products BOOLEAN Ja * - Feld show_products
show_quotes BOOLEAN Ja * - Feld show_quotes
show_contracts BOOLEAN Ja * - Feld show_contracts
show_assets BOOLEAN Ja * - Feld show_assets
show_stock BOOLEAN Ja * - Feld show_stock
show_invoices BOOLEAN Ja * - Feld show_invoices
show_tickets BOOLEAN Ja * - Feld show_tickets
show_prices BOOLEAN Ja * - Feld show_prices
show_workorders BOOLEAN Ja * - Feld show_workorders
show_projects BOOLEAN Ja * - Feld show_projects
show_service_reports BOOLEAN Ja * - Feld show_service_reports
show_appointments BOOLEAN Ja * - Feld show_appointments
show_returns BOOLEAN Ja * - Feld show_returns
show_shipments BOOLEAN Ja * - Feld show_shipments
show_rental BOOLEAN Ja * - Feld show_rental
show_tasks BOOLEAN Ja * - Feld show_tasks
allow_rental_booking BOOLEAN Ja * - Feld allow_rental_booking
return_allow_customer_return BOOLEAN Ja * - Feld return_allow_customer_return
return_allow_consignment_return BOOLEAN Ja * - Feld return_allow_consignment_return
return_allow_stored_goods_return BOOLEAN Ja * - Feld return_allow_stored_goods_return
return_allow_rental_return BOOLEAN Ja * - Feld return_allow_rental_return
return_window_days INTEGER Nein - Feld return_window_days
return_auto_approve BOOLEAN Ja * - Feld return_auto_approve
allow_document_downloads BOOLEAN Ja * - Feld allow_document_downloads
welcome_text TEXT Nein - Feld welcome_text
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
PortalUsers portal_users RLS Aktiv
16 Fontes de cálculo

Tabelle portal_users

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
customer_id UUID Ja * FK ➔ customers.id Feld customer_id
email VARCHAR(320) Ja * - Feld email
name VARCHAR(255) Ja * - Feld name
password_hash VARCHAR(255) Ja * - Feld password_hash
status VARCHAR(16) Ja * - Feld status
language VARCHAR(10) Ja * - Feld language
last_login_at DATETIME Nein - Feld last_login_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
PosDailyClosings pos_daily_closings RLS Aktiv
25 Fontes de cálculo

Tabelle pos_daily_closings

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
register_id UUID Ja * FK ➔ pos_registers.id Feld register_id
closing_number INTEGER Ja * - Feld closing_number
closing_date DATE Ja * - Feld closing_date
opening_balance NUMERIC(14, 2) Ja * - Feld opening_balance
total_sales_gross NUMERIC(14, 2) Ja * - Feld total_sales_gross
total_sales_net NUMERIC(14, 2) Ja * - Feld total_sales_net
total_tax_19 NUMERIC(14, 2) Ja * - Feld total_tax_19
total_tax_7 NUMERIC(14, 2) Ja * - Feld total_tax_7
total_cash_payments NUMERIC(14, 2) Ja * - Feld total_cash_payments
total_card_payments NUMERIC(14, 2) Ja * - Feld total_card_payments
total_deposits NUMERIC(14, 2) Ja * - Feld total_deposits
total_withdrawals NUMERIC(14, 2) Ja * - Feld total_withdrawals
calculated_cash_balance NUMERIC(14, 2) Ja * - Feld calculated_cash_balance
actual_cash_counted NUMERIC(14, 2) Ja * - Feld actual_cash_counted
cash_difference NUMERIC(14, 2) Ja * - Feld cash_difference
is_exported_to_accounting BOOLEAN Ja * - Feld is_exported_to_accounting
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
PosHeldSales pos_held_sales RLS Aktiv
12 Fontes de cálculo

Tabelle pos_held_sales

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
register_id UUID Ja * FK ➔ pos_registers.id Feld register_id
label VARCHAR(120) Nein - Feld label
cart_snapshot JSONB Ja * - Feld cart_snapshot
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
PosRegisters pos_registers RLS Aktiv
17 Fontes de cálculo

Tabelle pos_registers

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
register_number VARCHAR(32) Ja * - Feld register_number
name VARCHAR(128) Ja * - Feld name
status VARCHAR(48) Ja * - Feld status
warehouse_id UUID Nein FK ➔ locations.id Feld warehouse_id
tse_client_id VARCHAR(128) Nein - Feld tse_client_id
tse_serial_number VARCHAR(128) Nein - Feld tse_serial_number
tse_provider VARCHAR(64) Ja * - Feld tse_provider
current_cash_balance NUMERIC(14, 2) Ja * - Feld current_cash_balance
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
PosTransactionItems pos_transaction_items RLS Aktiv
17 Fontes de cálculo

Tabelle pos_transaction_items

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
transaction_id UUID Ja * FK ➔ pos_transactions.id Feld transaction_id
product_id UUID Nein FK ➔ products.id Feld product_id
position INTEGER Ja * - Feld position
item_name VARCHAR(255) Ja * - Feld item_name
quantity NUMERIC(12, 3) Ja * - Feld quantity
unit_price NUMERIC(14, 2) Ja * - Feld unit_price
net_amount NUMERIC(14, 2) Ja * - Feld net_amount
tax_rate NUMERIC(5, 2) Ja * - Feld tax_rate
tax_amount NUMERIC(14, 2) Ja * - Feld tax_amount
gross_amount NUMERIC(14, 2) Ja * - Feld gross_amount
discount_percent NUMERIC(5, 2) Ja * - Feld discount_percent
discount_amount NUMERIC(14, 2) Ja * - Feld discount_amount
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
PosTransactions pos_transactions RLS Aktiv
32 Fontes de cálculo

Tabelle pos_transactions

Feldname Tipo de dados Oficácia Schlüssel Importância profissional
register_id UUID Ja * FK ➔ pos_registers.id Feld register_id
customer_id UUID Nein FK ➔ customers.id Feld customer_id
invoice_id UUID Nein FK ➔ invoices.id Feld invoice_id
transaction_number VARCHAR(64) Ja * - Feld transaction_number
receipt_number VARCHAR(64) Ja * - Feld receipt_number
transaction_type VARCHAR(48) Ja * - Feld transaction_type
gross_amount NUMERIC(14, 2) Ja * - Feld gross_amount
net_amount NUMERIC(14, 2) Ja * - Feld net_amount
tax_amount NUMERIC(14, 2) Ja * - Feld tax_amount
payment_method VARCHAR(48) Ja * - Feld payment_method
given_amount NUMERIC(14, 2) Nein - Feld given_amount
change_amount NUMERIC(14, 2) Nein - Feld change_amount
discount_amount NUMERIC(14, 2) Ja * - Feld discount_amount
secondary_payment_method VARCHAR(48) Nein - Feld secondary_payment_method
secondary_payment_amount NUMERIC(14, 2) Nein - Feld secondary_payment_amount
tse_transaction_number BIGINT Nein - Feld tse_transaction_number
tse_signature_counter BIGINT Nein - Feld tse_signature_counter
tse_signature_value TEXT Nein - Feld tse_signature_value
tse_algorithm VARCHAR(32) Nein - Feld tse_algorithm
tse_public_key TEXT Nein - Feld tse_public_key
tse_started_at DATETIME Nein - Feld tse_started_at
tse_finished_at DATETIME Nein - Feld tse_finished_at
tse_qr_code_payload TEXT Nein - Feld tse_qr_code_payload
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 DELETE /api/v1/pos/held-sales/{held_sale_id}
discard_held_sale
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API GET /api/v1/pos/products/search
search_products
Semantic binding: inventory_only; mutation=False
pos
⚡ REST API GET /api/v1/pos/registers
list_registers
Semantic binding: inventory_only; mutation=False
pos
⚡ REST API GET /api/v1/pos/registers/{register_id}
get_register
Semantic binding: inventory_only; mutation=False
pos
⚡ REST API GET /api/v1/pos/registers/{register_id}/held-sales
list_held_sales
Semantic binding: inventory_only; mutation=False
pos
⚡ REST API GET /api/v1/pos/transactions/{transaction_id}
get_transaction
Semantic binding: inventory_only; mutation=False
pos
⚡ REST API GET /pos
pos_terminal_page
Semantic binding: inventory_only; mutation=False
pos
⚡ REST API POST /api/v1/pos/held-sales/{held_sale_id}/resume
resume_held_sale
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API POST /api/v1/pos/registers
create_register
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API POST /api/v1/pos/registers/{register_id}/cash-movement
cash_movement
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API POST /api/v1/pos/registers/{register_id}/checkout
Ação de pagamento
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API POST /api/v1/pos/registers/{register_id}/close
close_register
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API POST /api/v1/pos/registers/{register_id}/daily-closing
daily_closing
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API POST /api/v1/pos/registers/{register_id}/held-sales
hold_sale
Semantic binding: operator_surface; mutation=True
pos
⚡ REST API POST /api/v1/pos/registers/{register_id}/open
open_register
Semantic binding: operator_surface; mutation=True
pos

🛡️ Regulação e conformidade

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • - a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a)
  • A solução de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados