{{-- Admin: Open & Outstanding Tasks Report --}} @extends('layouts.app') @section('title', 'Open & Outstanding Tasks') @push('styles') @endpush @section('content')

Open & Outstanding Tasks

Admin report · all incomplete tasks across the business

↓ CSV
{{-- Stats Row --}}
Open Tasks
{{ $openCount }}
To Do + In Progress
Outstanding (overdue)
{{ $outstandingCount }}
@if($openCount > 0 && $outstandingCount === $openCount) all open tasks are past due @else past their due date @endif
Oldest Overdue
@if($oldestOverdue)
{{ $oldestOverdue->daysOverdue() }}d
{{ Str::limit($oldestOverdue->title, 28) }} @if($oldestOverdue->job) · {{ $oldestOverdue->job->job_number ?? '' }} @endif
@else
@endif
Most Loaded
@if($mostLoaded)
{{ $mostLoaded->assignee->name }}
{{ $mostLoaded->cnt }} outstanding
@else
@endif
{{-- Filters --}}
Outstanding only ● All open
{{-- Grouped by Assignee --}} @forelse($grouped as $assigneeId => $assigneeTasks) @php $assignee = $assigneeTasks->first()->assignee; @endphp
{{ strtoupper(substr($assignee->name,0,1)) }}{{ strtoupper(substr(explode(' ',$assignee->name)[1]??'',0,1)) }} {{ $assignee->name }} {{ $assigneeTasks->count() }} outstanding
@foreach($assigneeTasks as $task) @endforeach
Task Linked Job Priority Due
{{ $task->title }} @if($task->job) {{ $task->job->job_number ?? 'J-'.$task->job->id }} · {{ $task->job->client_name ?? '' }} @else @endif {{ $task->priorityLabel() }} @if($task->due_date) {{ $task->due_date->format('d M Y') }} @if($task->isOverdue()) · {{ $task->daysOverdue() }}d late @endif @else — @endif
@empty

No outstanding tasks. Great work!

@endforelse
@endsection