Centurio Sistem ve modül belgesi
🏛️ Platform mimarisi 🔑 Login
🏠 Tüm modüller / sales_billing / Kassa sistemi (POS)
📘

Kassa sistemi (POS)

pos sales_billing 🛡️ RLS Protected

Kasesi sistemi (POS) <unk> Koddan alınan süreç ve API belgeleri.

Fachliche Bestimmung: Kass sistemi (POS) <unk> koddan alınan süreç ve API belgeleri. Tüm kayıtlı işlemleri, yetenekleri, durum makineleri, API'leri ve simülasyon ve inceleme tablolarını içerir.

⚡ İş akışları ve yaşam döngüleri

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

🗄️ Verim modelleri & alanlar

Policies policies RLS Aktiv
20 Alanlar / Sütunlar

Tabelle policies

Feldname Verim tipi İade Schlüssel Mesleki anlam
name VARCHAR(128) Ja * - Feld name
description TEXT Nein - Feld description
subject_type VARCHAR(32) Nein - Feld subject_type
subject_id UUID Nein - Feld subject_id
action VARCHAR(64) Ja * - Feld action
entity_type VARCHAR(32) Nein - Feld entity_type
conditions JSONB Ja * - Feld conditions
effect VARCHAR(48) Ja * - Feld effect
risk_level INTEGER Ja * - Feld risk_level
priority INTEGER Ja * - Feld priority
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
PortalInvites portal_invites RLS Aktiv
14 Alanlar / Sütunlar

Tabelle portal_invites

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle portal_requests

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle portal_settings

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle portal_users

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle pos_daily_closings

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle pos_held_sales

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle pos_registers

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle pos_transaction_items

Feldname Verim tipi İade Schlüssel Mesleki anlam
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 Alanlar / Sütunlar

Tabelle pos_transactions

Feldname Verim tipi İade Schlüssel Mesleki anlam
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

🔌 Giriş noktaları (UI & API)

Art Metod Son nokta / yol Titel & Zweck Yasal
⚡ 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
Çekap
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

🛡️ Yönetim ve Uyum

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • Görevlilik
  • Müşteri izolyasyonu (PostgreSQL RLS)