
28. Februar 2026
Bruttopreise in eigenen Cakedesk Templates
Ab Cakedesk Version 1.29.0 kannst du Bruttopreise in deinen Rechnungen, Angeboten und Katalogartikeln verwenden.
Wenn der Bruttopreise aktiviert sind, werden Artikelpreise inklusive Steuer eingegeben. Das verändert, wie Summen und Steuern auf Rechnungen und Angeboten dargestellt werden.
Wenn du vor dieser Version ein benutzerdefiniertes Rechnungs- oder Angebotstemplate erstellt hast, musst du dein Template möglicherweise aktualisieren, um Dokumente mit Bruttopreisen korrekt darzustellen.
So aktualisierst du deine Templates, um Bruttopreise zu unterstützen:
#getSummaryItems()-Reihenfolge
Die wichtigste Änderung ist, dass getSummaryItems() die Einträge je nach Preismodus in einer anderen Reihenfolge zurückgibt:
Netto-Modus (Standard, unverändert):
- Zwischensumme (falls Rabatte)
- Rabatte (falls vorhanden)
- Zwischensumme nach Rabatten (falls Rabatte)
- Steuer-Zwischensummen
- Gesamtsumme
Brutto-Modus (neu):
- Zwischensumme (falls Rabatte, inklusive Steuer)
- Rabatte (falls vorhanden, inklusive Steuer)
- Gesamtsumme (inklusive Steuer)
- Steuer-Zwischensummen (die oben enthaltenen Steuerbeträge)

Beachte, dass im Brutto-Modus der letzte Eintrag nicht die Gesamtsumme ist. Die Gesamtsumme steht vor den Steuer-Zwischensummen, da die Steuern bereits in den Artikelpreisen enthalten sind.
#Template-Styling überprüfen
Wenn dein Template besonderes Styling (z.B. fette Schrift oder einen Rahmen) auf die letzte Zeile der Summentabelle anwendet und davon ausgeht, dass das die Gesamtsumme ist, solltest du die Logik auf die kind-Eigenschaft umstellen:
<table class="summary-table">
<tbody>
<% for (const summaryItem of getSummaryItems()) { %>
<tr class="<%= summaryItem.kind === 'total' ? 'total-row' : '' %>">
<th><%= summaryItem.title %></th>
<td><%= summaryItem.value %></td>
</tr>
<% } %>
</tbody>
</table>
#Neue Variable: 'document.pricingMode'
Das Dokument bietet jetzt eine document.pricingMode-Variable, die 'NET' oder 'GROSS' sein kann. Du kannst sie verwenden, um dein Template bedingt anzupassen:
<% if (document.pricingMode === 'GROSS') { %>
<!-- Brutto-spezifisches Layout -->
<% } %>
#Neue Variable: 'document.netTotal'
Eine neue document.netTotal-Variable ist in Templates verfügbar. Sie enthält den Nettobetrag nach Rabatten, ohne Steuer.
Im Nettomodus ist sie identisch mit document.subtotalAfterDiscounts. Im Bruttomodus entspricht sie document.total - document.totalTaxes.
#Aktualisiert: TaxSubtotal-Felder
Die Felder baseAmount, baseAmountAfterDiscounts und discountAmount des TaxSubtotal-Typs haben je nach Preismodus unterschiedliche Bedeutungen:
- Nettomodus: die Werte sind netto (ohne Steuer) (unverändertes Verhalten)
- Bruttomodus: die Werte sind brutto (inklusive Steuer)
Siehe die TaxSubtotal-Dokumentation für Details.
#Aktualisiert: 't()' unterstützt Variablen
Der t()-Helper akzeptiert jetzt ein optionales zweites Argument für Variablenersetzung:
t('grossTaxSubtotalLabel', { taxPercentage: 19, taxLabel: 'USt.', netAmount: '100,00 €' })
// "Enthält 19% USt. (Netto: 100,00 €)"
Siehe die t()-Dokumentation für Details.
#Neuer Template-String: 'grossTaxSubtotalLabel'
Ein neuer eingebauter Übersetzungsstring grossTaxSubtotalLabel ist verfügbar. Er wird von getSummaryItems() im Bruttomodus verwendet, um die Steuer-Zwischensummen zu beschriften. Der String unterstützt Variablenersetzung:
"Enthält {taxPercentage}% {taxLabel} (Netto: {netAmount})"
Du kannst diesen String in deiner template.json überschreiben, falls du eine eigene Beschriftung möchtest.