<%= ok %>
<% } %>
<% if (err) { %><%= err %>
<% } %>
<%= summary.tablesFree %> / <%= summary.tablesTotal %>wolnych stolików
<%= summary.peopleReserved %>osób (aktywne)
<%= summary.byStatus.pending %>oczekuje na opłatę
<%= summary.byStatus.paid %>opłaconych
<%= fmt.money(summary.paidAmount) %>wpłacono
<%= fmt.money(summary.pendingAmount) %>do zapłaty
<%- include('partials/forno-icon', { name: 'bell', size: 22 }) %> Przypomnienia do wysłania (≤ 6 h do terminu)
<% if (!smsStatus.enabled) { %>Automatyczny SMS jest wyłączony (brak konfiguracji FORNO_SMS_*). Zadzwoń lub napisz do gości ręcznie.
<% } else if (!tasksConfigured) { %>
Brak
<% } %>
TASKS_TOKEN — cron nie może wywołać /tasks/run. Wyślij przypomnienia ręcznie przyciskiem obok.-
<% dueReminders.forEach((r) => { %>
-
#<%= r.id %> <%= r.name %> · <%= r.phone %>
<%= fmt.people(r.people) %> · <%= fmt.money(r.amount) %> · termin <%= fmt.dateTime(r.payment_deadline) %>
<% }) %>
<%- include('partials/forno-icon', { name: 'list', size: 22 }) %> Rezerwacje (<%= reservations.length %>)
<% if (reservations.length) { %>Brak rezerwacji<%= filter !== 'all' ? ' o tym statusie' : '' %>.
<% } else { %>| # | Kod | Gość | Osoby | Kwota | Termin opłaty | Status | Akcje |
|---|---|---|---|---|---|---|---|
| <%= r.id %> | <%= r.code %> |
<%= r.name %> <%= r.phone %> <% if (r.note) { %> 💬 <%= r.note %><% } %> zgłoszono <%= fmt.dateTime(r.created_at) %> |
<%= r.people %> os. <%= fmt.tables(r.tables) %> |
<%= fmt.money(r.amount) %> |
<%= fmt.dateTime(r.payment_deadline) %>
<% if (r.reminder_sent_at) { %> SMS ✅ <%= fmt.dateTime(r.reminder_sent_at) %> <% } else if (r.reminder_result && r.reminder_result !== 'ok') { %> SMS ✖ <%= r.reminder_result %><% } %> |
<%= STATUS_LABELS[r.status] %>
<% if (r.paid_at) { %> <%= fmt.dateTime(r.paid_at) %><% } %> |
<% if (r.status === 'pending') { %>
<% } else if (r.status === 'paid') { %>
<% } else { %>
<% } %>
<%- include('partials/forno-icon', { name: 'receipt', size: 16 }) %> Paragon
<% if (r.status === 'pending') { %>
<% } %>
|
<%- include('partials/forno-icon', { name: 'settings', size: 22 }) %> Ustawienia wydarzenia
<%- include('partials/forno-icon', { name: 'image', size: 22 }) %> Logo
<% if (settings.logo_data_url) { %>
<% } else { %>
<%= settings.venue_name %>
<% } %>
<%= settings.logo_data_url ? 'Logo jest ustawione — wyświetla się na stronie rezerwacji, potwierdzeniu i paragonie.' : 'Brak logo — używany jest napis tekstowy „' + settings.venue_name + '”.' %>
<% if (settings.logo_data_url) { %> <% } %><%- include('partials/forno-icon', { name: 'wrench', size: 22 }) %> System
Zapis do GitHub
- Status
- <%= syncStatus.enabled ? 'włączony (' + syncStatus.owner + '/' + syncStatus.repo + ')' : 'wyłączony — brak GITHUB_TOKEN, dane znikną po restarcie!' %> <% if (syncStatus.lastSuccess) { %>
- Ostatni commit
- <%= syncStatus.lastSuccess %> (<%= fmt.dateTime(syncStatus.lastSuccessTime) %>) <% } %> <% if (syncStatus.lastError) { %>
- Błąd
- <%= syncStatus.lastError %> <% } %>
SMS (<%= smsStatus.provider %>)
- Status
- <%= smsStatus.enabled ? 'włączony' + (smsStatus.dryRun ? ' — DRY RUN (nie wysyła)' : '') : 'wyłączony — brak FORNO_SMS_USERNAME/PASSWORD' %>
- Wysłane
- <%= smsStatus.sentCount %> <% if (smsStatus.lastSuccess) { %>
- Ostatni
- <%= smsStatus.lastSuccess %> (<%= fmt.dateTime(smsStatus.lastSuccessTime) %>) <% } %> <% if (smsStatus.lastError) { %>
- Błąd
- <%= smsStatus.lastError %> <% } %>
Automat /tasks/run
<%= tasksConfigured ? 'TASKS_TOKEN ustawiony — cron (co 15 min) wygasza rezerwacje i wysyła SMS 6 h przed terminem.' : 'Brak TASKS_TOKEN — endpoint wyłączony. Rezerwacje wygasają przy odświeżeniu strony, SMS-y tylko ręcznie.' %>