🏓 Spieltag steht an!
{{s.title}}
{{fmtDate(s.date)}}
{{s.time}}
🏟️ Nächste Trainingstage
{{td.typeIcon}} {{td.typeName}}{{td.venueName}}
{{fmtDate(td.date)}}{{td.startTime}}–{{td.endTime}}
🎯 Wichtige Termine
{{d.label}}{{fmtDate(d.date)}}
{{d.info}}
📝 Letzte Protokolle
Noch keine
{{p.title}}{{fmtDate(p.date)}}
🎂 Nächste Geburtstage
{{b.name}}🎉 Heute!in {{b.diff}} Tagen ({{b.age}})in {{b.diff}} Tagen
📢 Letzte Nachrichten
{{m.title}}{{fmtDate(m.date)}}
{{m.content}}
Sortierung:QTTRTTRName
🏓
{{playerSearch?'Kein Spieler gefunden':'Noch keine Spieler'}}
| # | Name | QTTR | TTR | Mannschaft | Status | |
| {{i+1}} | {{p.name}} 📊 |
{{p.qttr}}– |
{{getTtr(p.id)}}– |
{{getTeamName(p.teamId)||'–'}} | {{p.active!==false?'Aktiv':'Inaktiv'}} |
|
Sortierung:QTTRTTR
{{t.name}}
{{teamPlayers(t.id).length}} Spieler • Ø QTTR: {{avgQttr(t.id)||'–'}} • Ø TTR: {{avgTtr(t.id)}} • {{t.league}} • MF: {{getTeamCaptain(t.id).name}}
Keine Spieler
{{i+1}}. {{p.name}}{{p.qttr||'–'}}{{getTtr(p.id)||'–'}}{{playerDeltaStr(p)}}
Alle{{c.icon}} {{c.label}}
{{t.title}}
{{t.description}}
{{getCat(t.category)?.icon}} {{getCat(t.category)?.label}}{{getStatusLabel(t.status)}}Fällig: {{fmtDate(t.due)}}
{{protocols.length}} Protokoll{{protocols.length!==1?'e':''}}
{{p.title}}
{{fmtDate(p.date)}}
{{p.content}}
{{filteredEvents.length}} Termine
Filter:
Alle
🏛️ Vorstand
{{t.name}}
📅 Anstehend
{{eventTypes[e.type]?.icon||'📌'}} {{e.title}}
BALD!
Vorstand
{{getTeamName(e.audience)}}
{{fmtDate(e.date)}} • {{e.time}} • {{e.location}}
{{e.notes}}
Teilnahme ({{rsvpYes(e).length}} ✅ / {{rsvpNo(e).length}} ❌ / {{rsvpOpen(e).length}} offen)
{{r.status==='ja'?'✅':r.status==='nein'?'❌':'❔'}} {{r.name}}
Änderungshistorie
{{log.time}} – {{log.name}}: {{log.from}} → {{log.to}}
📁 Vergangen
{{eventTypes[e.type]?.icon||'📌'}} {{e.title}}
{{fmtDate(e.date)}}
{{calMonthName}} {{calYear}}
Halle:
Alle
{{v.name}}
{{v.name}}
Spieltag
Storniert
{{day.num}}
{{ev.label}}
+{{day.entries.length-3}} weitere
{{fmtDate(calSelectedDay.dateStr)}} – Termine
Keine Termine an diesem Tag
{{ev.label}}
Storniert
{{ev.time||''}}
📍 {{ev.venue}}
Grund: {{ev.cancelReason}}
🏟️ {{v.name}}
📍 {{v.address}}
{{trainingDatesForVenue(v.id).length}} Trainingstermine
🏋️
Noch keine Trainingsserien
{{getTrainingType(s.trainingTypeId)?.icon}} {{getTrainingType(s.trainingTypeId)?.name||'Training'}}
{{dayNames[s.dayOfWeek]}} {{s.startTime}}–{{s.endTime}} • {{getVenueName(s.venueId)}}
{{fmtDate(s.startDate)}} bis {{fmtDate(s.endDate)}}
{{seriesDatesCount(s.id)}} Termine generiert
Filter:
Alle
{{tt.icon}} {{tt.name}}
❌ Storniert
{{getTrainingType(td.trainingTypeId)?.icon}} {{getTrainingType(td.trainingTypeId)?.name}} Storniert
{{fmtDate(td.date)}} • {{td.startTime}}–{{td.endTime}} • {{getVenueName(td.venueId)}}
Grund: {{td.cancelReason}}
{{materials.length}} Einträge
{{materialCount('platten')}}
Platten
{{materialCount('netze')}}
Netze
{{materialCount('baelle')}}
Bälle (Pakete)
{{materialCount('sonstiges')}}
Sonstiges
Filter:
Alle
🏓 Platten
🥅 Netze
⚪ Bälle
📦 Sonstiges
| Material | Kategorie | Anzahl | Zustand | Standort | Notizen | |
| {{m.name}} |
{{matCatLabel(m.category)}} |
{{m.quantity}} |
{{m.condition}} |
{{getVenueName(m.venueId)||'–'}} |
{{m.notes||'–'}} |
|
{{fmtEuro(totalCashBalance)}}
Kassenbestand
−{{fmtEuro(totalTallyOpen)}}
Offene Getränke
{{totalMatchDayResult>=0?'+':''}}{{fmtEuro(totalMatchDayResult)}}
Heimspieltage
−{{fmtEuro(totalExpenses)}}
Ausgaben
−{{fmtEuro(totalFeesOpen)}}
Offene Beiträge
💶
Noch keine Kasse angelegt
💶 {{cr.name}}
{{fmtEuro(cr.balance)}}
{{tx.description}}{{fmtDate(tx.date)}}
{{tx.type==='einnahme'?'+':'−'}}{{fmtEuro(Math.abs(tx.amount))}}
Alle Getränke: 1,00 € / Stück. Strich = Getränk genommen, Saldo wird bei Bezahlung ausgeglichen.
🍺
Erst Spieler anlegen, dann erscheinen sie hier.
SpielerGetränkeSaldo
{{tp.playerName}} {{tp.teamName}}
{{tp.count}}
{{tp.balance<0?'−':''}}{{fmtEuro(Math.abs(tp.balance))}}
✓ Ausgeglichen
Gesamt offen:
−{{fmtEuro(totalTallyOpen)}}
Pro Heimspiel zahlen Erwachsenenspieler 3,00 €. Gäste bekommen ein Getränk frei; bei mehr wird um eine Spende gebeten (Spendenbox).
🏠
Noch keine Heimspieltage abgerechnet
🏠 Heimspiel {{fmtDate(md.date)}}
{{md.teamName}}
Beiträge: {{md.payingCount}} × 3 € = +{{fmtEuro(md.income)}}
Spende Gäste: +{{fmtEuro(md.guestDonation||0)}}
Getränke Spieler: −{{fmtEuro(md.playerDrinkCost)}}
Ergebnis: {{md.result>=0?'+':''}}{{fmtEuro(md.result)}}
{{md.notes}}
Gesamtergebnis Heimspieltage:
{{totalMatchDayResult>=0?'+':''}}{{fmtEuro(totalMatchDayResult)}}
Filter:
Alle
🔧 Material
🎪 Veranstaltung
🚗 Transport
📦 Sonstiges
{{rc.description}}
{{fmtEuro(rc.amount)}}
{{fmtDate(rc.date)}} • {{rc.vendor}}
{{rcCatLabel(rc.category)}}
Mitgliedsbeiträge pro Spieler und Jahr tracken.
Gesamt offen: −{{fmtEuro(totalFeesOpen)}}
Gesamt bezahlt: +{{fmtEuro(totalFeesPaid)}}
{{players.find(p=>p.id===f.playerId)?.name||'(gelöschter Spieler)'}}
{{f.year}} • {{fmtEuro(f.amount)}}
{{f.paid?'✓ Bezahlt':'Offen'}}{{fmtDate(f.paidDate)}}
{{messages.length}} Nachricht{{messages.length!==1?'en':''}}
{{m.title}}
Vorstand
{{getTeamName(m.audience)}}
{{fmtDate(m.date)}}
{{m.content}}
{{players.length}} Kontakte
🎂 Nächste Geburtstage
{{b.name}}{{fmtDate(b.date)}}wird {{b.age}} 🎉 Heute!in {{b.diff}} Tagenin {{b.diff}} Tagen
👔 Mannschaftsführer
{{t.name}}{{getTeamCaptain(t.id).name}}–📞📧
| Name | Team | 📞 Telefon | 📧 E-Mail | 🎂 Geburtstag | 📍 Adresse |
| {{p.name}} | {{getTeamName(p.teamId)||'–'}} |
{{p.phone}}– |
{{p.email}}– |
{{p.birthday?fmtDate(p.birthday):'–'}} |
{{p.address||'–'}} |
{{documents.length}} Dokument{{documents.length!==1?'e':''}}
Filter:
Alle
📋 Satzung
✍️ Vertrag
⚖️ Ordnung
📝 Protokoll
📦 Sonstiges
{{d.title}}
{{docCatLabel(d.category)}}
{{d.description}}
{{fmtDate(d.createdAt)}}