Abo-Uebersichten: Team-Ansicht konsolidiert, Monatsfilter, Wachstum & Dashboard-KPIs

- /user/abos/ot: Filter nach Eingangsmonat (start_date) ueber neuen UserAbo-Scope
- Konsolidierte Team-Abo-Ansicht nach Ebenen/Linien (Bestand, neue Abos im Monat,
  Eigen-/Kundenabos, Punkte je Ebene + Summen) via TeamAboOverviewService
- team/customers leitet auf konsolidierte Ansicht um; Navigation bereinigt
- Mitglieder-Detail-Modal mit Abo-Zusammenfassung (Eigen-Abo, Kundenabos,
  Punkte, Beginn, naechste Ausfuehrung, Ausfuehrungen)
- Wachstums-Tabelle (Jahr x Monate) + Liniendiagramm (neue Eigen-/Kundenabos)
- Dashboard-KPI-Kachel (Gesamtabos, Kundenabos, 1000-Punkte-Shops)
- i18n de/en/es/fr, Tests (Filter, Overview, Wachstum, Modal, Redirect)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Kevin 2026-06-23 14:07:29 +00:00
parent 65b867f8ee
commit 4135726772
15 changed files with 967 additions and 174 deletions

View file

@ -219,6 +219,7 @@ return [
'new_own_abos' => 'Neue Eigen-Abos',
'new_customer_abos' => 'Neue Kunden-Abos',
'new_total' => 'Neu gesamt',
'growth_note' => 'Zählt aktive Abos nach Eingangsjahr (start_date). Der Gesamtbestand oben kann höher sein, da er auch noch aktive Abos aus Vorjahren enthält.',
'filter' => 'Filtern',
'reset' => 'Zurücksetzen',
'filter_added_period' => 'Hinzugekommen im Zeitraum:',

View file

@ -220,6 +220,7 @@ return [
'new_own_abos' => 'New own subscriptions',
'new_customer_abos' => 'New customer subscriptions',
'new_total' => 'New total',
'growth_note' => 'Counts active subscriptions by their start year (start_date). The total stock above can be higher because it also includes still-active subscriptions from previous years.',
'filter' => 'Filter',
'reset' => 'Reset',
'filter_added_period' => 'Added during period:',

View file

@ -193,6 +193,7 @@ return [
'new_own_abos' => 'Nuevas suscripciones propias',
'new_customer_abos' => 'Nuevas suscripciones de clientes',
'new_total' => 'Nuevas en total',
'growth_note' => 'Cuenta las suscripciones activas por su año de inicio (start_date). El total de arriba puede ser mayor porque también incluye suscripciones aún activas de años anteriores.',
'filter' => 'Filtrar',
'reset' => 'Restablecer',
'filter_added_period' => 'Añadido en el período:',

View file

@ -192,6 +192,7 @@ return [
'new_own_abos' => 'Nouveaux abonnements propres',
'new_customer_abos' => 'Nouveaux abonnements clients',
'new_total' => 'Nouveaux au total',
'growth_note' => 'Compte les abonnements actifs selon leur année de début (start_date). Le stock total ci-dessus peut être plus élevé, car il inclut aussi des abonnements encore actifs des années précédentes.',
'filter' => 'Filtrer',
'reset' => 'Réinitialiser',
'filter_added_period' => 'Ajouté durant la période :',