💶
Tilbud, regninger og debitorer (finansiering)
finance
sales_billing
🛡️ RLS Protected
End-to-end-forhandlingsflow: beregning, tilbudsoptagelse, projektomlægning, fakturering og indberetning.
Fachliche Bestimmung: Det er en central del af salg og fakturering. Tilbud optages, beregnes og sendes. Når de er godkendt, kaskaderer systemet automatisk til projekt og worksstattauftrag samt anskaffelse (stræk eller BTO).
⚡ Arbejdsflow & livscyklusser (8)
🗄️ Datamodeller & felt (2)
🔌 Startpunkter (UI'er og API'er) (52)
🛡️ Reglering og overholdelse
⚡ Arbejdsflow & livscyklusser
Citat til kontant arbejdstrømme kaskade
quote_to_cash_cascade
Fra tilbud til accept, automatisk omlægning, dellevering til slutregning.
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
Udkast til
Opgørelse af positioner, rabatter, betalingsmål og leveringsadresser.
Aktionen: Priser beregning
2. SENT
Afsendt
Generering af PDF'er og afsendelse til kunder via e-mail eller portal.
Aktionen: Overvågning af gyldighedsperioden
3. ACCEPTED
Antagelse
kunde accepterer tilbud (online eller i ERP).
Aktionen: udføre convert_to_project
4. CONVERTED
Fjernt
Automatisk generering af arbejdsordrer, bestilling af varer eller reservation af materialer.
Aktionen: Fjernt
5. INVOICED
Indregning
Udfærdigelse af de skatteformulerede udgående faktura (PDF/A-3, ZUGFeRD).
Aktionen: Generere regnskabsstabel for DATEV
Anvendelsesbevis: fakturationsagent
plan:command_billing_agent
Kontrolleret varig 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
Anvendelsesbevis: billing general agent
plan:command_billing_general_agent
Kontrolleret varig 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
Brugsanordning: dunning agent
plan:command_dunning_agent
Kontrolleret varig 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
faktura afsendt
plan:invoice_lifecycle
Kontrolleret varighedsplan (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
Overarbejde
status:extra_work
Det er ikke nødvendigt at foretage overførsler her.
1. detected
Detekteret
Status <unk>detected<unk> af maskinens tilstand
2. accepted
Anmeldelse
Status <unk>Accepted<unk> af den statistiske maskine
3. rejected
Afvist
Status af den statistiske maskine
4. quoted
Citat
Status <unk>quoted <unk> af standemaskinen
5. invoiced
Indregnet
Status af den statistiske maskine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
status:invoice
Det er ikke nødvendigt at foretage overførsler her.
1. draft
Udkast til
Status <unk>udkast <unk> af standemaskinen faktura.
2. proforma
-
Status <unk>proforma<unk> af den tilstandsmaskine faktura.
3. issued
udstedt
Status <unk> udstedt <unk> af den tilstandsmaskine GT11_0__.
4. sent
-
Status <unk>sent<unk> af den tilstandsmaskine faktura.
5. partially_paid
partially_paid
Status <unk>partielt_betalt<unk> af den tilstandsmaskine faktura.
6. paid
afgiftspligtige
Status <unk>paged<unk> af den tilstandsmaskine faktura.
7. overdue
- overstiger
Status <unk> overdreven <unk> af den tilstandsmaskine GT11_0__.
8. cancelled
aflyst
Status af den tilstandsmaskine <unk>aflyst <unk>GT11_0__.
Overførsel af peppol
status:peppol_transmission
Det er ikke nødvendigt at foretage overførsler her.
1. draft
Udkast til
Status <unk>udkast <unk> af standmaskinen Peppol overførsel.
2. queued
afholdelse
Status <unk>queued <unk> af standmaskinen Peppol overførsel.
3. transmitting
overførsel
Status <unk> overførsel <unk> af den statistiske maskine Peppol overførsel.
4. delivered
afleveret
Status af <unk>leveret <unk> til standmaskinen Peppol overførsel.
5. rejected
Afvist
Status af den pågældende statmaskin
6. failed
Uden
Status <unk> mislykkedes <unk> af den statistiske maskine Peppol overførsel.
🗄️ Datamodeller & felt
🔌 Startpunkter (UI'er og API'er)
| Art | Metode | Endpunkt / vej | Titel & Zweck | Tilladelse |
|---|---|---|---|---|
| ⚡ REST API | DELETE | /api/v1/invoices/{invoice_id} |
delete_invoice
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | DELETE | /api/v1/invoices/{invoice_id}/items/{item_id:uuid} |
delete_invoice_item
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | DELETE | /api/v1/pricelists/{pricelist_id}/items/{item_id} |
delete_item
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices |
list_invoices
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices/{invoice_id} |
get_invoice
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices/{invoice_id}/credit-remaining |
get_credit_remaining
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices/{invoice_id}/delivery-note.pdf |
get_invoice_delivery_note
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices/{invoice_id}/html |
get_invoice_html
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices/{invoice_id}/payments |
list_invoice_payments
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices/{invoice_id}/pdf |
get_invoice_pdf
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/invoices/{invoice_id}/zugferd-xml |
get_zugferd_xml
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/peppol/invoices/{invoice_id}/ubl |
get_invoice_peppol_ubl
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/peppol/lookup |
lookup_peppol_recipient
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/peppol/schemes |
list_peppol_schemes
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/peppol/transmissions |
list_peppol_transmissions
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/peppol/transmissions/{transmission_id} |
get_peppol_transmission
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/pricelists |
list_pricelists
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/pricelists/{pricelist_id}/items |
list_items
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /api/v1/pricelists/{pricelist_id}/resolve |
resolve_price
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /invoices |
invoices_page
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /invoices/new |
invoice_create_page
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /invoices/{invoice_id} |
invoice_detail_page
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /portal/{slug}/rechnungen |
invoices_page
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /portal/{slug}/rechnungen/{invoice_id}/pdf |
invoice_pdf_download
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /pricelists |
pricelists_page
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /pricelists/new |
pricelists_new_page
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | GET | /pricelists/{pricelist_id}/edit |
pricelists_edit_page
Semantic binding: not_evaluated; mutation=False
|
invoices
|
| ⚡ REST API | PATCH | /api/v1/invoices/{invoice_id} |
update_invoice
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | PATCH | /api/v1/invoices/{invoice_id}/items/reorder |
reorder_invoice_items
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | PATCH | /api/v1/invoices/{invoice_id}/items/{item_id:uuid} |
update_invoice_item
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | PATCH | /api/v1/pricelists/{pricelist_id} |
update_pricelist
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices |
create_invoice
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/collective-credit-note |
create_collective_credit_note
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/final-from-partials |
create_final_invoice_from_partials
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/from-work-order/{work_order_id} |
create_invoice_from_work_order
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/convert-final |
convert_to_final_invoice
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/convert-proforma |
convert_to_proforma
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/credit-note |
create_credit_note
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/dunning |
escalate_invoice_dunning
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/escalate-ticket |
escalate_invoice_to_ticket
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/issue |
issue_invoice
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/items |
add_invoice_item
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/partial-credit-note |
create_partial_credit_note
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/payments |
register_invoice_payment
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/send |
send_invoice
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/invoices/{invoice_id}/stock-issue |
create_invoice_stock_issue
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/peppol/invoices/{invoice_id}/transmit |
transmit_invoice_via_peppol
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/pricelists |
create_pricelist
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /api/v1/pricelists/{pricelist_id}/items |
add_item
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| ⚡ REST API | POST | /portal/{slug}/rechnungen/{invoice_id}/gutschrift-anfordern |
credit_note_request
Semantic binding: not_evaluated; mutation=True
|
invoices
|
| 🖥️ WEB-UI | GET | /quotes |
Udbudssyn
Liste over alle tilbud med statusfilter og stræk- badge
|
quotes:read
|
| ⚡ REST API | POST | /api/v1/quotes/{id}/convert-to-workorder |
Udførelse af opdrag
Kaskadieret antaget tilbud i projekt & WorkOrder
|
quotes:write
|
🛡️ Reglering og overholdelse
Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:
- Forbrugervirksomhed
- UStG §14 (obligatoriske oplysninger om fakturaer)
- ZUGFeRD 2.2 / XRechnung (PEPPOL)
Knytte moduler: