- Thema
- VB.NET
- SDK-Mitglieder
- addItemSpecifiedTradeAllowanceCharge()
- Business Terms
- BG-28 Zuschläge auf Ebene der Rechnungsposition BT-140 Code für den Grund für den Abschlag auf Ebene der BT-141 Betrag des Zuschlags auf Ebene der Rechnungsposition BT-142 Grundbetrag des Zuschlags auf Ebene der BT-143 Prozentualer Zuschlag auf Ebene der Rechnungsposition BT-144 Grund für den Zuschlag auf Ebene der Rechnungsposition BT-145 Code für den Grund für den Zuschlag auf Ebene der BG-25 Rechnungsposition
- Codebeispiele
- VB.NET
- Veröffentlicht
Abschläge und Zuschläge können statt auf die ganze Rechnung auch auf eine einzelne Rechnungsposition wirken: zum Beispiel ein Mengenrabatt auf einen Artikel oder ein Expresszuschlag auf eine Lieferung. Dafür gibt es die Gruppen BG-27 (Abschläge) und BG-28 (Zuschläge) innerhalb der Position. Die Aloaha ZUGFeRD SDK setzt sie mit addItemSpecifiedTradeAllowanceCharge – beliebig viele je Position.
Parameter und Felder
| Parameter | Abschlag (BG-27) | Zuschlag (BG-28) |
|---|---|---|
ItemIndex | Index der Position, beginnend bei 0 (erste mit AddProduct_Comfort angelegte Position = 0) | |
isCharge | False | True |
ActualAmount | BT-136 | BT-141 |
BasisAmount | BT-137 | BT-142 |
CalculationPercent | BT-138 | BT-143 |
Reason | BT-139 | BT-144 |
ReasonCode | BT-140 (UNTDID 5189) | BT-145 (UNTDID 7161) |
Beträge und Prozentsätze werden von der SDK auf zwei Nachkommastellen normalisiert. Die Funktion gibt die laufende Nummer des neuen Zu- oder Abschlags innerhalb der Position zurück.
Beispiel: Expresszuschlag auf Position 1
VB.NET
' Position anlegen (siehe AddProduct_Comfort), dann Zuschlag auf diese Position (Index 0)
alo.addItemSpecifiedTradeAllowanceCharge(0, True, "10.00", "200.00", "20.00", "", "Expresszuschlag")
VBA / VB6 (COM)
alo.addItemSpecifiedTradeAllowanceCharge 0, True, "10.00", "200.00", "20.00", "", "Expresszuschlag"
Ein Abschlag funktioniert genauso mit isCharge = False, zum Beispiel mit dem Code 95 (Rabatt).
Wichtig für die Summen
Der Nettobetrag der Position (BT-131) enthält bereits alle Zu- und Abschläge der Position: Menge × Nettopreis + Zuschläge − Abschläge. Positionsrabatte erscheinen deshalb nicht noch einmal in den Rabattsummen auf Dokumentebene.
Auslesen
getItemSpecifiedTradeAllowanceChargeCount nennt die Anzahl je Position, getItemSpecifiedTradeAllowanceCharge(ItemIndex, ChargeIndex, isCharge, CalculationPercent, BasisAmount, ActualAmount, ReasonCode, Reason) liefert die Werte über Referenzparameter. Ein vollständiges Lesebeispiel für VB.NET und VBA sowie den Unterschied zum Preisnachlass BT-147 (Trade_ItemAllowance) zeigt Zu- und Abschläge je Position auslesen.
Häufige Fragen
Ab welchem Profil sind Positionszuschläge erlaubt?
Ab dem Profil BASIC. Grundbetrag und Prozentsatz (BT-142, BT-143) erst ab EN 16931 (COMFORT).
Wie zählt der Positionsindex?
Er beginnt bei 0. Die erste mit AddProduct_Comfort angelegte Position hat den Index 0, die zweite den Index 1.
Was ist der Unterschied zum Rabatt im Bruttopreis?
Ein Rabatt im Preis (Bruttopreis minus Rabatt ergibt Nettopreis) betrifft den Stückpreis. BG-27/BG-28 wirken auf den Positionsbetrag als Ganzes.
Business Terms in diesem Artikel: BG-28 BT-140 BT-141 BT-142 BT-143 BT-144 BT-145 BG-25 BG-27 BT-131 BT-136 BT-137 BT-138 BT-139