@extends('layouts.admin') @section('title', 'Relatório de Ocupação') @section('breadcrumb') Relatórios / Ocupação @endsection @push('styles') @endpush @section('content') {{-- Nav + Exportar --}}
🏠 Relatórios 📈 Receitas 🛏 Ocupação 📋 Transações 💰 Caixa
Ocupação PDF Hóspedes PDF
{{-- Filtro --}}
Mês Atual
{{-- KPIs --}}
Ocupação Média
{{ $avgOccupancy }}%
do período
UHs Disponíveis
{{ $totalRooms }}
quartos ativos
Check-ins
{{ $totalCheckins }}
no período
Check-outs
{{ $totalCheckouts }}
no período
{{-- Legenda --}}
Legenda: 0% 1-33% 34-66% 67-99% 100%
{{-- Calendário de Ocupação --}}
🗓 Heatmap de Ocupação Diária — {{ \Carbon\Carbon::parse($from)->format('d/m/Y') }} a {{ \Carbon\Carbon::parse($to)->format('d/m/Y') }}
{{-- Headers S-D --}} @php $firstDate = \Carbon\Carbon::parse($from); $startDow = $firstDate->dayOfWeek; // 0=Sun $dowLabels = ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb']; @endphp
@foreach($dowLabels as $dl)
{{ $dl }}
@endforeach
{{-- Espaços vazios para alinhar o primeiro dia --}} @for($i = 0; $i < $startDow; $i++)
@endfor @foreach($days as $date => $info) @php $rate = $info['rate']; if($rate === 0) $cls = 'occ-0'; elseif($rate <= 33) $cls = 'occ-low'; elseif($rate <= 66) $cls = 'occ-mid'; elseif($rate < 100) $cls = 'occ-high'; else $cls = 'occ-full'; $isToday = $date === now()->toDateString(); @endphp
{{ \Carbon\Carbon::parse($date)->day }}
{{ $rate }}%
@endforeach
{{-- Tabela de dias --}}
Detalhamento por Dia
@foreach($days as $date => $info) @php $pct = $info['rate']; $barColor = $pct === 0 ? '#e5e7eb' : ($pct <= 33 ? '#93c5fd' : ($pct <= 66 ? '#fcd34d' : ($pct < 100 ? '#f87171' : '#dc2626'))); @endphp @endforeach
Data Dia Ocupadas Disponíveis Taxa Visual
{{ \Carbon\Carbon::parse($date)->format('d/m/Y') }} {{ \Carbon\Carbon::parse($date)->locale('pt_BR')->isoFormat('ddd') }} {{ $info['occupied'] }} {{ $totalRooms }} {{ $pct }}%
@endsection