Kundenansicht neu P7: Zusatzspeicher-Plus in Fassung 6 mit Wortlaut-Nachweis
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
528ca0875e
commit
da2fe83d47
2 files changed
+153
-2
No files matched your search
+29
-2
@@ -409,8 +409,9 @@ router.post('/storage', requireSession, async (req, res) => {
|
||||
const { units, acceptTerms, termsVersion } = req.body || {}
|
||||
let consent = null
|
||||
if (acceptTerms === true) {
|
||||
if (termsVersion !== config.abo.termsVersion) {
|
||||
return res.status(409).json({ error: 'Die Bedingungen wurden aktualisiert. Bitte Seite neu laden.' })
|
||||
const fassung = fassungDerAnfrage(req, termsVersion)
|
||||
if (fassung === null) {
|
||||
return res.status(409).json({ error: neueAnsicht(req) ? FEHLER_BEDINGUNGEN : 'Die Bedingungen wurden aktualisiert. Bitte Seite neu laden.' })
|
||||
}
|
||||
consent = {
|
||||
termsVersion,
|
||||
@@ -418,6 +419,32 @@ router.post('/storage', requireSession, async (req, res) => {
|
||||
consentIp: req.ip,
|
||||
consentUserAgent: req.get('user-agent') || '',
|
||||
}
|
||||
// Fassung 6: Der gezeigte Wortlaut samt Kundenart (aus dem Kundendokument) wird gespeichert, bevor Stripe etwas aendert. Eine ungueltige
|
||||
// Menge ueberlaesst die Ablehnung wie bisher changeStorage (400, ohne Nachweis)
|
||||
const mengeOk = Number.isInteger(units) && units >= 1 && units <= config.mailStorage.maxUnits
|
||||
if (fassung === 'neu' && mengeOk) {
|
||||
let kundenart
|
||||
try {
|
||||
kundenart = kundenartWirksam(await getDocument(config.collections.customers, customerId))
|
||||
} catch (err) {
|
||||
console.error('[abo] Kunde für den Zusatzspeicher nicht lesbar:', err.message)
|
||||
return res.status(500).json({ error: FEHLER_NACHWEIS })
|
||||
}
|
||||
await speichereNachweisFuerRoute({
|
||||
customerId,
|
||||
art: 'speicher',
|
||||
bezug: `units=${units}`,
|
||||
texte: nachweisTexte('speicher', {
|
||||
kundenart,
|
||||
fassung: termsVersion,
|
||||
bestellung: bestellZeile('speicher', { units, gb: units * config.mailStorage.gbPerUnit, monatCents: units * config.mailStorage.amountCents }),
|
||||
}),
|
||||
fassungen: { zustimmung: termsVersion },
|
||||
kundenart,
|
||||
req,
|
||||
at: consent.consentAt,
|
||||
})
|
||||
}
|
||||
}
|
||||
const { subscription, change } = await changeStorage(customerId, units, consent)
|
||||
const events = await listContractEvents(customerId).catch((e) => {
|
||||
|
||||
Reference in new issue
Block a user