Files
fotobox-webspite/views/partials/public-booking-form.php
T
2026-05-05 12:30:45 +02:00

138 lines
7.0 KiB
PHP

<?php
$oldData = is_array($old ?? null) ? $old : [];
?>
<div class="booking-form-shell">
<?php if (!empty($flashSuccess)): ?>
<div class="flash flash-success"><?= h((string) $flashSuccess) ?></div>
<?php endif; ?>
<?php if (!empty($flashError)): ?>
<div class="flash flash-error"><?= h((string) $flashError) ?></div>
<?php endif; ?>
<form method="post" action="<?= h(url('book')) ?>" class="booking-form" data-day-rate="<?= h((string) $dayRate) ?>">
<?= csrfField() ?>
<input type="hidden" name="price_per_day_cents" value="<?= h((string) $dayRate) ?>">
<div class="form-section">
<div class="form-section-header">
<span class="form-step">Schritt 1</span>
<h3>Mietzeitraum wählen</h3>
</div>
<p class="form-help">Ein Miettag entspricht immer einer Übernachtung. Montag bis Dienstag zählt als 1 Miettag.</p>
<div class="form-grid form-grid-two">
<label>
<span>Abholdatum</span>
<input type="date" name="start_date" data-booking-start value="<?= h((string) ($oldData['start_date'] ?? '')) ?>" required>
</label>
<label>
<span>Rückgabedatum</span>
<input type="date" name="end_date" data-booking-end value="<?= h((string) ($oldData['end_date'] ?? '')) ?>" required>
</label>
</div>
</div>
<div class="form-section">
<div class="form-section-header">
<span class="form-step">Schritt 2</span>
<h3>Leistung und Zahlung festlegen</h3>
</div>
<div class="form-grid form-grid-two">
<label>
<span>Leistungsart</span>
<select name="delivery_mode">
<option value="self_pickup" <?= selected((string) ($oldData['delivery_mode'] ?? 'self_pickup'), 'self_pickup') ?>>Selbstabholung</option>
<option value="delivery_setup" <?= selected((string) ($oldData['delivery_mode'] ?? ''), 'delivery_setup') ?>>Lieferung und Aufbau</option>
<option value="on_site_support" <?= selected((string) ($oldData['delivery_mode'] ?? ''), 'on_site_support') ?>>Lieferung, Aufbau und Vor-Ort-Betreuung</option>
</select>
</label>
<label>
<span>Zahlungsart</span>
<select name="payment_method">
<option value="invoice_transfer" <?= selected((string) ($oldData['payment_method'] ?? 'invoice_transfer'), 'invoice_transfer') ?>>Rechnung / Überweisung</option>
<option value="paypal" <?= selected((string) ($oldData['payment_method'] ?? ''), 'paypal') ?>>PayPal</option>
</select>
</label>
</div>
</div>
<div class="form-section">
<div class="form-section-header">
<span class="form-step">Schritt 3</span>
<h3>Kundendaten erfassen</h3>
</div>
<div class="form-grid">
<label>
<span>Name</span>
<input type="text" name="customer_name" value="<?= h((string) ($oldData['customer_name'] ?? '')) ?>" required>
</label>
<label>
<span>Firma</span>
<input type="text" name="company" value="<?= h((string) ($oldData['company'] ?? '')) ?>">
</label>
<label>
<span>E-Mail</span>
<input type="email" name="email" value="<?= h((string) ($oldData['email'] ?? '')) ?>" required>
</label>
<label>
<span>Telefon</span>
<input type="text" name="phone" value="<?= h((string) ($oldData['phone'] ?? '')) ?>" required>
</label>
<label>
<span>Straße</span>
<input type="text" name="street" value="<?= h((string) ($oldData['street'] ?? '')) ?>" required>
</label>
<label>
<span>PLZ</span>
<input type="text" name="postal_code" value="<?= h((string) ($oldData['postal_code'] ?? '')) ?>" required>
</label>
<label>
<span>Ort</span>
<input type="text" name="city" value="<?= h((string) ($oldData['city'] ?? '')) ?>" required>
</label>
<label>
<span>Anlass</span>
<input type="text" name="event_type" value="<?= h((string) ($oldData['event_type'] ?? '')) ?>" placeholder="z. B. Hochzeit oder Firmenfeier">
</label>
<label class="form-grid-span">
<span>Veranstaltungsort</span>
<input type="text" name="event_location" value="<?= h((string) ($oldData['event_location'] ?? '')) ?>" placeholder="Location, Stadt oder Lieferadresse">
</label>
<label class="form-grid-span">
<span>Hinweis für Ihre Anfrage</span>
<textarea name="notes_customer" rows="4" placeholder="Lieferdetails, Aufbauwunsch oder besondere Anforderungen"><?= h((string) ($oldData['notes_customer'] ?? '')) ?></textarea>
</label>
</div>
</div>
<div class="booking-summary-card">
<div class="summary-line">
<span>Mietdauer</span>
<strong data-summary-days>Noch nicht gewählt</strong>
</div>
<div class="summary-line">
<span>Preis pro Miettag</span>
<strong><?= h(formatCurrency((int) $dayRate)) ?></strong>
</div>
<div class="summary-line summary-line-total">
<span>Voraussichtlicher Gesamtpreis</span>
<strong data-summary-total><?= h(formatCurrency((int) $dayRate)) ?></strong>
</div>
</div>
<div class="consent-stack">
<label class="checkbox-row">
<input type="checkbox" name="privacy_accepted" value="1" <?= !empty($oldData['privacy_accepted']) ? 'checked' : '' ?> required>
<span>Ich habe die <a href="<?= h(url('datenschutz')) ?>">Datenschutzerklärung</a> gelesen.</span>
</label>
<label class="checkbox-row">
<input type="checkbox" name="terms_accepted" value="1" <?= !empty($oldData['terms_accepted']) ? 'checked' : '' ?> required>
<span>Ich bestätige die <a href="<?= h(url('mietbedingungen')) ?>">Mietbedingungen</a> und die Preislogik pro Miettag.</span>
</label>
</div>
<button type="submit" class="button-primary button-block">Buchungsanfrage senden</button>
<p class="form-note">Keine Sofortabbuchung. Ihr Auftrag wird erst nach persönlicher Bestätigung verbindlich.</p>
</form>
</div>