@extends('adminlte::page') @section('title', 'Reporte de Reservas') @section('content_header')

Reporte de Reservas

@stop @section('content')

Filtros del Reporte

@if(request()->hasAny(['cancha_id', 'fecha_desde', 'fecha_hasta', 'estado', 'cliente'])) @php $query = Reserva::with(['cancha', 'cliente', 'usuario']); if (request('cancha_id')) { $query->where('cancha_id', request('cancha_id')); } if (request('fecha_desde')) { $query->where('fecha', '>=', request('fecha_desde')); } if (request('fecha_hasta')) { $query->where('fecha', '<=', request('fecha_hasta')); } if (request('estado')) { $query->where('estado', request('estado')); } if (request('cliente')) { $query->whereHas('cliente', function($q) { $q->where('nombre', 'like', '%' . request('cliente') . '%'); }); } $reservas = $query->orderBy('fecha', 'desc') ->orderBy('hora_inicio') ->get(); @endphp

Resultados del Reporte

{{ $reservas->count() }} reserva(s) encontrada(s)
@if($reservas->count() > 0)
@foreach($reservas as $reserva) @php $horaInicio = \Carbon\Carbon::parse($reserva->hora_inicio); $horaFin = \Carbon\Carbon::parse($reserva->hora_fin); if ($horaFin->lt($horaInicio)) { $horaFin->addDay(); } $duracion = $horaInicio->diffInHours($horaFin); @endphp @endforeach
# Fecha Horario Cancha Cliente Teléfono Estado Duración
{{ $reserva->id }} {{ $reserva->fecha->format('d/m/Y') }} {{ $reserva->hora_inicio }} - {{ $reserva->hora_fin }} {{ $reserva->cancha->nombre }} {{ $reserva->cliente->nombre }} {{ $reserva->cliente->telefono }} @if($reserva->estado == 'confirmada') Confirmada @elseif($reserva->estado == 'pendiente') Pendiente @elseif($reserva->estado == 'cancelada') Cancelada @else Completada @endif {{ $duracion }} hr(s)
@else
No se encontraron reservas con los filtros seleccionados.
@endif
@else

Selecciona los filtros y haz clic en "Generar Reporte" para ver los resultados

Puedes filtrar por cancha, rango de fechas, estado y cliente.

@endif @stop @section('js') @stop