{{-- Supervision Summary (CSO analysis 18 & 20): CS 1–CS 7 / PR forms, breaches, warrants, assessments, tools and other documents in one place --}} @php $allTypes = config('probation.report_types') + config('probation.report_types_supervision', []); $formCodes = ['cs1', 'cs2', 'cs3', 'cs4', 'cs5', 'cs6', 'cs7', 'csb', 'csc', 'csd', 'cse', 'pr9', 'summary_progress', 'cso_monthly_progress', 'progress']; $forms = $case->reports->filter(fn ($r) => in_array($r->report_type, $formCodes, true))->sortBy('report_type'); $otherReports = $case->reports->reject(fn ($r) => in_array($r->report_type, $formCodes, true)); $docTypes = \App\Http\Controllers\ProbationAssessmentController::documentTypes(); $notes = $case->supervisionOrders->flatMap->notes; $lastNote = $notes->sortByDesc('reported_on')->first(); $first = $case->supervisionOrders->sortBy('start_date')->first(); $last = $case->supervisionOrders->sortByDesc('id')->first(); $risk = $case->assessments->sortByDesc('id')->first(); @endphp
Supervision summary
Order
{{ optional(optional($first)->start_date)->format('d M Y') ?? '—' }} – {{ optional(optional($last)->extension_to ?? optional($last)->end_date)->format('d M Y') ?? '—' }} @if($case->is_voluntary)
Voluntary
@endif
Reporting (PR 2A)
{{ $notes->count() }} record(s)@if($lastNote) · last {{ optional($lastNote->reported_on)->format('d M Y') }}@endif
Risk
{{ optional($risk)->risk_level ?? 'Not assessed' }} @if($risk)({{ $risk->tool }})@endif · Intensity {{ $case->intensity ? ucfirst($case->intensity) : '—' }}
Breaches / warrants
{{ $case->breaches->count() }} / {{ $case->breaches->whereNotNull('warrant_applied_on')->count() }}
ItemDetails
CS / PR forms & progress reports @forelse($forms as $r)
{{ $allTypes[$r->report_type] ?? $r->report_type }} · {{ $r->created_at->format('d M Y') }} · {{ $r->status }}
@emptyNone yet — start them in the Reports tab.@endforelse
Other reports @forelse($otherReports as $r)
{{ $allTypes[$r->report_type] ?? $r->report_type }} · {{ $r->created_at->format('d M Y') }} · {{ $r->status }}
@empty—@endforelse
Breaches & warrants @forelse($case->breaches->sortByDesc('reported_on') as $b)
{{ optional($b->reported_on)->format('d M Y') }} — {{ $b->description }} · {{ ucwords(str_replace('_', ' ', $b->action ?? 'under review')) }} @if($b->warrant_applied_on) · warrant applied {{ $b->warrant_applied_on->format('d M Y') }}@endif @if($b->warrant_file_path) · warrant@endif
@emptyNone@endforelse
Assessments & tools @forelse($case->assessments->sortByDesc('id') as $a)
{{ $a->tool }} · {{ optional($a->assessed_on)->format('d M Y') }} · {{ $a->risk_level ?? 'not classified' }}
@emptyNone@endforelse @if($case->treatmentPlan->count())
Treatment plan (Tool C): {{ $case->treatmentPlan->count() }} area(s)
@endif
Empowerment & tools issued @forelse($case->empowerments as $e)
{{ config('probation_workflow.empowerment_types')[$e->type] ?? $e->type }} — {{ $e->description }} ({{ $e->status }})
@emptyNone@endforelse
Case conferences @forelse($case->conferences as $cf)
{{ config('probation_workflow.conference_kinds')[$cf->kind ?? 'case_conference'] ?? 'Case conference' }} · {{ optional($cf->scheduled_for)->format('d M Y') }} · {{ $cf->status }} @if($cf->minutes_file_path) · minutes@endif
@emptyNone@endforelse
Other documents @forelse($case->documents as $d)
{{ $docTypes[$d->doc_type] ?? $d->doc_type }} · {{ optional($d->captured_on ?? $d->created_at)->format('d M Y') }}
@emptyNone@endforelse