Bestellbeleg-Positionen (PurchaseDocumentItems)
Zweck
/purchase-document-items ist die Cross-Beleg-Sicht auf Positionen (PurchaseDocumentItem) aus allen Bestellbelegen. Pendant zur Verkaufsbeleg-Positionen-Sicht — für Einkaufs-Reports, Lieferanten-Analyse und Mengen-Konsolidierung.
Read-only Cross-Liste; Pflege über /purchase-documents/:id/items.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_PurchaseDocumentItem, PurchaseDocumentItem | Cross-Liste aufrufbar | — |
view | PurchaseDocument | Drill-Down zum Beleg | APP_SPEAMCORE_VIEW_PURCHASE_DOCUMENT |
Schritt-für-Schritt-Anleitung
- Bestellbeleg-Positionen (
/purchase-document-items) öffnen. - DataGrid mit Spalten Beleg-Nummer, Lieferant, Datum, Produkt, Menge, Einzelpreis, Rabatt, Gesamtpreis.
- Klick auf Position → Drill-Down zum Beleg
/purchase-documents/:purchaseDocumentId.

Felder und Eingaben (lesend)
| Feldname | Datentyp | Bedeutung |
|---|---|---|
purchaseDocumentId | UUID | Verweis auf den Bestellbeleg. |
position | String | Positionsnummer. |
type | String | Positions-Typ: Product, Text oder Discount (Rabatt-Position, neu Mai 2026). |
productId | UUID | Verweis auf Produkt (optional). |
productNo | String | Produkt-Nummer-Snapshot. |
productTitle / productDescription | String / TEXT | Anzeige-Texte. |
quantity | Decimal | Menge. |
price | Decimal | Einkaufspreis (netto). |
discount | Decimal | Rabatt-Wert (Positions-Rabatt). |
discountType | String | percentage (Prozent, Default) oder fixed (fester Betrag). |
productUnit / productUnitId | String / UUID | Einheit. |
productGroupId | UUID | Produkt-Gruppe. |
accountId | UUID | Buchhaltungskonto. |
textMode / images | Integer / Boolean | Anzeige-Konfiguration. |
Rabatt-Positionen (neu, Mai 2026)
Wie im Verkauf gibt es auch im Einkauf seit Mai 2026 den Positions-Typ Discount — eine Beleg-Rabatt-Zeile, die das Gesamt-Netto reduziert (mit Neuberechnung der USt pro Steuersatz). Daneben existiert weiterhin der Positions-Rabatt über die Felder discount + discountType direkt an einer Produkt-Position.
Anlage und Berechnung sind identisch zum Verkauf — Details, EN-16931-Hinweis und Stolpersteine siehe Verkaufsbeleg-Positionen → Rabatt-Positionen.
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)
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Bestellbelege — Eltern-Entitaet.
- Produkte —
productId-Verweis. - Lieferanten — über den Beleg.
- Konten —
accountId-Verweis.
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/purchase-document-items | Cross-Liste | view PurchaseDocumentItem |
GET | /api/purchase-document-items/:id | Detail | view PurchaseDocumentItem |
Versionshinweise
- 2026-05-29: Rabatt-Position (
Discount-Typ) ergänzt; Verweis auf Verkaufs-Doku für Details/EN-16931. - 2026-04-30: Initiale Veroeffentlichung.