@extends('layouts.admin') @section('title', 'Reporte de Reservas de Canchas') @section('content')

Reporte de Reservas de Canchas

Filtros de Búsqueda

Total Reservas

{{ $totalReservas }}

Período seleccionado

Confirmadas

{{ $reservasConfirmadas }}

{{ $totalReservas > 0 ? round(($reservasConfirmadas / $totalReservas) * 100, 1) : 0 }}% del total

Pendientes

{{ $reservasPendientes }}

{{ $totalReservas > 0 ? round(($reservasPendientes / $totalReservas) * 100, 1) : 0 }}% del total

Canceladas

{{ $reservasCanceladas }}

{{ $totalReservas > 0 ? round(($reservasCanceladas / $totalReservas) * 100, 1) : 0 }}% del total

Evolución de Reservas por Día

Distribución por Estado

Reservas por Hora del Día

Reservas por Día de la Semana

Top 10 Canchas Más Reservadas

@forelse($topCanchas as $index => $cancha) @empty @endforelse
# Cancha Categoría Reservas Tasa Ocupación
@if($index == 0) @elseif($index == 1) @elseif($index == 2) @else {{ $index + 1 }} @endif
@if($cancha->imagen_principal) Cancha @else
@endif
{{ $cancha->nombre }}
{{ $cancha->categoria->nombre }} {{ $cancha->total_reservas }}
{{ number_format($cancha->tasa_ocupacion, 1) }}%
No hay datos disponibles

Top 10 Usuarios Más Activos

@forelse($topUsuarios as $index => $usuario) @empty @endforelse
# Usuario Reservas Total Gastado Promedio
@if($index == 0) @elseif($index == 1) @elseif($index == 2) @else {{ $index + 1 }} @endif
{{ strtoupper(substr($usuario->name, 0, 1)) }}
{{ $usuario->name }}

{{ $usuario->email }}

{{ $usuario->total_reservas }} {{ $simboloMoneda }}{{ number_format($usuario->total_gastado, 2) }} {{ $simboloMoneda }}{{ number_format($usuario->total_reservas > 0 ? $usuario->total_gastado / $usuario->total_reservas : 0, 2) }}
No hay datos disponibles

Detalle de Reservas

@forelse($reservas as $reserva) @empty @endforelse
ID Usuario Cancha Fecha Hora Inicio Hora Fin Duración Estado Precio Método Pago Fecha Reserva
{{ $reserva->id }}
{{ strtoupper(substr($reserva->usuario->name, 0, 1)) }}
{{ $reserva->usuario->name }}

{{ $reserva->usuario->email }}

@if($reserva->cancha->imagen_principal) Cancha @else
@endif
{{ $reserva->cancha->nombre }}

{{ $reserva->cancha->categoria->nombre }}

{{ \Carbon\Carbon::parse($reserva->fecha)->format('d/m/Y') }} {{ \Carbon\Carbon::parse($reserva->hora_inicio)->format('H:i') }} {{ \Carbon\Carbon::parse($reserva->hora_fin)->format('H:i') }} @php $inicio = \Carbon\Carbon::parse($reserva->hora_inicio); $fin = \Carbon\Carbon::parse($reserva->hora_fin); $duracion = $fin->diffInHours($inicio); @endphp {{ $duracion }}h @if($reserva->estado == 'confirmada') Confirmada @elseif($reserva->estado == 'pendiente') Pendiente @elseif($reserva->estado == 'cancelada') Cancelada @elseif($reserva->estado == 'completada') Completada @else {{ ucfirst($reserva->estado) }} @endif {{ $simboloMoneda }}{{ number_format($reserva->precio_total, 2) }} @if($reserva->pago) {{ $reserva->pago->metodoPago->nombre ?? 'N/A' }} @else Sin pago @endif {{ $reserva->created_at->format('d/m/Y H:i') }}
No hay reservas disponibles
{{ $reservas->appends(request()->query())->links() }}
@endsection @section('scripts') @endsection