From 110f97db6be01a085c0dcfa87f9dcc6e1639fbfb Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Fri, 3 Jul 2026 15:53:22 +0000 Subject: [PATCH] T2neu: Archiv-Hinweis vor Submit ersetzt Erloeschens-Checkbox (B2B, E2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- app/Services/PressRelease/PressReleaseService.php | 8 +++++--- .../press-release-submit-modal.blade.php | 8 +++++--- .../Feature/PressReleaseWithdrawalWaiverTest.php | 15 ++++++++------- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/Services/PressRelease/PressReleaseService.php b/app/Services/PressRelease/PressReleaseService.php index 3ce89e3b..1d0b5556 100644 --- a/app/Services/PressRelease/PressReleaseService.php +++ b/app/Services/PressRelease/PressReleaseService.php @@ -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(), diff --git a/resources/views/components/press-release-submit-modal.blade.php b/resources/views/components/press-release-submit-modal.blade.php index b6b1238c..2facd669 100644 --- a/resources/views/components/press-release-submit-modal.blade.php +++ b/resources/views/components/press-release-submit-modal.blade.php @@ -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). --}} diff --git a/tests/Feature/PressReleaseWithdrawalWaiverTest.php b/tests/Feature/PressReleaseWithdrawalWaiverTest.php index 81ee7171..5536870d 100644 --- a/tests/Feature/PressReleaseWithdrawalWaiverTest.php +++ b/tests/Feature/PressReleaseWithdrawalWaiverTest.php @@ -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'); });