@extends('layouts.app') @section('title','Work Order') @section('page-title','Work Order Detail') @section('content') @php $sm=$workOrder->status_meta; $pm=$workOrder->priority_meta; @endphp
All Work Orders
@if(!in_array($workOrder->status,['completed','cancelled'])) Edit @endif {{ $sm['label'] }}
{{-- LEFT: Work Order Details --}}
{{ $workOrder->wo_number }}
{{ $workOrder->title }}
{{ $pm['label'] }}
{{ $workOrder->description }}
Project
{{ $workOrder->project->name ?? '-' }}
Assigned To
@if($workOrder->assignedStaff) {{ $workOrder->assignedStaff->name }}
{{ $workOrder->assignedStaff->role }} @else{{ $workOrder->assigned_to ?? '—' }}@endif
Assigned By
{{ $workOrder->creator->name ?? '-' }}
Created
{{ $workOrder->created_at->format('d M Y') }}
Due Date
{{ $workOrder->due_date?->format('d M Y') ?? '—' }} @if($workOrder->isOverdue())OVERDUE@endif
@if($workOrder->completed_date)
Completed
{{ $workOrder->completed_date->format('d M Y') }}
@endif
Next Action
{{ $workOrder->next_actor }}
{{-- Workflow Timeline --}}
Workflow Progress
@php $steps = [ ['label'=>'Work Order Created', 'done'=>true, 'by'=>$workOrder->creator?->name, 'at'=>$workOrder->created_at], ['label'=>'Assignee Started Work', 'done'=>in_array($workOrder->status,['in_progress','pending_completion','completed','rejected_completion']), 'by'=>$workOrder->assignedStaff?->name, 'at'=>null], ['label'=>'Completion Submitted', 'done'=>in_array($workOrder->status,['pending_completion','completed','rejected_completion']), 'by'=>$workOrder->assignedStaff?->name, 'at'=>$workOrder->actioned_at, 'note'=>$workOrder->assignee_notes, 'rejected'=>$workOrder->status==='rejected_completion'], ['label'=>'Assignor Validated & Closed', 'done'=>$workOrder->status==='completed', 'by'=>$workOrder->validator?->name, 'at'=>$workOrder->validated_at, 'note'=>$workOrder->validation_notes], ]; @endphp
@foreach($steps as $step) @php $rej=$step['rejected']??false; @endphp
@if($step['done']&&!$rej)@elseif($rej)@else{{ $loop->index+1 }}@endif
@if(!$loop->last)
@endif
{{ $step['label'] }}
@if($step['done']&&!empty($step['by']))
{{ $step['by'] }}@if(!empty($step['at'])) · {{ $step['at']->format('d M Y H:i') }}@endif
@endif @if(!empty($step['note']))
{{ $step['note'] }}
@endif
@endforeach
{{-- RIGHT: Action Panels --}}
{{-- ASSIGNEE: Start work --}} @if($workOrder->status === 'open' && (auth()->user()->hasAnyRole(['super_admin']) || (auth()->id() == optional($workOrder->assignedStaff)->user_id ?? null) || auth()->user()->hasAnyRole(['foreman','artisan','site_supervisor','project_manager','store_keeper'])))
{{ $workOrder->assignedStaff?->name }} — Start Work

This work order has been assigned to {{ $workOrder->assignedStaff?->name }}. Click below to confirm you have started working on it.

@csrf @method('PATCH')
@endif {{-- ASSIGNEE: Submit completion --}} @if(in_array($workOrder->status,['in_progress','rejected_completion']) && !auth()->user()->hasAnyRole(['ceo']))
{{ $workOrder->assignedStaff?->name }} — Submit Completion
@if($workOrder->status==='rejected_completion')
Completion Rejected by {{ $workOrder->validator?->name ?? 'Assignor' }}:
{{ $workOrder->validation_notes }}
@endif

Describe what was done. The assignor ({{ $workOrder->creator?->name }}) will review and validate before closing.

@csrf
@endif {{-- ASSIGNOR: Validate completion --}} @if($workOrder->status === 'pending_completion' && auth()->user()->hasAnyRole(['project_manager','site_supervisor','super_admin']))
{{ $workOrder->creator?->name }} — Validate Completion
{{ $workOrder->assignedStaff?->name }} submitted this as complete on {{ $workOrder->actioned_at?->format('d M Y H:i') }}:
"{{ $workOrder->assignee_notes }}"

Inspect the work and either validate it as complete or send it back with issues.

@csrf @method('PATCH')
@csrf @method('PATCH')
@endif {{-- Completed summary --}} @if($workOrder->status === 'completed')
Work Order Complete

Validated by {{ $workOrder->validator?->name }} on {{ $workOrder->validated_at?->format('d M Y H:i') }}

@if($workOrder->validation_notes)@endif
@endif {{-- Cancel (only if open/in progress) --}} @if(in_array($workOrder->status,['open','in_progress']))
@csrf @method('DELETE')
@endif
{{-- /col --}}
{{-- /row --}} @endsection