Erweiterte Bezahloptionen: Barzahlung, PayPal und Ueberweisung

Bisher gab es nur PayPal. Jetzt sind pro Mandant drei unabhaengig
aktivierbare Zahlungswege konfigurierbar (mandant-einstellungen.php):

- Barzahlung mit frei waehlbarem Ansprechpartner.
- PayPal wie bisher, mit Zahlungslink.
- Ueberweisung mit Kontoinhaber und IBAN (Format wird geprueft,
  Leerzeichen werden normalisiert).

Das Mitglieder-Dashboard (index.php) zeigt unter "Bezahlen" alle
aktivierten Methoden mit dem jeweils offenen Betrag; die IBAN wird zur
besseren Lesbarkeit in Viererbloecken angezeigt.

Neue tenant_settings-Spalten via Migration 0021 (cash_enabled,
cash_contact, bank_transfer_enabled, bank_account_holder, bank_iban).
This commit is contained in:
2026-07-21 16:13:28 +02:00
parent bafa5e7e61
commit c16b105f00
4 changed files with 116 additions and 9 deletions
+33 -4
View File
@@ -45,6 +45,11 @@ if ($canManageSettings) {
'self_entry_enabled' => !empty($_POST['self_entry_enabled']) ? 1 : 0,
'paypal_enabled' => !empty($_POST['paypal_enabled']) ? 1 : 0,
'paypal_url_template' => $_POST['paypal_url_template'] ?? '',
'cash_enabled' => !empty($_POST['cash_enabled']) ? 1 : 0,
'cash_contact' => $_POST['cash_contact'] ?? '',
'bank_transfer_enabled' => !empty($_POST['bank_transfer_enabled']) ? 1 : 0,
'bank_account_holder' => $_POST['bank_account_holder'] ?? '',
'bank_iban' => $_POST['bank_iban'] ?? '',
'sheet_window_days' => $_POST['sheet_window_days'] ?? 100,
'negative_warning_cents' => -abs(saas_parse_money_cents($_POST['negative_warning'] ?? '') ?? 0),
'pdf_show_empty_rows' => !empty($_POST['pdf_show_empty_rows']) ? 1 : 0,
@@ -125,16 +130,40 @@ include 'nav.php';
<input type="text" name="negative_warning" id="negative_warning" value="<?php echo saas_html(saas_format_money_cents(abs((int)$settings['negative_warning_cents']))); ?>" required>
</div>
<div class="col-12">
<h3>Bezahloptionen</h3>
<p>Aktiviere die Zahlungswege, die deine Mitglieder nutzen können. Nur aktivierte Optionen werden im Mitglieder-Dashboard angezeigt.</p>
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="cash_enabled" name="cash_enabled" value="1" <?php echo (int)$settings['cash_enabled'] === 1 ? 'checked' : ''; ?>>
<label for="cash_enabled">Barzahlung anbieten</label>
</div>
<div class="col-6 col-12-small">
<label for="cash_contact">Ansprechpartner für Barzahlung</label>
<input type="text" name="cash_contact" id="cash_contact" maxlength="255" value="<?php echo saas_html($settings['cash_contact']); ?>">
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="paypal_enabled" name="paypal_enabled" value="1" <?php echo (int)$settings['paypal_enabled'] === 1 ? 'checked' : ''; ?>>
<label for="paypal_enabled">PayPal anbieten</label>
</div>
<div class="col-6 col-12-small">
<label for="paypal_url_template">PayPal-Link</label>
<input type="text" name="paypal_url_template" id="paypal_url_template" value="<?php echo saas_html($settings['paypal_url_template']); ?>">
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="self_entry_enabled" name="self_entry_enabled" value="1" <?php echo (int)$settings['self_entry_enabled'] === 1 ? 'checked' : ''; ?>>
<label for="self_entry_enabled">Web-Striche erlauben</label>
<input type="checkbox" id="bank_transfer_enabled" name="bank_transfer_enabled" value="1" <?php echo (int)$settings['bank_transfer_enabled'] === 1 ? 'checked' : ''; ?>>
<label for="bank_transfer_enabled">Überweisung anbieten</label>
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="paypal_enabled" name="paypal_enabled" value="1" <?php echo (int)$settings['paypal_enabled'] === 1 ? 'checked' : ''; ?>>
<label for="paypal_enabled">PayPal anzeigen</label>
<label for="bank_account_holder">Kontoinhaber (Überweisung)</label>
<input type="text" name="bank_account_holder" id="bank_account_holder" maxlength="255" value="<?php echo saas_html($settings['bank_account_holder']); ?>">
</div>
<div class="col-12">
<label for="bank_iban">IBAN (Überweisung)</label>
<input type="text" name="bank_iban" id="bank_iban" maxlength="40" value="<?php echo saas_html($settings['bank_iban']); ?>">
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="self_entry_enabled" name="self_entry_enabled" value="1" <?php echo (int)$settings['self_entry_enabled'] === 1 ? 'checked' : ''; ?>>
<label for="self_entry_enabled">Web-Striche erlauben</label>
</div>
<div class="col-6 col-12-small">
<input type="checkbox" id="pdf_show_empty_rows" name="pdf_show_empty_rows" value="1" <?php echo (int)$settings['pdf_show_empty_rows'] === 1 ? 'checked' : ''; ?>>