Files
ClaudeandClaude Sonnet 5.5 72b5ac5265 Kundenansicht neu E-Fix F5: Fassung 6 ohne PDF behauptet keinen Anhang, das Team bekommt den Hinweis
Die PDFs der Fassung 6 entstehen erst nach der Freigabe. Bis dahin gingen K01, K12 und K13 ohne Anhang raus, sagten aber "im Anhang" bzw.
"beigefügt", und das Team erfuhr es nicht (nur K38/T24 hatten dafür den Block anhang_fehlt).

- Neuer Helfer vertragsAnhang.js: lädt das PDF der zugestimmten Fassung und meldet fehlt nur bei Fassung 6 ohne lesbare Datei.
- K01, K12, K13: Block anhang (Anhangsaussagen) und ohne_anhang (Satz, dass die Unterlagen gesondert kommen).
- T02, T12, T13: Block anhang_fehlt "Unterlagen von Hand nachsenden" (T12 auch beim späteren Wirksamwerden, T13 auch ohne Aufgabe).
- Alte Fassungen unverändert: Hash-Pins auf die Wiedergabe der Vorlagen vor der Änderung, Anhang und Texte wie bisher.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 21:38:54 +00:00

35 lines
1.9 KiB
JavaScript

/**
* Vertragsunterlagen (PDF) als Mail-Anhang der Bestaetigungen K01 (Abo), K12 (Wechsel) und K13 (Zusatzspeicher-Plus), mit der Auskunft, ob sie fehlen.
*
* Fassung 6 (config.abo.termsVersionNeu) liefert die PDFs erst nach der Freigabe (build-legal-pdfs.sh abo6); bis dahin fehlt die Datei. Dann darf die
* Kundenmail nicht behaupten, die Unterlagen haengten an (Block ohne_anhang statt anhang), und das Team bekommt in T02, T12 bzw. T13 den Block
* anhang_fehlt und sendet sie von Hand nach (Muster K38/T24). Alle aelteren Fassungen bleiben, wie sie waren: ohne Datei geht die Mail ohne Anhang
* raus, Vorlage und Text unveraendert (fehlt bleibt false).
*/
import { access, readFile } from 'node:fs/promises'
import { contractAttachmentFor } from './products.js'
import { istNeueFassung } from './vertragsNachweis.js'
/**
* @param {string} termsVersion zugestimmte Fassung (die Fassung der Zustimmung, nicht die des Abos)
* @param {string} tag Kennung fuer das Log, z. B. 'abo'
* @returns {Promise<{ attachments: Array<{ filename: string, content: Buffer, contentType: string }>, fehlt: boolean }>}
* fehlt: nur bei Fassung 6 und nicht lesbarer Datei
*/
export async function ladeVertragsAnhang(termsVersion, tag) {
const { filename, path } = contractAttachmentFor(termsVersion)
const content = await readFile(path).catch((err) => {
console.error(`[${tag}] Vertragsunterlagen ${filename} nicht lesbar:`, err.message)
return null
})
return { attachments: content ? [{ filename, content, contentType: 'application/pdf' }] : [], fehlt: !content && istNeueFassung(termsVersion) }
}
/** Fehlen die PDFs der Fassung 6 (ohne Log, ohne Lesen der Datei)? Für ein später gesendetes T12; ältere Fassungen: nie. */
export async function anhangFehlt(termsVersion) {
if (!istNeueFassung(termsVersion)) return false
const { path } = contractAttachmentFor(termsVersion)
return access(path).then(() => false, () => true)
}