Kontrolle: Rechnungsdialog zeigt bei Stripe-Ausfall keine Beträge und keine Vorgabe
Bei stripeOk false steht 'Stripe nicht erreichbar – Beträge unbekannt' statt 'bereits berechnet 0,00 €', und es wird keine Rechnungsart vorgeschlagen. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
07d36f64e9
commit
79f230ea2c
3 files changed
+42
-9
No files matched your search
@@ -18,6 +18,7 @@ export const ART_OPTION_LABEL = {
|
||||
export const AB_HINWEIS = 'Anzahlung und Schlussrechnung brauchen eine Auftragsbestätigung.'
|
||||
export const ENTWURF_HINWEIS = 'Zu dieser Auftragsbestätigung gibt es noch einen Entwurf. Erst senden oder löschen.'
|
||||
export const OHNE_PROJEKT = 'Ohne Projekt'
|
||||
export const STRIPE_UNBEKANNT = 'Stripe nicht erreichbar – Beträge unbekannt'
|
||||
export const STEUERNUMMER_RECHNUNG_HINWEIS =
|
||||
'Die Steuernummer fehlt noch – sie gehört auf jede Rechnung (§ 34a UStDV). Eintragen unter Finanzen → Einstellungen.'
|
||||
|
||||
@@ -109,6 +110,14 @@ export function hatEntwurfZurAuftrag(rechnungen, auftragId) {
|
||||
return Array.isArray(rechnungen) && rechnungen.some((r) => r && r.auftragId === auftragId && r.status === 'entwurf')
|
||||
}
|
||||
|
||||
/** Zeile unter der AB-Wahl. Ist Stripe nicht erreichbar, sind die berechneten Beträge unbekannt (nicht 0,00 €). */
|
||||
export function abSummenText({ ab, rechnungen, stripeOk }) {
|
||||
const summe = `Auftragssumme ${euro(ab?.summeCents)}`
|
||||
if (stripeOk === false) return `${summe} · ${STRIPE_UNBEKANNT}`
|
||||
const berechnet = berechnetFuerAuftrag(rechnungen, ab?.id)
|
||||
return `${summe} · bereits berechnet ${euro(berechnet)} · noch nicht berechnet ${euro(Math.max(0, (Number(ab?.summeCents) || 0) - berechnet))}`
|
||||
}
|
||||
|
||||
// --- Rechnungsarten -----------------------------------------------------------------------------------------
|
||||
|
||||
/** Wählbare Arten mit Sperrgrund: [{ key, label, enabled, hint }]. */
|
||||
@@ -127,11 +136,13 @@ export function artOptionen({ projektId, auftraege, rechnungen, auftraegeAktiv }
|
||||
]
|
||||
}
|
||||
|
||||
/** Vorbelegte Art: Anzahlung, Schlussrechnung, Aufwand oder Festbetrag je nach Lage ('' ohne Wahl). */
|
||||
export function standardArt(optionen, { auftraege, rechnungen, offeneMinuten }) {
|
||||
/** Vorbelegte Art: Anzahlung, Schlussrechnung, Aufwand oder Festbetrag je nach Lage ('' ohne Wahl, auch bei Stripe-Ausfall). */
|
||||
export function standardArt(optionen, { auftraege, rechnungen, offeneMinuten, stripeOk = true }) {
|
||||
const liste = Array.isArray(optionen) ? optionen : []
|
||||
if (liste.length === 0) return ''
|
||||
if (liste.length === 1 && liste[0].key === 'frei') return 'frei'
|
||||
// Ist Stripe nicht erreichbar, sind die berechneten Beträge unbekannt: keine Art vorschlagen
|
||||
if (stripeOk === false) return ''
|
||||
const waehlbar = (key) => liste.some((o) => o.key === key && o.enabled)
|
||||
const jung = gueltigeFestpreisAbs(auftraege)[0]
|
||||
if (
|
||||
|
||||
Reference in new issue
Block a user