Zum Hauptinhalt springen

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.

Eine Eingangsrechnung wird zum offenen Posten, sobald sie **freigegeben (verbucht)** wird — im [Cockpit](/transaction-cockpit) (Buchungs-Review-Queue) oder per `lockPurchaseDocument`. Beim Freigeben bucht SpeamCore mit **Soll-Versteuerung** (Soll Aufwand + Soll Vorsteuer an Haben Kreditor) und legt einen `OpenItem` (`parentType = 'PurchaseDocument'`, `direction = 'payable'`) mit Fälligkeit aus dem Zahlungsziel an. Voraussetzung: am Beleg ist ein **Aufwandskonto** (`expenseAccountId`) gesetzt — sonst verweigert das Backend die Verbuchung. Reine **Bestellungen** (`order`) erzeugen weiterhin keinen offenen Posten; nur Eingangsrechnungen.

Voraussetzungen

- Es existieren **freigegebene (verbuchte) Eingangsrechnungen** (siehe Hinweis oben). - Anwender hat `view:OpenItem` und `view:PurchaseDocument`. - Für den **Zahlungsverlauf** zusaetzlich `view:Transaction` **und** `view:TransactionAllocation`. - Für **Zahlung erfassen / stornieren** zusaetzlich `create:Transaction`.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_OpenItemSeite aufrufbar
viewOpenItemOP-Daten lesenAPP_SPEAMCORE_VIEW_OPEN_ITEM
viewPurchaseDocumentQuell-Beleg sichtbarAPP_SPEAMCORE_VIEW_PURCHASE_DOCUMENT
viewTransaction + TransactionAllocationZahlungsverlauf sichtbarAPP_SPEAMCORE_VIEW_TRANSACTION / …_VIEW_TRANSACTION_ALLOCATION
createTransactionZahlung oder Storno verbuchenAPP_SPEAMCORE_CREATE_TRANSACTION

Schritt-für-Schritt-Anleitung

Verbindlichkeiten einsehen

  1. Verbindlichkeiten (/supplier-open-items).
  2. Obere Liste listet alle Lieferanten mit offenen Posten (sobald welche entstehen).
  3. Lieferant anklicken — rechts Beleg-Liste + Detail-Panel.
  4. KPI-Karten (all / overdue / dueToday / paidLast30Days — „Bezahlt (30T)") wie bei Forderungen.

Zahlung an Lieferant erfassen

  1. OP anklicken → Zahlung erfassenOpenItemTransactionModal (mode = "payment").
  2. Transaktionsdatum, Referenz, Quelle (manuell oder Bank-Transaktion), Betrag je Position.
  3. Speichern. Es entsteht eine Transaction + TransactionAllocation; paidAmount und outstandingAmount werden aktualisiert.

Verbindlichkeiten-Liste — gleiche Oberfläche wie die Forderungen, gruppiert nach Lieferant. Offene Posten entstehen aus freigegebenen Eingangsrechnungen.

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:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

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

Verknuepfungen zu anderen Modulen

  • Bestellbelege — Quelle der OPs (parentType = 'PurchaseDocument').
  • BuchhaltungTransactionAllocation und AccountEntries.
  • Lieferanten — werden in der Counterparty-Spalte gruppiert.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/open-items?direction=payable (legacy)Liste der Verbindlichkeitenview OpenItem
GET/api/open-items?parentType=PurchaseDocumentAequivalent (neue API)view OpenItem
POST/api/transactions (intern, aus Modal)Zahlung/Storno — erzeugt Transaction + TransactionAllocationcreate 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 ein OpenItem (parentType = 'PurchaseDocument', payable) mit Fälligkeit — verifiziert an purchaseDocument.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.