AB-Kern: Stornieren versendeter und bestätigter Aufträge

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-07 14:15:21 +00:00
1 parent cf87a7e1e0
commit c791146af4
2 files changed
+51

No files matched your search

+15
View File
@@ -529,3 +529,18 @@ export async function neueFassung(id, { von } = {}) {
return createAuftrag({ kundenId: alt.kundenId, ...speicherFelder(alt), ersetztId: alt.id, erstelltVon: String(von || '') })
})
}
// ---------------------------------------------------------------------------------------------------------------------
// Stornieren
// ---------------------------------------------------------------------------------------------------------------------
/** Storniert eine versendete oder bestätigte AB (ohne Mail); tokenHash, Nummer und PDF bleiben, der Link erklärt „storniert“. */
export async function storniereAuftrag(id) {
return withLocks(sperreAuftrag(id), async () => {
const auftrag = await ladeAuftrag(id) // der Stand wird in der Sperre gelesen
if (auftrag.status !== 'versendet' && auftrag.status !== 'bestaetigt') {
throw new AuftragError(409, 'Nur versendete oder bestätigte Auftragsbestätigungen lassen sich stornieren.')
}
return updateAuftrag(id, { status: 'storniert', storniertAm: new Date().toISOString() })
})
}