feat: add payment tracking for orders
- Add payment method selection (PayPal/Bar) to order form - Store payment_method and payment_status in database - Add payment status badges in admin orders view - Add "mark as paid" functionality for admins - PayPal account configurable via PAYPAL_ACCOUNT env variable - Frontend loads PayPal account dynamically from /wawi/config endpoint - Update email notifications to include payment method Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
30
index.html
30
index.html
@@ -428,6 +428,22 @@
|
||||
<label style="grid-column: 1 / -1;">Notiz
|
||||
<textarea id="fNotiz" name="notiz" rows="3"></textarea>
|
||||
</label>
|
||||
<div style="grid-column: 1 / -1; padding: 12px; background: #f0f9ff; border: 1px solid #bfdbfe; border-radius: 4px; margin-top: 8px;">
|
||||
<strong>Zahlungsart wählen:</strong>
|
||||
<div style="margin-top: 8px;">
|
||||
<label style="display: flex; align-items: center; margin-bottom: 8px;">
|
||||
<input type="radio" name="payment_method" value="paypal" checked style="margin-right: 8px;" />
|
||||
<span><strong>PayPal (Familie & Freunde)</strong></span>
|
||||
</label>
|
||||
<div id="paypalInfo" style="margin-left: 28px; margin-bottom: 12px; font-size: 0.95em; color: #1e40af;">
|
||||
Bitte sende den Betrag über PayPal an: <strong id="paypalAccount">–</strong>
|
||||
</div>
|
||||
<label style="display: flex; align-items: center;">
|
||||
<input type="radio" name="payment_method" value="bar" style="margin-right: 8px;" />
|
||||
<span><strong>Bar bei Abholung</strong></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<button type="button" class="btn" id="orderCancel">Abbrechen</button>
|
||||
@@ -568,6 +584,20 @@ const form = document.getElementById("orderForm");
|
||||
const setField = (id, v) => document.getElementById(id).value = v || "";
|
||||
const ORDER_KEY = "";
|
||||
|
||||
// PayPal-Konto vom Backend laden
|
||||
fetch("/wawi/config")
|
||||
.then(res => res.json())
|
||||
.then(config => {
|
||||
if (config.paypal_account) {
|
||||
document.getElementById("paypalAccount").textContent = config.paypal_account;
|
||||
} else {
|
||||
document.getElementById("paypalAccount").textContent = "Nicht konfiguriert";
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
document.getElementById("paypalAccount").textContent = "Fehler beim Laden";
|
||||
});
|
||||
|
||||
document.addEventListener("click", (e) => {
|
||||
const imgBtn = e.target.closest(".thumb-btn");
|
||||
if (imgBtn) {
|
||||
|
||||
Reference in New Issue
Block a user