Schalter fuer den Hinweis auf die Kaffeeliste

Der Hinweis unten rechts laesst sich ab einem bezahlten Tarif in den
Mandant-Einstellungen abschalten (neue Spalte tenant_settings.
watermark_enabled, Standard an). Im kostenlosen Tarif bleibt er fest
eingeschaltet: das Kaestchen ist angehakt und disabled, daneben steht der
Grund. Zusaetzlich erzwingt saas_update_tenant_settings() den Wert dort noch
einmal, damit ein nachgebauter POST ihn nicht abschalten kann.

Der Titel des Wasserzeichens spricht nicht mehr vom kostenlosen Tarif -
zahlende Mandanten koennen es jetzt freiwillig zeigen.

Der Smoke-Test prueft die Einstellungsseite jetzt auch angemeldet. Sein
Muster fuer PHP-Meldungen verlangt dafuer einen Doppelpunkt, sonst haette
das Feld "negative_warning" als Warnung gezaehlt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-21 00:27:44 +02:00
co-authored by Claude Opus 5
parent 1d53b66e3f
commit b244451c42
8 changed files with 153 additions and 16 deletions
+34
View File
@@ -106,7 +106,41 @@ if ($registration['ok']) {
settings_check_assert('self entry is enabled', $updated['self_entry_enabled'] === 1, $failures, $passes);
settings_check_assert('pdf row height is updated', (int)$updated['pdf_row_height_px'] === 18, $failures, $passes);
settings_check_assert('reminder interval is updated', (int)$updated['payment_reminder_interval_days'] === 14, $failures, $passes);
// Das Formular oben schickt kein watermark_enabled - im kostenlosen
// Tarif bleibt der Hinweis auf die Kaffeeliste trotzdem an.
settings_check_assert('watermark stays on in the free plan', (int)$updated['watermark_enabled'] === 1, $failures, $passes);
}
// Ab einem bezahlten Tarif entscheidet der Mandant selbst.
$paidInput = [
'tenant_name' => 'M3 Settings Flow Updated',
'timezone' => 'Europe/Berlin',
'locale' => 'de-DE',
'currency_code' => 'EUR',
'mark_price' => '0,35',
'sheet_window_days' => '90',
'negative_warning' => '12,50',
'pdf_split_mode' => 'alphabetical',
'pdf_row_height_px' => '18',
'payment_reminder_interval_days' => '14',
];
billing_update($pdo, $tenantId, ['plan_code' => 'basic']);
$paidOff = saas_update_tenant_settings($pdo, $tenantId, $paidInput);
settings_check_assert(
'watermark can be switched off on a paid plan',
$paidOff['ok'] === true && (int)$paidOff['settings']['watermark_enabled'] === 0,
$failures,
$passes
);
$paidOn = saas_update_tenant_settings($pdo, $tenantId, $paidInput + ['watermark_enabled' => '1']);
settings_check_assert(
'watermark can be switched back on',
$paidOn['ok'] === true && (int)$paidOn['settings']['watermark_enabled'] === 1,
$failures,
$passes
);
}
settings_check_cleanup($pdo, $slug, $emailNorm);