💶 Abrechnung

<% if (success) { %>
<%= success %>
<% } %> <% if (error) { %>
<%= error %>
<% } %>

<%= periodLabel %>

<%= summary.total || 0 %>
Rechnungen gesamt
<%= summary.open_count || 0 %>
Offen
<%= summary.paid_count || 0 %>
Bezahlt
<%= summary.total_amount ? Number(summary.total_amount).toFixed(2).replace('.', ',') + ' €' : '0,00 €' %>
Gesamtbetrag
<%= summary.open_amount ? Number(summary.open_amount).toFixed(2).replace('.', ',') + ' €' : '0,00 €' %>
Noch offen
<%= summary.paid_amount ? Number(summary.paid_amount).toFixed(2).replace('.', ',') + ' €' : '0,00 €' %>
Bereits bezahlt
<% if (invoices.length === 0) { %>
Bereit für Abrechnungslauf <%= periodLabel %> <%= eligible.length %> Mitglieder · Voraussichtlich <%= Number(preview_total).toFixed(2).replace('.', ',') %> €
<% } else { %>
📥 SEPA CSV exportieren <% if (summary.open_count > 0) { %>
<% } %>
<% } %>
<% if (invoices.length > 0) { %>
<% invoices.forEach(inv => { %> <% }) %>
Nr. Mitglied Tarif Betrag IBAN Status Aktionen
PF24-<%= String(inv.id).padStart(6, '0') %> <%= inv.last_name %>, <%= inv.first_name %>
<%= inv.email %>
<%= inv.tariff_name || '–' %> <%= Number(inv.amount).toFixed(2).replace('.', ',') %> € <%= inv.iban ? inv.iban.replace(/(.{4})/g, '$1 ').trim() : '–' %> <%= inv.status === 'paid' ? '✅ Bezahlt' : inv.status === 'open' ? '🔴 Offen' : '❌ Storniert' %> <% if (inv.paid_at) { %>
<%= new Date(inv.paid_at).toLocaleDateString('de-DE') %> <% } %>
<% if (inv.status !== 'cancelled') { %> 📄 Rechnung <% } else { %> 🚫 Storno-PDF
<% } %> <% if (inv.status === 'open') { %>
<% } %> <% if (inv.status !== 'cancelled') { %>
<% } %>
<% } else if (eligible.length > 0) { %>

Vorschau – wird abgerechnet

<% eligible.forEach(m => { %> <% }) %>
Mitglied Tarif Voraussichtlicher Betrag
<%= m.last_name %>, <%= m.first_name %> <%= m.tariff_name %> <%= Number(m.agreed_price || m.price_monthly).toFixed(2).replace('.', ',') %> € <% if (m.agreed_price && Number(m.agreed_price) !== Number(m.price_monthly)) { %>
Tarif: <%= Number(m.price_monthly).toFixed(2).replace('.', ',') %> € <% } %>
<% } else { %>
Keine Mitglieder für diesen Zeitraum.
<% } %> <% if (runs.length > 0) { %>

Letzte Abrechnungsläufe

<% runs.forEach(run => { %> <% }) %>
Periode Datum Rechnungen Gesamtbetrag Erstellt von Aktion
<%= run.period %> <%= new Date(run.created_at).toLocaleDateString('de-DE') %> <%= run.invoice_count %> <%= Number(run.total_amount).toFixed(2).replace('.', ',') %> € <%= run.created_by || '–' %>
<% } %>