💶
Предложения, счета и должники (финансы)
finance
sales_billing
🛡️ RLS Protected
Спуск от конца к концу: расчет, принятие предложений, преобразование проектов, расчетные отчеты и напоминания.
Fachliche Bestimmung: Центральный центр распространения и счета. Предложения считываются, рассчитываются и отправляются. При принятии система автоматически каскадирует в проект и заводской наказ и закупку (Strecke или BTO).
⚡ Рабочие процессы и жизненные циклы (8)
🗄️ Модели данных & поля (2)
🔌 Входные пункты (UI & API) (52)
🛡️ Регуляторство и соответствие
⚡ Рабочие процессы и жизненные циклы
Кот-то-каш-каскад
quote_to_cash_cascade
От коммерческое предложение до принятия, автоматического конвертации заказов, частичной доставки до окончательного расчета.
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
Проект
Сообщение позиций, скидок, целей платежей и адресов доставки.
Aktionen: Расчет цен
2. SENT
Отправлено
PDF-генерация и отправка клиентам по электронной почте или порталу.
Aktionen: Контроль срока действия
3. ACCEPTED
Принято
клиент принимает коммерческое предложение (онлайн или в ERP).
Aktionen: выполнять convert_to_project
4. CONVERTED
Каскадированные
Автоматическое создание рабочих заказов, заказа маршрутов или резервации материалов.
Aktionen: Отключение
5. INVOICED
Внесенные в расчет
Составление налоговых документов исходящий счёт (PDF/A-3, ZUGFeRD).
Aktionen: Создание учетных записей для DATEV
Приказ пользователя: агент по счету
plan:command_billing_agent
Проверенный план длительности (durable_plan), старт: 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
Указа пользователя: генеральный агент
plan:command_billing_general_agent
Проверенный план длительности (durable_plan), старт: 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
Приказ пользователя: дюнинг агент
plan:command_dunning_agent
Проверенный план длительности (durable_plan), старт: 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
счёт отправлен
plan:invoice_lifecycle
Проверенный длительный план (durable_plan), старт: 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
Дополнительная работа
status:extra_work
Осуществляемая машина (особенно наблюдаемое)
1. detected
обнаруженные
Статус <unk>открытый <unk> станции машины
2. accepted
Принято
Статус <unk>принято <unk> станковой машины
3. rejected
Отклоненные
Статус <unk>отклонен <unk> станковой машины
4. quoted
Цитируемые
Статус <unk>quoted <unk> станковой машины
5. invoiced
вклады
Статус <unk>фактурирован <unk> станковой машины
ПОЛОЖЕНИЕ:
status:invoice
Осуществляемая машина (особенно наблюдаемое)
1. draft
Проект
Статус <unk>проект <unk> станковой машины GT11_0__.
2. proforma
Проформа
Статус <unk>проформа<unk> станковой машины счёт.
3. issued
Выпущенные
Статус <unk>выпущен <unk> станции GT11_0__.
4. sent
Прислано
Статус <unk>sent<unk> станции GT11_0__.
5. partially_paid
partially_paid
Статус <unk>частично_плаченный <unk> станции счёт.
6. paid
Плата
Статус <unk>плачен<unk> станции счёт.
7. overdue
Задержка
Статус <unk>надлежащий <unk> станции GT11_0__.
8. cancelled
отменены
Статус <unk>отменен <unk> станции счёт.
Передача пепполя
status:peppol_transmission
Осуществляемая машина (особенно наблюдаемое)
1. draft
Проект
Статус <unk>проект <unk> станковой машины Peppol-передача.
2. queued
в очереди
Status «queued» der Zustandsmaschine Peppol-Übertragung.
3. transmitting
передающий
Статус <unk>передачи <unk> станции Пеппольская передача.
4. delivered
доставленные
Статус <unk>delivered <unk> станции Пепполь перевод
5. rejected
Отклоненные
Статус <unk>отклонен <unk> станции передача Peppol.
6. failed
неудача
Статус <unk>неудавшегося <unk> станции передача Peppol.
🗄️ Модели данных & поля
🔌 Входные пункты (UI & API)
| Art | Метод | Конечный пункт / путь | Titel & Zweck | Право на |
|---|---|---|---|---|
| ⚡ 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 |
Проверка предложений
Список всех предложений с фильтром статуса и значкой маршрута
|
quotes:read
|
| ⚡ REST API | POST | /api/v1/quotes/{id}/convert-to-workorder |
Передача заказов
Каскадированное принятое коммерческое предложение в проект & WorkOrder
|
quotes:write
|
🛡️ Регуляторство и соответствие
Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:
- GoBD (перечисленность, неизменность)
- UStG §14 (обязательные данные на счета)
- ZUGFeRD 2.2 / XRechnung (PEPPOL)
Связанные модули: