{{-- ════════════════════════════════════════════════════════════════════════ ONGLET 3 — FINANCE Dashboard financier premium — CSS complet + upgrade glassmorphism, micro-interactions, pulsing indicators, motion design. ═════════════════════════════════════════════════════════════════════════ --}} @php if (!function_exists('trendPct')) { function trendPct($current, $prev): ?float { if ($prev == 0) return null; return round(($current - $prev) / $prev * 100, 1); } } $revTrend = trendPct($finance['mRevenue'], $finance['pRevenue']); $expTrend = trendPct($finance['mExpenses'], $finance['pExpenses']); $pftTrend = trendPct($finance['mProfit'], $finance['pProfit']); $mMargin = $finance['mRevenue'] > 0 ? round($finance['mProfit'] / $finance['mRevenue'] * 100, 1) : 0; $totalRevenue = $finance['totalRevenue']; $totalExpenses = $finance['totalExpenses']; $netProfit = $finance['netProfit']; $marginPct = $finance['marginPct']; $expenseRatio = $finance['expenseRatio']; $mRevenue = $finance['mRevenue']; $mExpenses = $finance['mExpenses']; $mProfit = $finance['mProfit']; $pRevenue = $finance['pRevenue']; $pExpenses = $finance['pExpenses']; $pProfit = $finance['pProfit']; $totalRes = $finance['totalRes']; $mRes = $finance['mRes']; $recentPayments = $finance['recentPayments']; $catLabels = $finance['catLabels']; $catValues = $finance['catValues']; @endphp
{{-- ── KPI MAIN (3 cards, all-time) ──────────────────────────────────── --}}

Revenus Total

{{ number_format($totalRevenue, 0, '.', ' ') }}

TND (hors annulées)
💰
@if($revTrend !== null) {{ $revTrend >= 0 ? '↑' : '↓' }} {{ abs($revTrend) }}% vs mois dernier @else Nouveau @endif

Dépenses Totales

{{ number_format($totalExpenses, 0, '.', ' ') }}

TND
💸
@if($expTrend !== null) {{ $expTrend >= 0 ? '↑' : '↓' }} {{ abs($expTrend) }}% vs mois dernier @else Nouveau @endif

Bénéfice Net

{{ $netProfit >= 0 ? '+' : '' }}{{ number_format($netProfit, 0, '.', ' ') }}

TND
📈
@if($pftTrend !== null) {{ $pftTrend >= 0 ? '↑' : '↓' }} {{ abs($pftTrend) }}% vs mois dernier @else Nouveau @endif
{{-- ── KPI MONTHLY (4 cards) ──────────────────────────────────────────── --}}

Revenus — {{ now()->format('M Y') }}

{{ number_format($mRevenue, 0, '.', ' ') }}

TND
📅
@if($pRevenue > 0)
vs {{ now()->subMonth()->format('M') }} : {{ number_format($pRevenue, 0, '.', ' ') }} TND
@endif

Dépenses — {{ now()->format('M Y') }}

{{ number_format($mExpenses, 0, '.', ' ') }}

TND
🧾
@if($pExpenses > 0)
vs {{ now()->subMonth()->format('M') }} : {{ number_format($pExpenses, 0, '.', ' ') }} TND
@endif

Marge Bénéficiaire

{{ $mMargin }}

% ce mois
🎯
Marge globale : {{ $marginPct }}%

Réservations

{{ $totalRes }}

total actives
📅
Ce mois : {{ $mRes }} nouvelles  ·  Taux dépenses : {{ $expenseRatio }}%
{{-- ── CHARTS ROW ──────────────────────────────────────────────────────── --}}
📊 Évolution sur 12 Mois
● Revenus ● Dépenses ● Bénéfice
🍩 Dépenses / Catégorie
{{ number_format($totalExpenses, 0, '.', ' ') }}
TND Total
{{-- ── BOTTOM ROW ──────────────────────────────────────────────────────── --}}
💳 Derniers Paiements
Voir tout →
@forelse($recentPayments as $p) @empty @endforelse
Guest Montant Mode Date
{{ strtoupper(substr($p['guest'], 0, 1)) }}
{{ $p['guest'] }}
{{ number_format($p['amount'], 3, '.', ' ') }} TND {{ $p['method'] === 'cash' ? 'Espèces' : ($p['method'] === 'card' ? 'Carte' : ($p['method'] === 'transfer' ? 'Virement' : 'Autre')) }} {{ $p['date'] }}
Aucun paiement enregistré.
📋 Résumé
💰 Revenus total {{ number_format($totalRevenue, 0, '.', ' ') }} TND
💸 Dépenses total {{ number_format($totalExpenses, 0, '.', ' ') }} TND
📈 Bénéfice net {{ number_format($netProfit, 0, '.', ' ') }} TND
🎯 Marge bénéf. {{ $marginPct }}%
📊 Taux dépenses {{ $expenseRatio }}%
📅 Réservations {{ $totalRes }}
Revenus Dépenses
@php $revPct = $totalRevenue + $totalExpenses > 0 ? round($totalRevenue / ($totalRevenue + $totalExpenses) * 100) : 50; @endphp
{{ $revPct }}% {{ 100 - $revPct }}%
{{-- /an-wrap --}} {{-- ── Chart.js (chargé une seule fois) ───────────────────────────────── --}}