Offene Posten — Verbindlichkeiten
Zweck
Die OP-Liste Verbindlichkeiten zeigt offene Eingangsrechnungen (PurchaseDocument, documentType = 'incomingInvoice') gruppiert nach Lieferant. Sie nutzt dieselbe FE-Komponente wie Forderungen — nur parentType/direction unterscheiden sich.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_OpenItem | Seite aufrufbar | — |
view | OpenItem | OP-Daten lesen | APP_SPEAMCORE_VIEW_OPEN_ITEM |
view | PurchaseDocument | Quell-Beleg sichtbar | APP_SPEAMCORE_VIEW_PURCHASE_DOCUMENT |
view | Transaction + TransactionAllocation | Zahlungsverlauf sichtbar | APP_SPEAMCORE_VIEW_TRANSACTION / …_VIEW_TRANSACTION_ALLOCATION |
create | Transaction | Zahlung oder Storno verbuchen | APP_SPEAMCORE_CREATE_TRANSACTION |
Schritt-für-Schritt-Anleitung
Verbindlichkeiten einsehen
- Verbindlichkeiten (
/supplier-open-items). - Obere Liste listet alle Lieferanten mit offenen Posten (sobald welche entstehen).
- Lieferant anklicken — rechts Beleg-Liste + Detail-Panel.
- KPI-Karten (
all/overdue/dueToday/paidLast30Days— „Bezahlt (30T)") wie bei Forderungen.
Zahlung an Lieferant erfassen
- OP anklicken → Zahlung erfassen →
OpenItemTransactionModal(mode = "payment"). - Transaktionsdatum, Referenz, Quelle (manuell oder Bank-Transaktion), Betrag je Position.
- Speichern. Es entsteht eine
Transaction+TransactionAllocation;paidAmountundoutstandingAmountwerden aktualisiert.

Workflow: von der Eingangsrechnung zum offenen Posten
Das Freigeben erfolgt typischerweise im Cockpit (Buchungs-Review-Queue); alternativ direkt am Beleg über die Sperren/Freigeben-Aktion.
Toolbar (Detail-Seite)
Schlanke Toolbar oben rechts:
| Icon | Aktion (aria-label) | CASL | Wirkung |
|---|---|---|---|
| ← | Zurückgehen | — | Zurück zur Liste. |
| 🏠 | Zur Startseite gehen | — | Springt auf das Dashboard / /. |
| ⏮/◀/▶/⏭ | Pagination | — | Navigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung. |
Globale Floating-Drawer (links)
Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:
- KAL. (Mini-Kalender)
- ZEIT (Persoenliche Wochen-Arbeitszeit)
- ARBEIT (Eigene bevorstehende Aufträge)
UI-Elemente
Identisch mit Forderungen:
- KPI-Cards
OpenItemTransactionModal
Felder und Eingaben
Read-only Felder identisch wie bei Forderungen — siehe Forderungen → Felder.
Unterschied: parentType = 'PurchaseDocument', direction = 'payable'.
Workflows und Zustaende
Identisch wie bei Forderungen. Beim Storno: bestehende TransactionAllocation wird durch eine Gegenbuchung ausgeglichen.
Wiederverwendbare Konzepte
- Forderungen (Customer Open Items) — gleiches Muster, andere Quelle.
- Polymorpher Parent-Pattern
- Berechtigungen verstehen (CASL)
Verknuepfungen zu anderen Modulen
- Bestellbelege — Quelle der OPs (
parentType = 'PurchaseDocument'). - Buchhaltung —
TransactionAllocationundAccountEntries. - Lieferanten — werden in der Counterparty-Spalte gruppiert.
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/open-items?direction=payable (legacy) | Liste der Verbindlichkeiten | view OpenItem |
GET | /api/open-items?parentType=PurchaseDocument | Aequivalent (neue API) | view OpenItem |
POST | /api/transactions (intern, aus Modal) | Zahlung/Storno — erzeugt Transaction + TransactionAllocation | create Transaction |
Versionshinweise
- 2026-06-03: Status zurück auf live — die Eingangsrechnungs-Buchung ist über Nacht produktiv gegangen. Beim Freigeben/Verbuchen einer Eingangsrechnung (
lockPurchaseDocument) entsteht jetzt einOpenItem(parentType = 'PurchaseDocument', payable) mit Fälligkeit — verifiziert anpurchaseDocument.controller.ts(Soll-Versteuerung, Aufwandskonto-Pflicht). Workflow-Diagramm + Hinweis ergänzt; ersetzt die „noch nicht verfügbar"-Notiz vom Vortag. - 2026-06-02: (kurzzeitig) Status
in-development, da Eingangsrechnungen noch keinen offenen Posten erzeugten. CASL an Forderungen angeglichen (view:Transaction+view:TransactionAllocation,create:Transaction); KPI vierte Karte „Bezahlt (30T)". - 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.