Centurio Dokumentazzjoni tas-sistema u tal-moduli
🏛️ Arkitettura tal-pjattaforma 🔑 Login
🏠 Il-Moduli kollha / sales_billing / Oferta, fatturi u debituri (Finanzi)
💶

Oferta, fatturi u debituri (Finanzi)

finance sales_billing 🛡️ RLS Protected

Fluss ta' bejgħ minn tmiem għal tmiem: kalkolu, aċċettazzjoni ta' offerti, bidla fil-proġett, fatturazzjoni u memorandum.

Fachliche Bestimmung: Il-Kummissjoni għandha tikkunsidra li l-miżuri li ġejjin jistgħu jiġu implimentati fil-kuntest tal-implimentazzjoni tal-programm ta' ħidma tal-Unjoni Ewropea (JRC) u tal-programm ta' ħidma tal-Unjoni Ewropea (JRC) u l-programm ta' ħidma tal-Unjoni Ewropea (JRC) u l-programm ta' ħidma tal-Unjoni Ewropea (JRC) u l-programm ta' ħidma tal-Unjoni Ewropea (JRC) u l-programm ta' ħidma tal-Unjoni Ewropea (JRC) u l-programm ta' ħidma tal-Unjoni Ewropea (JRC) u

⚡ Flussi ta' xogħol u ċikli ta' ħajja

Il-kosta tal-flussi ta' xogħol minn kwota għal flus kontanti quote_to_cash_cascade

Il-GT13_0__ dwar l-adozzjoni, il-konverżjoni awtomatika tal-ordni, il-konsenja parzjali sal-kontijiet finali.

stateDiagram-v2 [*] --> DRAFT: Angebot anlegen DRAFT --> SENT: Versenden an Kunden SENT --> ACCEPTED: Kunde bestätigt Angebot ACCEPTED --> CONVERTED: convert_to_project() state CONVERTED { direction LR WorkOrder: Arbeitsauftrag Dropship: Streckenbestellung BTO: Einkaufslager } CONVERTED --> INVOICED: Rechnung erstellen (ZUGFeRD/DATEV) INVOICED --> PAID: Zahlungseingang (SEPA/Bank) PAID --> [*]
1. DRAFT
Proġett
Il-ġbir tal-pożizzjonijiet, ir-rabatt, l-għanijiet ta' ħlas u l-indirizzi tal-provvista.
Aktionen: Il-kalkolu tal-prezzijiet
2. SENT
Issiġar
Jenġerazzjoni ta' PDF u tibgħat lill-klijenti permezz ta' e-mail jew portal.
Aktionen: Sistemi ta' kontroll
3. ACCEPTED
Il-Kummissjoni
klijent jaċċetta l kwotazzjoni (online jew fil-PRE).
Aktionen: jtħaddem convert_to_project
4. CONVERTED
F'forma ta' ċelloli
Ġenerazzjoni awtomatika ta' ordnijiet ta' xogħol, ordni ta' rotot jew riżerva tal-materjal.
Aktionen: dokument tal-kunsinna / fattura li jitneħħew
5. INVOICED
Fatturat
L-istabbiliment tal-konformità fiskali fattura ħierga (PDF/A-3, ZUGFeRD).
Aktionen: Jitmexxa l-kontijiet tad-DATEV

L-ordni tal-utent: aġent tal-fattura plan:command_billing_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. billing_agent
billing_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "billing_agent", "condition_fact": null}
Aktionen: billing_agent

L-ordni għall-użu: billing general agent plan:command_billing_general_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. billing_general_agent
billing_general_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "billing_general_agent", "condition_fact": null}
Aktionen: billing_general_agent

L-użu ta' l-intestatura 1 plan:command_dunning_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. dunning_agent
dunning_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "dunning_agent", "condition_fact": null}
Aktionen: dunning_agent

fattura mibgħuta plan:invoice_lifecycle

Geprüfter Durable-Plan (durable_plan), Start: domain_event.

1. payment_matching_agent
payment_matching_agent
{"key": "step_0", "label": "Zahlung zuordnen", "adapter": "agent.execute", "agent": "payment_matching_agent", "condition_fact": "payment_received"}
Aktionen: payment_matching_agent
2. dunning_agent
dunning_agent
{"key": "step_1", "label": "Mahnung vorbereiten", "adapter": "agent.execute", "agent": "dunning_agent", "condition_fact": "is_overdue"}
Aktionen: dunning_agent

