@php $publicUrl = static function (?string $path): ?string { if (!$path) return null; if (\Illuminate\Support\Str::startsWith($path, ['http://', 'https://', '/'])) return $path; return \Illuminate\Support\Facades\Storage::disk('public')->url($path); }; $pet = $workItem->pet; $statusClass = match($workItem->status) { 'finished' => 'bg-emerald-100 text-emerald-800', 'in_progress' => 'bg-amber-100 text-amber-800', default => 'bg-blue-100 text-blue-800', }; @endphp
@if($publicUrl($pet->photo)) {{ $pet->name }} @else {{ strtoupper(substr($pet->name, 0, 1)) }} @endif
← Back to work queue

{{ $pet->name }}

{{ str($workItem->status)->headline() }}

{{ $workItem->service->name }} · {{ $workItem->service_line_label }}

{{ $workItem->appointment->appointment_number }} · Checked in {{ $workItem->check_in_at?->format('d M Y · H:i') }} · Assigned to {{ $workItem->assignedStaff?->name ?? 'Unassigned' }}

Reception check-in remark

{{ $workItem->check_in_remark ?: 'No check-in remark was entered.' }}

@if(session('status'))
{{ session('status') }}
@endif @if($errors->any())
    @foreach($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif

Current service

Service action & live evidence

@if($workItem->started_at)

Started: {{ $workItem->started_at->format('d M Y · H:i') }}

@endif @if($workItem->finished_at)

Finished: {{ $workItem->finished_at->format('d M Y · H:i') }}

@endif
@if($canPerformWork && in_array($workItem->status, ['checked_in', 'paused']))
@csrf
service_line === 'in-store-grooming') class="mt-1.5 block w-full rounded-xl border border-blue-200 bg-white px-3 py-2.5 text-xs">

On a phone or tablet this opens the camera for a current service photo. Maximum 5 MB.

@elseif($canPerformWork && $workItem->status === 'in_progress')
@csrf
service_line === 'in-store-grooming') class="mt-1.5 block w-full rounded-xl border border-emerald-200 bg-white px-3 py-2.5 text-xs">

The report becomes visible to reception as soon as this service is finished.

@elseif($workItem->status === 'finished')

Final service summary

{{ $workItem->completion_summary }}

@elseif(!$canPerformWork)
You can monitor this service and review its report. Only the assigned care professional or a manager can start and finish it.
@endif @if($workItem->start_remark || $workItem->before_photo_path || $workItem->after_photo_path)

Start record

{{ $workItem->start_remark ?: 'No start remark.' }}

@if($workItem->before_photo_path) Before service photo @endif

Finish record

{{ $workItem->completion_summary ?: 'Service is not finished yet.' }}

@if($workItem->after_photo_path) After service photo @endif
@endif

Complete appointment service history

Every appointment service recorded for {{ $pet->name }}, including work remarks and photos.

{{ $appointmentHistory->count() }} services
@forelse($appointmentHistory as $historyItem) @php $historyWork = $historyItem->workItem; @endphp

{{ $historyItem->service?->name ?? 'Pet service' }}

{{ $historyItem->appointment?->scheduled_date?->format('d M Y') }} · {{ $historyItem->appointment?->appointment_number }} · {{ $historyItem->staff?->name ?? $historyWork?->assignedStaff?->name ?? 'Unassigned' }}

{{ $historyWork ? str($historyWork->status)->headline() : str($historyItem->appointment?->status)->headline() }}

AED {{ number_format($historyItem->total_price, 2) }}

@if($historyItem->package || $historyItem->addons->isNotEmpty())

@if($historyItem->package)Package: {{ $historyItem->package->name }}@endif @if($historyItem->addons->isNotEmpty()) Add-ons: {{ $historyItem->addons->pluck('name')->join(', ') }}@endif

@endif @if($historyWork)
Start: {{ $historyWork->start_remark ?: 'No start remark recorded.' }} @if($historyWork->before_photo_path)View before photo →@endif
Result: {{ $historyWork->completion_summary ?: 'Service has not been finished.' }} @if($historyWork->after_photo_path)View after photo →@endif
@if(($canViewAll || $historyWork->assigned_staff_id === Auth::id()) && $historyWork->id !== $workItem->id) Open service report → @endif @endif
@empty

No appointment services have been recorded for this pet.

@endforelse

Previous ERP service orders

Legacy grooming, veterinary, taxi, boarding, daycare, and home-care records.

{{ $legacyServiceOrders->count() }} orders
@forelse($legacyServiceOrders as $order)

{{ $order->booking_number }}

{{ $order->service_label }}

{{ $order->scheduled_start?->format('d M Y · H:i') }} · {{ $order->assignedStaff?->name ?? 'Unassigned' }}

{{ str($order->status)->headline() }}

AED {{ number_format($order->total_amount, 2) }}

@if($order->notes)

Booking note: {{ $order->notes }}

@endif @if($order->careLogs->isNotEmpty())
@foreach($order->careLogs as $log)
{{ str($log->care_type)->headline() }}{{ $log->performed_at?->format('d M Y · H:i') }}

{{ $log->notes ?: 'Activity completed.' }}

{{ $log->staff?->name ?? 'System' }}

@if($log->photo_paths)
@foreach($log->photo_paths as $path)View photo@endforeach
@endif
@endforeach
@endif
@empty

No legacy service orders exist for this pet.

@endforelse