Rechnung/Lieferschein: - PDF-Gruppierung Abo- vs. Einmal-Artikel (is_abo_addon), rueckwaertskompatibel - Vorschau-Command sales:preview-invoice (umgeht Test-System-Gate, ohne Rechnungsnummer) Reminder-Mail (vorbereitet, Cron inaktiv): - MailAboExecutionReminder + Template, abo:send-execution-reminder, Spalte onetime_reminder_sent_for - Berater -> Sales Center, Kunde -> Portal; Vorschau abo:preview-reminder - Datum-Fix: formatDateDB() statt formatDate() (ICU-Format) Sperrfristen konfigurierbar (Admin-Settings): - abo-lock-days-change (Liefertag + Abo-Produkte), abo-lock-days-pause-cancel - Meldungen mit :lock-Platzhalter; Pausieren/Kuendigen vom Change-Lock entkoppelt - Abo-Produkt-Aenderungen im Lock-Fenster server- + clientseitig eingefroren - Selbstbedienung: Add-only/Lock nach $view (kein Admin-Bypass), Stale-Cache-Fix beim Mengen-Update Dashboard: - Einmalprodukte-Card + Team-Abo-KPI-Card, News-Card responsiv (col-xl-6) Lokalisierung: - Sprachdateien en/es/fr vollstaendig mit de synchronisiert (inkl. marketingplan/portal) - LocalizationSyncTest sichert Key-Gleichheit ab Tests: AboOneTimeInvoiceGrouping, AboExecutionReminder, AboLockDaysSetting, AboOnetimeDashboardAndMail, PreviewInvoiceCommand, TeamAboOverview + erweiterte View-Tests Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.8 KiB
PHP
33 lines
1.8 KiB
PHP
@if (!empty($teamAboKpis) && ($teamAboKpis['team_total_abos'] > 0 || $teamAboKpis['shop_1000'] > 0))
|
|
<div class="col-xl-6">
|
|
<div class="card mb-4">
|
|
<h5 class="card-header with-elements border-bottom">
|
|
<div class="card-header-title">
|
|
<i class="ion ion-md-refresh-circle text-primary mr-1"></i> {{ __('abo.team_subscriptions') }}
|
|
</div>
|
|
</h5>
|
|
<div class="card-body">
|
|
<div class="row text-center">
|
|
<div class="col-4">
|
|
<a href="{{ route('user_abos_team_show') }}" class="text-decoration-none">
|
|
<div class="display-4 font-weight-bold text-primary">{{ $teamAboKpis['team_total_abos'] }}</div>
|
|
<div class="text-muted small">{{ __('abo.team_total_abos') }}</div>
|
|
</a>
|
|
</div>
|
|
<div class="col-4">
|
|
<a href="{{ route('user_abos_team_show') }}" class="text-decoration-none">
|
|
<div class="display-4 font-weight-bold">{{ $teamAboKpis['team_customer_abos'] }}</div>
|
|
<div class="text-muted small">{{ __('abo.team_customer_abos') }}</div>
|
|
</a>
|
|
</div>
|
|
<div class="col-4">
|
|
<a href="{{ route('user_abos_team_show') }}" class="text-decoration-none">
|
|
<div class="display-4 font-weight-bold text-success">{{ $teamAboKpis['shop_1000'] }}</div>
|
|
<div class="text-muted small">{{ __('abo.shop_1000') }}</div>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|