Buchungskalender: Abschluss – Kleinigkeiten Server (Betrag/Waehrung, Erstattungs-Webhook, Obergrenze, Zaehler, Cache, Kommentare, Setup-Check)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Opus 5.5 committed 2026-10-07 15:29:55 +00:00
1 parent 6d35674c1e
commit 1d9515823c
13 files changed
+123 -14

No files matched your search

+6 -1
View File
@@ -62,6 +62,9 @@ export function summiere(posten, steuerart) {
return { bruttoCent, nettoCent, ust }
}
/** Obergrenze der Bruttosumme einer Anfrage (999.999,99 EUR): darunter bleiben Stripe-Betrag und Rechnung sicher darstellbar. */
export const BRUTTO_MAX_CENT = 99_999_999
export function pruefePosten(posten, steuerart) {
const fehler = (m) => ({ fehler: { posten: m } })
const maxPosten = config.unterkunft?.maxPosten ?? 30
@@ -79,7 +82,9 @@ export function pruefePosten(posten, steuerart) {
if (steuerart === 'kleinunternehmer' && p.ustProzent !== 0) return fehler('Bei Kleinunternehmern ist keine Umsatzsteuer erlaubt.')
sauber.push({ text, menge: p.menge, einzelCent: p.einzelCent, ustProzent: p.ustProzent })
}
if (sauber.reduce((a, p) => a + p.menge * p.einzelCent, 0) <= 0) return fehler('Die Summe muss größer als 0 sein.')
const summe = sauber.reduce((a, p) => a + p.menge * p.einzelCent, 0)
if (summe <= 0) return fehler('Die Summe muss größer als 0 sein.')
if (summe > BRUTTO_MAX_CENT) return fehler('Die Summe ist zu hoch.')
return { posten: sauber }
}