More improvements

This commit is contained in:
2026-08-05 10:55:06 +02:00
parent e55cdd1988
commit a0d26648ee
20 changed files with 279 additions and 216 deletions
@@ -39,18 +39,9 @@
</table>
@if ($paymentSummary['hasPaymentInformation'])
@if ($paymentSummary['showGiroCode'])
<p>
Deine Teilnahme ist <strong>noch nicht bestätigt,</strong> da dsies erst nach vollständigem Zahlungseingang
der
Fall ist.
Bitte zahle den Betrag in Höhe von <strong>{{$amount}}</strong> bis zum <strong>{{$paymentFinalDate}}
,</strong>
da andernfalls die Stornierung deiner Anmeldung erfolgen kann.
Um deine Anmeldung zu vervollständigen, überweise den Betrag bitte zugunsten folgender Bankverbindung:
</p>
@endif
<p>
Zu deiner Anmeldung liegen noch folgende Zahlungsinformationen vor:
</p>
<p>
@include('emails.subparts.payment')<br />
@@ -36,14 +36,11 @@
</tr>
</table>
@if ($paymentSummary['hasPaymentInformation'] && $paymentSummary['showGiroCode'])
@if ($paymentSummary['hasPaymentInformation'])
<p>
Wahrscheinlich hast du vergessen, deinen Teilnahmebeitrag zu überweisen, sodass deine Anmeldung leider <strong>noch nicht bestätigt,</strong> werden konnte.
Um deine Anmeldung zu bestätigen, zahle bitte den Betrag in Höhe von <strong>{{$amount}}</strong> bis zum <strong>{{$paymentFinalDate}},</strong>
da andernfalls die Stornierung deiner Anmeldung erfolgen kann.
Um deine Anmeldung zu vervollständigen, überweise den Betrag bitte zugunsten folgender Bankverbindung:
Wahrscheinlich hast du vergessen, deinen Teilnahmebeitrag zu zahlen, sodass deine Anmeldung leider
<strong>noch nicht bestätigt</strong> werden konnte. Bitte hole die Zahlung anhand der folgenden
Zahlungsinformationen nach:
</p>
<p>
@@ -1,58 +1,7 @@
{{-- Zahlungs-Info-Block aus dem Zahlungsmodul ($paymentSummary). Entweder freier HTML-Text
(z.B. Barzahlung) oder strukturierte Zeilen (z.B. Überweisung) inkl. optionalem GiroCode. --}}
@if (!empty($paymentSummary['html']))
{!! $paymentSummary['html'] !!}
@else
<table cellpadding="0" cellspacing="0" border="0"
style="width: 100%; max-width: 640px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; color: #1f2937;">
@foreach ($paymentSummary['lines'] as $line)
<tr>
<td style="padding: {{ $loop->last ? '10px' : '8px' }} 12px; width: 180px; font-weight: {{ $loop->last ? '700' : '600' }}; color: {{ $loop->last ? '#111827' : '#4b5563' }}; border-{{ $loop->last ? 'top: 2px solid #d1d5db' : 'bottom: 1px solid #e5e7eb' }};">
{{ $line['label'] }}
</td>
<td style="padding: {{ $loop->last ? '10px' : '8px' }} 12px; font-weight: {{ $loop->last ? '700' : '400' }}; color: {{ $loop->last ? '#111827' : '#1f2937' }}; border-{{ $loop->last ? 'top: 2px solid #d1d5db' : 'bottom: 1px solid #e5e7eb' }};">
{{ $line['value'] }}
</td>
</tr>
@endforeach
</table>
@if (!empty($paymentSummary['showGiroCode']))
@php
$girocodeSrc = $message->embedData($girocodeBinary, 'girocode.png', 'image/png');
@endphp
<table style="margin: 20px;">
<tr style="vertical-align: top; background-color: #eaeaea; border-spacing: 0">
<td style="padding: 20px; text-align: center; font-weight: bold;">
<strong>
Bequem überweisen mit QR-Code
</strong><br/><br/>
<img
style="padding-left: 20px;width: 150px; height: 150px;"
src="{{ $girocodeSrc }}"
alt="Giro-Code">
</td>
<td>
<p style="padding-left:10px; padding-right: 10px; text-align: left;">
<strong>Und so funktioniert es</strong><br/>
<ul style="text-align: left; list-style: decimal; font-weight: normal">
<li style="padding-right: 10px;">Mache einen Screenshot des QR-Codes</li>
<li style="padding-right: 10px;">Öffne deine Banking-App und wähle den Menüpunkt
(Foto-)Überweisung“.
</li>
<li style="padding-right: 10px;">Wähle das gespeicherte Bild aus</li>
</ul>
</p>
</td>
</tr>
</table>
<p>
Bitte zahle immer mit dem vorgegeben Betreff, damit deine Zahlung möglichst einfach zugeordnet werden
kann.<br/>
Sollte die Zahlung innerhalb dieser Frist nicht oder nur teilweise möglich sein, kontaktiere bitte die
Aktionsleitung, sodass wir eine gemeinsame Lösung finden können.
</p>
@endif
{{-- Der Zahlungs-Block kommt fertig aus dem Zahlungsmodul ($paymentSummary['html']). Hier wird lediglich
der GiroCode-Binary (falls vorhanden) als Inline-CID bereitgestellt, damit das im Modul-HTML
referenzierte cid:girocode.png in der Mail auflöst. --}}
@if (!empty($girocodeBinary))
@php $message->embedData($girocodeBinary, 'girocode.png', 'image/png'); @endphp
@endif
{!! $paymentSummary['html'] !!}
@@ -0,0 +1,61 @@
{{-- Zahlungs-Block der Überweisung -- MAIL-Kontext. E-Mail-taugliches Markup (Inline-Styles, Tabellen).
$giroCodeSrc: Bildquelle des GiroCodes (cid:) -- null, wenn kein GiroCode. --}}
<table cellpadding="0" cellspacing="0" border="0"
style="width: 100%; max-width: 640px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; color: #1f2937;">
<tr>
<td style="padding: 8px 12px; width: 180px; font-weight: 600; color: #4b5563; border-bottom: 1px solid #e5e7eb;">
Kontoinhaber
</td>
<td style="padding: 8px 12px; border-bottom: 1px solid #e5e7eb;">{{ $accountOwner }}</td>
</tr>
<tr>
<td style="padding: 8px 12px; font-weight: 600; color: #4b5563; border-bottom: 1px solid #e5e7eb;">IBAN</td>
<td style="padding: 8px 12px; border-bottom: 1px solid #e5e7eb; font-family: monospace;">{{ $iban }}</td>
</tr>
<tr>
<td style="padding: 8px 12px; font-weight: 600; color: #4b5563; border-bottom: 1px solid #e5e7eb;">
Verwendungszweck
</td>
<td style="padding: 8px 12px; border-bottom: 1px solid #e5e7eb;">{{ $paymentPurpose }}</td>
</tr>
<tr>
<td style="padding: 10px 12px; font-weight: 700; color: #111827; border-top: 2px solid #d1d5db;">Betrag</td>
<td style="padding: 10px 12px; font-weight: 700; color: #111827; border-top: 2px solid #d1d5db;">{{ $amount }}</td>
</tr>
</table>
@if ($giroCodeSrc)
<table style="margin: 20px 0; border-collapse: collapse;">
<tr style="vertical-align: top; background-color: #eaeaea;">
<td style="padding: 20px; text-align: center; font-weight: bold;">
<strong>Bequem überweisen mit QR-Code</strong><br/><br/>
<img src="{{ $giroCodeSrc }}" alt="Giro-Code" style="width: 150px; height: 150px;"/>
</td>
<td style="padding: 10px 16px;">
<strong>Und so funktioniert es</strong>
<ol style="text-align: left; font-weight: normal; margin: 8px 0 0 18px; padding: 0;">
<li style="margin-bottom: 4px;">Öffne deine Banking-App und wähle (Foto-)Überweisung“.</li>
<li style="margin-bottom: 4px;">Scanne den QR-Code (oder wähle einen Screenshot davon aus).</li>
<li>Prüfe die Daten und gib die Überweisung frei.</li>
</ol>
</td>
</tr>
</table>
<p style="margin: 8px 0;">
<a href="{{ $reminderUrl }}">Zahlungserinnerung in den Kalender setzen</a>
</p>
@endif
<p style="margin: 12px 0 0;">
Bitte zahle immer mit dem vorgegebenen Verwendungszweck, damit deine Zahlung eindeutig zugeordnet werden kann.
</p>
@if ($paymentDeadline)
<p style="margin: 12px 0 0;">
Bitte beachte, dass deine Anmeldung erst nach vollständigem Zahlungseingang bestätigt ist. Erfolgt dieser nicht
bis zum <strong>{{ $paymentDeadline }}</strong>, kann deine Anmeldung storniert werden. Solltest du den Betrag
bis dahin nicht oder nur teilweise zahlen können, kontaktiere bitte die Aktionsleitung, damit wir eine
gemeinsame Lösung finden können.
</p>
@endif
@@ -0,0 +1,57 @@
{{-- Zahlungs-Block der Überweisung -- WEB-Kontext. Nutzt globale SPA-Klassen (form-table, link) aus
SignupForm.vue; wird per v-html in SubmitSuccess.vue ausgegeben.
$giroCodeSrc: Bildquelle des GiroCodes (Web-Endpoint) -- null, wenn kein GiroCode. --}}
<table class="form-table" style="margin-bottom: 16px;">
<tr>
<td>Kontoinhaber:</td>
<td>{{ $accountOwner }}</td>
</tr>
<tr>
<td>IBAN:</td>
<td>{{ $iban }}</td>
</tr>
<tr>
<td>Verwendungszweck:</td>
<td>{{ $paymentPurpose }}</td>
</tr>
<tr>
<td>Betrag:</td>
<td><strong>{{ $amount }}</strong></td>
</tr>
</table>
@if ($giroCodeSrc)
<div style="display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 16px;">
<div style="text-align: center;">
<img src="{{ $giroCodeSrc }}" alt="Giro-Code" style="max-width: 180px;"/>
<span style="display: block; font-size: 0.8rem; color: #6b7280; margin-top: 4px;">Giro-Code</span>
</div>
<div>
<strong>Bequem überweisen mit QR-Code</strong>
<ol style="margin: 8px 0 0 18px; padding: 0;">
<li>Öffne deine Banking-App und wähle (Foto-)Überweisung“.</li>
<li>Scanne den QR-Code (oder wähle einen Screenshot davon aus).</li>
<li>Prüfe die Daten und gib die Überweisung frei.</li>
</ol>
</div>
</div>
<p style="margin: 8px 0;">
<a class="link" href="{{ $reminderUrl }}">Zahlungserinnerung in den Kalender setzen</a>
</p>
@endif
<p style="margin: 12px 0 0;">
Bitte zahle immer mit dem vorgegebenen Verwendungszweck, damit deine Zahlung eindeutig zugeordnet werden kann.
</p>
@if ($paymentDeadline)
<p style="margin: 12px 0 0;">
Bitte beachte, dass deine Anmeldung erst nach vollständigem Zahlungseingang bestätigt ist. Erfolgt dieser nicht
bis zum <strong>{{ $paymentDeadline }}</strong>, kann deine Anmeldung storniert werden. Solltest du den Betrag
bis dahin nicht oder nur teilweise zahlen können, kontaktiere bitte die Aktionsleitung, damit wir eine
gemeinsame Lösung finden können.
</p>
@endif
@@ -0,0 +1,4 @@
{{-- Barzahlung/Sonstiges -- MAIL-Kontext. E-Mail-tauglicher Rahmen um den nutzerdefinierten Freitext (richtext). --}}
<div style="font-family: Arial, sans-serif; font-size: 14px; color: #1f2937; line-height: 1.5;">
{!! $paymentInformation !!}
</div>
@@ -0,0 +1,4 @@
{{-- Barzahlung/Sonstiges -- WEB-Kontext. Inhalt ist der nutzerdefinierte Freitext (richtext, HTML). --}}
<div class="payment-information">
{!! $paymentInformation !!}
</div>