Bestellbeleg — Positionen (Sub-Route)
Zweck
Sub-Route /purchase-documents/:id/items ist die Pflege-Sicht der Positionen eines Bestellbelegs. Pendant zur Verkaufsbeleg-Positionen-Sub-Route. Cross-Beleg-Sicht: /purchase-document-items.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_PurchaseDocument, PurchaseDocument | Detail aufrufbar | — |
view/create/update/delete | PurchaseDocumentItem | Positionen pflegen | APP_SPEAMCORE_VIEW/CREATE/UPDATE/DELETE_PURCHASE_DOCUMENT_ITEM |
view | Product | Produkt-Auswahl | APP_SPEAMCORE_VIEW_PRODUCT |
Schritt-für-Schritt-Anleitung
- Bestellbeleg (
/purchase-documents/:id) → Tab Positionen. - + Position → Produkt wählen, Menge, Einkaufspreis, optional Rabatt.
- Drag-and-Drop für Sortierung.

Felder und Eingaben
| Feldname | Pflicht | Datentyp | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|
productId | nein | UUID | Verweis auf Produkt. | view:Product. |
position | nein | String | Positionsnummer. | — |
quantity | ja | Decimal | Menge. | — |
price | ja | Decimal | Einkaufspreis (netto). | — |
discount | nein | Decimal | Rabatt. | — |
discountType | nein | String | Rabatt-Typ (prozentual / absolut). | — |
productTitle, productDescription | nein | String/TEXT | Anzeige-Texte (Snapshot oder frei). | — |
accountId | nein | UUID | Buchhaltungskonto für Aufwandsbuchung. | — |
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Bestellbelege — Eltern-Modul.
- Purchase-Document-Items — Cross-Beleg-Sicht.
- Produkte — Snapshot-Quelle.
- Konten — Aufwandsbuchung.
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/purchase-document-items?filter[purchaseDocumentId] | Liste | view PurchaseDocumentItem |
POST | /api/purchase-document-items | Anlegen | create PurchaseDocumentItem |
PATCH | /api/purchase-document-items/:id | Ändern | update PurchaseDocumentItem |
DELETE | /api/purchase-document-items/:id | Soft-Delete | delete PurchaseDocumentItem |
Versionshinweise
- 2026-04-30: Initiale Veroeffentlichung.