{{-- ═══════════════════════════════════════════════════════════════ ONGLET OCCUPATION — Premium Edition Chart.js line + bar + donut statuts + counters animés ═══════════════════════════════════════════════════════════════ --}}
{{-- ── KPIs ──────────────────────────────────────────────────────── --}}
🏨
Taux d'Occupation
0%
Nuits vendues / capacité × 365 j
Lead Time
0j
Délai moyen réservation → arrivée @if($data['kpis']['lead_time'] < 0)
⚠ Valeur négative = données seed @endif
🌙
Nuits / Réservation
0
Durée moyenne d'une réservation
Taux d'Annulation
0%
Réservations annulées / total
{{-- ── GAUGE OCCUPANCY ────────────────────────────────────────────── --}}
{{ $data['kpis']['occupancy_rate'] }}%
Occupation
Taux d'occupation global
Mesure le pourcentage de nuits-personnes effectivement vendues par rapport à la capacité théorique maximale sur 365 jours. Un taux de 70–80% est considéré comme excellent dans le secteur.
Nuits vendues ÷ (Capacité × 365) × 100
{{-- ── ROW 1 : Performance par type + Statuts ─────────────────────── --}}
{{-- Unit type table --}}
Performance par type d'unité
Volume, revenue et prix moyen par catégorie
@if(count($data['by_unit_type']) > 0) @foreach($data['by_unit_type'] as $row) @endforeach
Type Résas Revenue Moy. TND
{{ $row['label'] }} {{ number_format($row['count'], 0, '.', ' ') }} {{ number_format($row['revenue'], 0, '.', ' ') }} {{ number_format($row['avg_price'], 1, ',', ' ') }}
@else
Aucune donnée disponible
@endif
{{-- Status donut --}}
Statuts des réservations
Distribution sur l'ensemble de la période
@if(count($data['status_split']) > 0) @php $totalStatus = array_sum(array_column($data['status_split'], 'count')); @endphp {{ $totalStatus }} total @endif
@if(count($data['status_split']) > 0)
@else
Aucune donnée disponible
@endif
{{-- ── ROW 2 : Ligne tendance + Bars mensuels ──────────────────────── --}}
{{-- Line chart --}}
Tendance mensuelle
Personnes hébergées — évolution sur la période
@if(count($data['monthly_trend']) > 0)
@else
Aucune donnée mensuelle disponible
@endif
{{-- Bar list --}}
Détail par mois
Nombre de personnes hébergées
@if(count($data['monthly_trend']) > 0) @php $maxM = max(array_column($data['monthly_trend'], 'person_count')) ?: 1; @endphp
@foreach($data['monthly_trend'] as $row)
{{ \Carbon\Carbon::parse($row['month'] . '-01')->translatedFormat('M Y') }} {{ $row['person_count'] }} pers.
@endforeach
@else
Aucune donnée disponible
@endif
{{-- /occ-wrap --}}