Stundenkonto: Abos ohne bekannten Preis bekommen als Altbestand weiter ihre Stunde

Wie im Abo-Spiegel gelten Rechnungen ohne jeden bekannten Abo-Preis als
Wartung. Ein unbekannter Preis neben einem bekannten (z. B. Hosting) bringt
weiterhin keine Stunde.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-27 15:45:09 +00:00
1 parent 51fc2434e5
commit dc61649228
3 files changed
+38 -7

No files matched your search

+8 -3
View File
@@ -61,12 +61,17 @@ export function priceIdsOfInvoice(invoice) {
/**
* Arbeitszeit, die eine bezahlte Rechnung gutschreibt: die Minuten des Produkts der ersten
* regulären (nicht anteiligen) Abo-Zeile über 0 €, deren Produkt Arbeitszeit enthält. Anteilige
* Verrechnungen, Probezeiten (0 €), Hosting, Zusatzspeicher und unbekannte Preise zählen nicht.
* Verrechnungen, Probezeiten (0 €), Hosting und Zusatzspeicher zählen nicht.
* Unbekannte Preise zählen nur, wenn die Rechnung gar keinen bekannten Abo-Preis enthält: Solche
* Abos gelten wie im Abo-Spiegel als Wartungs-Abo (Altbestand bzw. von Hand angelegt).
* priceKeys: Map Preis-ID -> 'wartung' | 'hosting' | 'mailStorage' | null
*/
export function creditMinutesForInvoice(invoice, priceKeys) {
for (const line of invoice?.lines?.data || []) {
const key = priceKeys.get(priceIdOfLine(line))
const lines = invoice?.lines?.data || []
const legacy = !lines.some((line) => PRODUCT_KEYS.includes(priceKeys.get(priceIdOfLine(line))))
for (const line of lines) {
const known = priceKeys.get(priceIdOfLine(line))
const key = legacy && known == null ? 'wartung' : known
if (!PRODUCT_KEYS.includes(key)) continue
const minutes = config.products[key].minutesPerMonth
const regular =