Kundenansicht neu P10: Korrekturen aus der Pruefung (Task 5 Kaeufe lesen)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1b79210a7c
commit
e8ede69188
2 files changed
+81
No files matched your search
@@ -9,6 +9,9 @@
|
||||
* Nur zur Information, kein Hindernis: der Widerruf funktioniert nach dem Umschalten weiter.
|
||||
* Die Frist ist eine Näherung: Anker ist consentAt am Dokument, sonst orderedAt (der Nachweis in featureConsents wird nicht gelesen).
|
||||
* Ohne Datum gilt die Frist vorsichtshalber als laufend.
|
||||
* Behalten-Sitzung Öffnungszeiten "Behalten": starteBehalten ändert den Zustand nicht, es trägt nur behaltenSessionId ein. Eine
|
||||
* solche Zahlung ist also weder 'ordered' noch gekauft. Eigene Zeile mit den Dokument-IDs, kein Exit 1: eine
|
||||
* abgelaufene Sitzungs-ID bleibt stehen, bis aktiviert oder gebucht wird. Vor dem Umschalten von Hand klären.
|
||||
*
|
||||
* Ausgabe: nur Zahlen und Dokument-IDs, nie Namen, Adressen oder Beträge.
|
||||
* node scripts/kauf-bestand-pruefen.mjs
|
||||
@@ -38,6 +41,13 @@ function fristStand(doc, jetzt) {
|
||||
return { laeuft: withdrawalDeadline(anker).endsAt > jetzt, ohneDatum: false }
|
||||
}
|
||||
|
||||
/** Wie unlockedByVon (siteFeatures.js), hier nachgebaut, damit das Skript nicht Stripe und Mailer lädt. */
|
||||
const freigeschaltetVon = (doc) => doc.unlockedBy || (doc.unlockedByPurchase ? 'kauf' : 'team')
|
||||
|
||||
/** Behalten-Sitzung eingetragen und noch nicht gebucht (gebucht = stripeSessionId ist diese Sitzung und das Dokument ein Kauf). */
|
||||
const behaltenEingetragen = (doc) =>
|
||||
Boolean(doc.behaltenSessionId) && !(doc.stripeSessionId === doc.behaltenSessionId && freigeschaltetVon(doc) === 'kauf')
|
||||
|
||||
const liste = (ids) => (ids.length ? ` (${ids.join(', ')})` : '')
|
||||
|
||||
/**
|
||||
@@ -47,6 +57,7 @@ const liste = (ids) => (ids.length ? ` (${ids.join(', ')})` : '')
|
||||
export async function pruefeKaeufe({ log = console.log, jetzt = new Date() } = {}) {
|
||||
const docs = await listAllDocuments(config.collections.portalFeatures)
|
||||
const offeneBestellungen = docs.filter((d) => d.state === 'ordered').map((d) => d.$id)
|
||||
const behalten = docs.filter(behaltenEingetragen).map((d) => d.$id)
|
||||
const gekauft = docs.filter(istGekauft)
|
||||
const fristLaeuft = []
|
||||
const ohneDatum = []
|
||||
@@ -59,6 +70,8 @@ export async function pruefeKaeufe({ log = console.log, jetzt = new Date() } = {
|
||||
log(`Funktionsdokumente: ${docs.length}, davon gekauft: ${gekauft.length}`)
|
||||
log(`Offene Bestellungen: ${offeneBestellungen.length}${liste(offeneBestellungen)}`)
|
||||
log(`Fristen laufen: ${fristLaeuft.length}${liste(fristLaeuft)}${ohneDatum.length ? ` - davon ohne Datum: ${ohneDatum.length}` : ''}`)
|
||||
log(`Behalten-Sitzung eingetragen: ${behalten.length}${liste(behalten)}`)
|
||||
if (behalten.length) log('Hinweis: bei einer Behalten-Sitzung kann die Zahlung noch laufen oder die Sitzung abgelaufen sein; kein Hindernis, vor dem Umschalten aber klären.')
|
||||
if (offeneBestellungen.length) log('Offene Bestellungen vorhanden: erst die Zahlung abwarten (oder klären), dann umschalten.')
|
||||
return { offeneBestellungen, fristLaeuft, gekauftGesamt: gekauft.length }
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user