Ħidma żejda status:extra_work

L-użu tal-apparat tal-istatus osservattiv (observable_only) ma jkunx obbligat.

1. detected
iddetekta
Statut <unk>detected<unk> tal-magna tal-istat Mehrarbeit.
2. accepted
aċċettati
Statut <unk> aċċettat <unk> tal-magna tal-istat Mehrarbeit.
3. rejected
Redditu
Statut <unk>rifjutat<unk> tal-magna tal-istat
4. quoted
Ċivotazzjoni
Statut <unk>quoted<unk> tal-magna tal-istat Mehrarbeit.
5. invoiced
fatturati
Statut <unk>invoiced<unk> tal-magna tal-istat Mehrarbeit.

fattura status:invoice

L-użu tal-apparat tal-istatus osservattiv (observable_only) ma jkunx obbligat.

1. draft
l-abbozz
Statut <unk>abbozz <unk> tal-magna tal-istat fattura.
2. proforma
proforma
Statut <unk>proforma<unk> tal-magna tal-istat fattura.
3. issued
maħruġ
Statut <unk>issued<unk> tal-magna tal-istat fattura.
4. sent
mibgħuta
Statut <unk>sent<unk> tal-magna tal-istat fattura.
5. partially_paid
partially_paid
Statut <unk>partial_paid<unk> tal-magna tal-istat fattura.
6. paid
imħallsa
Statut <unk>paged<unk> tal-magna tal-istat fattura.
7. overdue
tard
Statut <unk> overdue <unk> tal-magna tal-istat fattura.
8. cancelled
ikkanċellati
Statut <unk>kanċellati <unk> tal-magna tal-istat fattura.

Trasferiment ta' peppol status:peppol_transmission

L-użu tal-apparat tal-istatus osservattiv (observable_only) ma jkunx obbligat.

1. draft
l-abbozz
Statut <unk>abbozz <unk> tal-magna tal-istat Peppol-trasportazzjoni.
2. queued
li jtajru
Statut <unk>queued<unk> tal-magna tal-istat Peppol-trasmissjoni.
3. transmitting
li jittrażmettu
Statut <unk>trażmissjoni <unk> tal-magna tal-istat Peppol-trażmissjoni.
4. delivered
li ntbagħtet
Statut <unk>delivered<unk> tal-magna tal-istat Peppol-trasmissjoni.
5. rejected
Redditu
Statut <unk>rifjutat<unk> tal-magna tal-istat Peppol-transferenza.
6. failed
l-għeluq
Statut <unk>failed<unk> tal-magna tal-istat Peppol-trasmissjoni.

🗄️ Modelli tad-dejta & Felder

InvoiceItems invoice_items RLS Aktiv
34 Il-kamps / il-kolla

Tabelle invoice_items

Feldname Tip ta' data Obbligu Schlüssel L-importanza professjonali
invoice_id UUID Ja * FK ➔ invoices.id Feld invoice_id
position INTEGER Ja * - Feld position
line_type VARCHAR(48) Ja * - Feld line_type
product_id UUID Nein FK ➔ products.id Feld product_id
project_id UUID Nein FK ➔ projects.id Feld project_id
work_order_id UUID Nein FK ➔ work_orders.id Feld work_order_id
accounting_category_id UUID Nein FK ➔ accounting_categories.id Feld accounting_category_id
cost_type_id UUID Nein FK ➔ cost_types.id Feld cost_type_id
cost_center VARCHAR(64) Nein - Feld cost_center
cost_object VARCHAR(64) Nein - Feld cost_object
description TEXT Ja * - Feld description
quantity NUMERIC(14, 4) Ja * - Feld quantity
unit VARCHAR(16) Ja * - Feld unit
unit_price NUMERIC(14, 2) Ja * - Feld unit_price
discount_percent NUMERIC(5, 2) Ja * - Feld discount_percent
tax_rate NUMERIC(6, 4) Ja * - Feld tax_rate
tax_regime VARCHAR(32) Ja * - Feld tax_regime
purchase_price NUMERIC(14, 2) Nein - Feld purchase_price
margin_amount NUMERIC(14, 2) Nein - Feld margin_amount
margin_tax_amount NUMERIC(14, 2) Nein - Feld margin_tax_amount
net_amount NUMERIC(14, 2) Ja * - Feld net_amount
tax_amount NUMERIC(14, 2) Ja * - Feld tax_amount
gross_amount NUMERIC(14, 2) Ja * - Feld gross_amount
source_work_log_id UUID Nein FK ➔ work_logs.id Feld source_work_log_id
source_expense_item_id UUID Nein FK ➔ expense_items.id Feld source_expense_item_id
tracking_entries JSONB Ja * - Feld tracking_entries
deducted_invoice_id UUID Nein FK ➔ invoices.id Feld deducted_invoice_id
purchase_item_id UUID Nein FK ➔ purchase_items.id Feld purchase_item_id
source_invoice_item_id UUID Nein FK ➔ invoice_items.id Feld source_invoice_item_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
Invoices invoices RLS Aktiv
65 Il-kamps / il-kolla

