T2neu: Archiv-Hinweis vor Submit ersetzt Erloeschens-Checkbox (B2B, E2)

Die 356-BGB-Erlöschensbestätigung entfiel mit der B2B-Umstellung; an ihre
Stelle tritt der von AGB par. 13 Abs. 1 geforderte Hinweis auf die
dauerhafte Archivierung (Depublikation nur als kostenpflichtiger Service,
gesetzliche Ansprueche unberuehrt). Bestätigungszeitpunkt wird weiter
protokolliert (Spalte withdrawal_waiver_consented_at, historischer Name).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-03 15:53:22 +00:00
parent 28b5980754
commit 110f97db6b
3 changed files with 18 additions and 13 deletions

View file

@ -64,9 +64,11 @@ class PressReleaseService
throw new BlacklistViolationException($reason, $word);
}
// Erlöschensklausel (§ 356 Abs. 4/5 BGB): Das Einreichungs-Modal
// verlangt die Bestätigung der sofortigen Ausführung — der Zeitpunkt
// wird hier zur Nachweisbarkeit protokolliert.
// Archiv-Hinweis (AGB § 13 Abs. 1, T2neu): Das Einreichungs-Modal
// verlangt die Bestätigung der dauerhaften Archivierung — der
// Zeitpunkt wird hier zur Nachweisbarkeit protokolliert. (Spalte
// heißt historisch withdrawal_waiver_consented_at; die frühere
// Erlöschens-Checkbox entfiel mit der B2B-Umstellung, E2.)
$pressRelease->update([
'status' => PressReleaseStatus::Review->value,
'withdrawal_waiver_consented_at' => now(),

View file

@ -113,12 +113,14 @@
x-on:change="contact = $event.target.checked"
:label="__('Die Angaben zum Pressekontakt sind korrekt.')"
/>
{{-- Erlöschensklausel (§ 356 Abs. 4/5 BGB): Bestätigungszeitpunkt
wird serverseitig protokolliert (PressReleaseService). --}}
{{-- Archiv-Hinweis (AGB § 13 Abs. 1, T2neu): die frühere
Erlöschens-Checkbox entfiel mit der B2B-Umstellung (E2).
Der Bestätigungszeitpunkt wird serverseitig protokolliert
(PressReleaseService). --}}
<flux:switch
align="left"
x-on:change="waiver = $event.target.checked"
:label="__('Ich verlange die sofortige Ausführung und weiß, dass mein Widerrufsrecht mit vollständiger Vertragserfüllung erlischt.')"
:label="__('Mir ist bekannt, dass veröffentlichte Pressemitteilungen dauerhaft archiviert werden; eine spätere Entfernung ist nur als kostenpflichtige Serviceleistung möglich (gesetzliche Ansprüche bleiben unberührt).')"
/>
</div>

View file

@ -13,20 +13,21 @@ beforeEach(function (): void {
Queue::fake();
});
test('the submit modal requires the withdrawal waiver confirmation', function () {
test('the submit modal requires the archive notice confirmation', function () {
/** @var TestCase $this */
['customer' => $customer, 'pr' => $pr] = makeCustomerForShowPhase8a();
$this->actingAs($customer);
LivewireVolt::test('customer.press-releases.show', ['id' => $pr->id])
// Erlöschensklausel (§ 356 Abs. 4/5 BGB) als eigene Bestätigung …
->assertSee('Ich verlange die sofortige Ausführung')
->assertSee('Widerrufsrecht mit vollständiger Vertragserfüllung erlischt')
// Archiv-Hinweis (AGB § 13 Abs. 1, T2neu) als eigene Bestätigung —
// die frühere Erlöschens-Checkbox entfiel mit B2B-only (E2) …
->assertSee('dauerhaft archiviert')
->assertSee('gesetzliche Ansprüche bleiben unberührt')
// … die den Bestätigen-Button mit sperrt.
->assertSeeHtml('agb && images && contact && waiver');
});
test('submitting records the waiver consent timestamp on the press release', function () {
test('submitting records the archive notice consent timestamp on the press release', function () {
/** @var TestCase $this */
['customer' => $customer, 'pr' => $pr] = makeCustomerForShowPhase8a();
$this->actingAs($customer);
@ -50,8 +51,8 @@ test('the index draft action opens the shared submit modal instead of a quick su
LivewireVolt::test('customer.press-releases.index')
->assertSee('Zur Prüfung')
// Gemeinsames Modal inkl. Erlöschensklausel statt wire:confirm,
// Gemeinsames Modal inkl. Archiv-Hinweis statt wire:confirm,
// das die rechtlichen Bestätigungen umgehen würde.
->assertSee('Ich verlange die sofortige Ausführung')
->assertSee('dauerhaft archiviert')
->assertDontSeeHtml('wire:confirm');
});