@php $headerOption = \App\Http\Controllers\Controller::getHeaderOptions( $title ?? '', $subTitle ?? '', isset($filters) ? $filters : [], isset($advancedFilters) ? $advancedFilters : [] ); $headingOptions = [ '', ]; @endphp @extends('admin.layouts.layout', $headerOption) @section('content') @php // Ensure date variables are always defined $dateFrom = isset($dateFrom) ? $dateFrom : (request('date_from') ? request('date_from') : now()->startOfWeek()->format('Y-m-d')); $dateTo = isset($dateTo) ? $dateTo : (request('date_to') ? request('date_to') : now()->endOfWeek()->format('Y-m-d')); // Use startDate and endDate from controller if available, otherwise create them if (!isset($startDate) || !($startDate instanceof \Carbon\Carbon)) { try { $startDate = \Carbon\Carbon::parse($dateFrom); } catch (\Exception $e) { $startDate = now()->startOfWeek(); } } if (!isset($endDate) || !($endDate instanceof \Carbon\Carbon)) { try { $endDate = \Carbon\Carbon::parse($dateTo); } catch (\Exception $e) { $endDate = now()->endOfWeek(); } } @endphp

Appointments for {{ $startDate->format('F jS') }} - {{ $endDate->format('F jS') }}

@php $appointmentData = $appointmentData ?? ['dates' => [], 'boardData' => [], 'totals' => [], 'userTotals' => []]; // Always use weekDates from controller to ensure current week is always visible (weekdays only) $dates = $weekDates ?? ($appointmentData['dates'] ?? []); // Filter out weekends from appointment data dates if any if (!empty($dates)) { $filteredDates = []; foreach ($dates as $date) { try { $dateObj = \Carbon\Carbon::parse($date); $dayOfWeek = $dateObj->dayOfWeek; // 0 = Sunday, 1 = Monday, ..., 6 = Saturday // Only include weekdays (Monday = 1, Friday = 5) if ($dayOfWeek >= 1 && $dayOfWeek <= 5) { $filteredDates[] = $date; } } catch (\Exception $e) { // Skip invalid dates } } $dates = array_unique($filteredDates); sort($dates); } // If still empty, generate from dateFrom/dateTo (weekdays only) if (empty($dates) && isset($dateFrom) && isset($dateTo)) { $current = \Carbon\Carbon::parse($dateFrom); $end = \Carbon\Carbon::parse($dateTo); $dates = []; while ($current->lte($end)) { $dayOfWeek = $current->dayOfWeek; if ($dayOfWeek >= 1 && $dayOfWeek <= 5) { $dates[] = $current->format('Y-m-d'); } $current->addDay(); } } $boardData = $appointmentData['boardData'] ?? []; $totals = $appointmentData['totals'] ?? []; $userTotals = $appointmentData['userTotals'] ?? []; @endphp @foreach($dates as $date) @php $dateObj = \Carbon\Carbon::parse($date); @endphp @endforeach {{-- Header row with labels --}} @foreach($dates as $date) @endforeach {{-- User rows --}} @forelse($boardData as $userId => $userData) @foreach($dates as $date) @php $dateData = $userData['dates'][$date] ?? [ 'confirmed' => 0, 'rescheduled' => 0, 'screened' => 0, 'set' => 0 ]; @endphp @endforeach @php $userTotal = $userTotals[$userId] ?? [ 'confirmed' => 0, 'rescheduled' => 0, 'screened' => 0, 'set' => 0 ]; @endphp @empty @endforelse {{-- Totals row --}} @if(!empty($boardData)) @foreach($dates as $date) @php $dateTotal = $totals[$date] ?? [ 'confirmed' => 0, 'rescheduled' => 0, 'screened' => 0, 'set' => 0 ]; @endphp @endforeach @php $grandTotal = [ 'confirmed' => 0, 'rescheduled' => 0, 'screened' => 0, 'set' => 0 ]; foreach($totals as $dateTotal) { $grandTotal['confirmed'] += $dateTotal['confirmed'] ?? 0; $grandTotal['rescheduled'] += $dateTotal['rescheduled'] ?? 0; $grandTotal['screened'] += $dateTotal['screened'] ?? 0; $grandTotal['set'] += $dateTotal['set'] ?? 0; } @endphp @endif
User{{ $dateObj->format('l') }} {{ $dateObj->format('M j') }}Totals
Conf, Res, Seen, Set
Conf, Res, Seen, Set
{{ $userData['user_name'] ?? 'Unknown' }}
{{ $dateData['confirmed'] > 0 ? $dateData['confirmed'] : '-' }} {{ $dateData['rescheduled'] > 0 ? $dateData['rescheduled'] : '-' }} {{ $dateData['screened'] > 0 ? $dateData['screened'] : '-' }} {{ $dateData['set'] > 0 ? $dateData['set'] : '-' }}
{{ $userTotal['confirmed'] > 0 ? $userTotal['confirmed'] : '-' }} {{ $userTotal['rescheduled'] > 0 ? $userTotal['rescheduled'] : '-' }} {{ $userTotal['screened'] > 0 ? $userTotal['screened'] : '-' }} {{ $userTotal['set'] > 0 ? $userTotal['set'] : '-' }}

No appointments found for the selected date range.

Total
{{ $dateTotal['confirmed'] > 0 ? $dateTotal['confirmed'] : '-' }} {{ $dateTotal['rescheduled'] > 0 ? $dateTotal['rescheduled'] : '-' }} {{ $dateTotal['screened'] > 0 ? $dateTotal['screened'] : '-' }} {{ $dateTotal['set'] > 0 ? $dateTotal['set'] : '-' }}
{{ $grandTotal['confirmed'] > 0 ? $grandTotal['confirmed'] : '-' }} {{ $grandTotal['rescheduled'] > 0 ? $grandTotal['rescheduled'] : '-' }} {{ $grandTotal['screened'] > 0 ? $grandTotal['screened'] : '-' }} {{ $grandTotal['set'] > 0 ? $grandTotal['set'] : '-' }}
@endsection @push('page_script') @endpush