Tabelle invoices

Feldname Tip ta' data Obbligu Schlüssel L-importanza professjonali
invoice_type VARCHAR(48) Ja * - Feld invoice_type
invoice_subtype VARCHAR(48) Ja * - Feld invoice_subtype
invoice_number VARCHAR(64) Ja * - Feld invoice_number
customer_id UUID Nein FK ➔ customers.id Feld customer_id
bill_to_customer_id UUID Nein FK ➔ customers.id Feld bill_to_customer_id
supplier_id UUID Nein FK ➔ suppliers.id Feld supplier_id
project_id UUID Nein FK ➔ projects.id Feld project_id
work_order_id UUID Nein FK ➔ work_orders.id Feld work_order_id
accounting_category_id UUID Nein FK ➔ accounting_categories.id Feld accounting_category_id
cost_type_id UUID Nein FK ➔ cost_types.id Feld cost_type_id
cost_center VARCHAR(64) Nein - Feld cost_center
cost_object VARCHAR(64) Nein - Feld cost_object
original_invoice_id UUID Nein FK ➔ invoices.id Feld original_invoice_id
quote_id UUID Nein FK ➔ quotes.id Feld quote_id
purchase_id UUID Nein FK ➔ purchases.id Feld purchase_id
goods_receipt_id UUID Nein FK ➔ goods_receipts.id Feld goods_receipt_id
contract_id UUID Nein - Feld contract_id
document_id UUID Nein FK ➔ documents.id Feld document_id
issue_date DATE Nein - Feld issue_date
due_date DATE Nein - Feld due_date
sent_at DATETIME Nein - Feld sent_at
payment_terms VARCHAR(128) Nein - Feld payment_terms
payment_term_code VARCHAR(32) Nein - Feld payment_term_code
notes TEXT Nein - Feld notes
reference VARCHAR(128) Nein - Feld reference
delivery_date DATE Nein - Feld delivery_date
currency VARCHAR(3) Ja * - Feld currency
subtotal NUMERIC(14, 2) Ja * - Feld subtotal
discount_total NUMERIC(14, 2) Ja * - Feld discount_total
net_amount NUMERIC(14, 2) Ja * - Feld net_amount
tax_amount NUMERIC(14, 2) Ja * - Feld tax_amount
gross_amount NUMERIC(14, 2) Ja * - Feld gross_amount
paid_amount NUMERIC(14, 2) Ja * - Feld paid_amount
residual_amount NUMERIC(14, 2) Ja * - Feld residual_amount
skonto_days INTEGER Nein - Feld skonto_days
skonto_percent NUMERIC(5, 2) Nein - Feld skonto_percent
skonto_date DATE Nein - Feld skonto_date
skonto_amount NUMERIC(14, 2) Nein - Feld skonto_amount
tax_breakdown JSONB Nein - Feld tax_breakdown
tax_exemption_reason VARCHAR(255) Nein - Feld tax_exemption_reason
dunning_level INTEGER Ja * - Feld dunning_level
dunning_date DATE Nein - Feld dunning_date
dunning_fee NUMERIC(14, 2) Ja * - Feld dunning_fee
bank_name VARCHAR(255) Nein - Feld bank_name
iban VARCHAR(50) Nein - Feld iban
bic VARCHAR(20) Nein - Feld bic
billing_mode VARCHAR(48) Ja * - Feld billing_mode
cumulative_sequence INTEGER Nein - Feld cumulative_sequence
previous_invoices_net NUMERIC(14, 2) Ja * - Feld previous_invoices_net
total_performance_net NUMERIC(14, 2) Ja * - Feld total_performance_net
retention_rate NUMERIC(5, 2) Ja * - Feld retention_rate
retention_amount NUMERIC(14, 2) Ja * - Feld retention_amount
measurement_id UUID Nein FK ➔ project_measurements.id Feld measurement_id
status VARCHAR(48) Ja * - Feld status
external_accounting_id VARCHAR(128) Nein - Feld external_accounting_id
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
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

