Funktionen: Freischalt-Hindernisse und Freigabe-Mail ausgelagert
freischaltHindernis (Abo zuerst, dann Einstellung; Abo-Lesefehler = abo_unbekannt) und meldeFreigeschaltet (K16, Fehler geloggt, mit attachments) in termine/freischaltung.js. Der Standardhaken freischaltbar fuer termine delegiert an freischaltHindernis, runActivation an meldeFreigeschaltet. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2db3eca357
commit
8fe14c2fe6
4 files changed
+425
-21
No files matched your search
@@ -27,14 +27,15 @@ async function termineBestellpruefung({ customerId, projectId, feature }) {
|
||||
|
||||
/**
|
||||
* Freischaltpruefung des Terminplaners (Spec 4.5: die Aktivierung bleibt gesperrt, bis ein Abo laeuft): die Einrichtung
|
||||
* ist erst freizugeben, wenn ein Wartungs-Abo laeuft und eine Einstellung gespeichert ist. Fail-closed: ein Lesefehler
|
||||
* (Abo, Einstellung) wirft, activateClosedTickets haelt das Dokument dann in 'setup'. Der Aufrufer liest das Dokument
|
||||
* unter der Sperre frisch und uebergibt es; auch das Abo wird hier frisch gelesen, nie aus einem Zwischenspeicher.
|
||||
* ist erst freizugeben, wenn ein Wartungs-Abo laeuft und eine Einstellung gespeichert ist. Das entscheidet
|
||||
* freischaltHindernis (termine/freischaltung.js, auch die Gruende dort); dieser Haken gibt nur bei null frei. Fail-closed:
|
||||
* ein nicht lesbares Abo ('abo_unbekannt') gibt nie frei, ein Lesefehler der Einstellung wirft, activateClosedTickets haelt
|
||||
* das Dokument dann in 'setup'. Der Aufrufer liest das Dokument unter der Sperre frisch und uebergibt es; auch das Abo wird
|
||||
* hier frisch gelesen (freischaltHindernis ohne eingereichten Zwischenspeicher), nie aus einem Zwischenspeicher.
|
||||
*/
|
||||
async function termineFreischaltbar(doc) {
|
||||
const [{ ladeEinstellung }, { laeuft }] = await Promise.all([import('./termine/kontext.js'), import('./aboStatus.js')])
|
||||
if (!(await laeuft(doc.customerId))) return false
|
||||
return (await ladeEinstellung(doc.$id)) !== null
|
||||
const { freischaltHindernis } = await import('./termine/freischaltung.js')
|
||||
return (await freischaltHindernis(doc)) === null
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user