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:
1 parent
51fc2434e5
commit
dc61649228
3 files changed
+38
-7
No files matched your search
@@ -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 =
|
||||
|
||||
Reference in new issue
Block a user