🔌 Punti ta' Bidu (UI & API)

Art Il-metodu Punti ta ' tmiem / pjaċċ Titel & Zweck L-eżenzjoni
⚡ REST API DELETE /api/v1/invoices/{invoice_id}
delete_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API DELETE /api/v1/invoices/{invoice_id}/items/{item_id:uuid}
delete_invoice_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API DELETE /api/v1/pricelists/{pricelist_id}/items/{item_id}
delete_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API GET /api/v1/invoices
list_invoices
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}
get_invoice
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/credit-remaining
get_credit_remaining
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/delivery-note.pdf
get_invoice_delivery_note
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/html
get_invoice_html
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/payments
list_invoice_payments
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/pdf
get_invoice_pdf
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/zugferd-xml
get_zugferd_xml
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/invoices/{invoice_id}/ubl
get_invoice_peppol_ubl
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/lookup
lookup_peppol_recipient
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/schemes
list_peppol_schemes
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/transmissions
list_peppol_transmissions
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/transmissions/{transmission_id}
get_peppol_transmission
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/pricelists
list_pricelists
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/pricelists/{pricelist_id}/items
list_items
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/pricelists/{pricelist_id}/resolve
resolve_price
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /invoices
invoices_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /invoices/new
invoice_create_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /invoices/{invoice_id}
invoice_detail_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /portal/{slug}/rechnungen
invoices_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /portal/{slug}/rechnungen/{invoice_id}/pdf
invoice_pdf_download
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /pricelists
pricelists_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /pricelists/new
pricelists_new_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /pricelists/{pricelist_id}/edit
pricelists_edit_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API PATCH /api/v1/invoices/{invoice_id}
update_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API PATCH /api/v1/invoices/{invoice_id}/items/reorder
reorder_invoice_items
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API PATCH /api/v1/invoices/{invoice_id}/items/{item_id:uuid}
update_invoice_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API PATCH /api/v1/pricelists/{pricelist_id}
update_pricelist
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices
create_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/collective-credit-note
create_collective_credit_note
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/final-from-partials
create_final_invoice_from_partials
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/from-work-order/{work_order_id}
create_invoice_from_work_order
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/convert-final
convert_to_final_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/convert-proforma
convert_to_proforma
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/credit-note
create_credit_note
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/dunning
escalate_invoice_dunning
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/escalate-ticket
escalate_invoice_to_ticket
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/issue
issue_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/items
add_invoice_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/partial-credit-note
create_partial_credit_note
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/payments
register_invoice_payment
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/send
send_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/stock-issue
create_invoice_stock_issue
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/peppol/invoices/{invoice_id}/transmit
transmit_invoice_via_peppol
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/pricelists
create_pricelist
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/pricelists/{pricelist_id}/items
add_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /portal/{slug}/rechnungen/{invoice_id}/gutschrift-anfordern
credit_note_request
Semantic binding: operator_surface; mutation=True
invoices
🖥️ WEB-UI GET /quotes
Il-prezz tal-bejgħ
Lista tal-offerti kollha b' filtru tal-istatus u badge tat-traċċa
quotes:read
⚡ REST API POST /api/v1/quotes/{id}/convert-to-workorder
L-eżekuzzjoni tal-ordni
Kaskadiert angenommenes Angebot in Projekt & WorkOrder
quotes:write

🛡️ Regolatorji u konformità

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • L-ammont ta' dħul minn kull grupp għandu jkun ta' EUR 10 miljun.
  • UStG §14 (Dejta obbligatorja fuq l-kontijiet)
  • ZUGFeRD 2.2 / XRechnung (PEPPOL)
Moduli marbuta:
➔ dropship ➔ customers ➔ workorders ➔ purchasing ➔ accounting