@extends('layouts.app') @section('title', $worksOrder->order_number) @section('breadcrumb') Jobs {{ $job->job_number }} {{ $worksOrder->order_number }} @endsection @section('content')
{{-- Header --}}

{{ $worksOrder->order_number }}

{{ $worksOrder->statusLabel() }} @if($worksOrder->fault_approval_status === 'pending') Fault Approval Pending @elseif($worksOrder->fault_approval_status === 'approved') Faults Approved @elseif($worksOrder->fault_approval_status === 'rejected') Faults Rejected @endif
{{ $job->job_number }} · {{ $job->contact?->full_name ?? 'No client' }} @if($worksOrder->issued_date) · Issued {{ $worksOrder->issued_date->format('d M Y') }} @endif
@if(in_array(auth()->user()->role?->name, ['office_admin','project_manager'])) Edit @endif Back to Job
@if(session('success'))
{{ session('success') }}
@endif {{-- Fault Approval Banner --}} @if($worksOrder->fault_approval_status === 'pending' && in_array(auth()->user()->role?->name, ['office_admin','project_manager','accounts']))
Fault Cost Approval Required
Total fault cost ${{ number_format($worksOrder->totalFaultCost(), 2) }} exceeds the ${{ number_format($threshold, 0) }} threshold. Manager approval is required.
@csrf
@csrf
@endif {{-- Status Workflow --}} @if(in_array(auth()->user()->role?->name, ['office_admin','project_manager']))
@csrf
@php $pct = $worksOrder->completionPct(); @endphp @if($worksOrder->items->count() > 0)
{{ $worksOrder->items->where('status','done')->count() }} / {{ $worksOrder->items->count() }} tasks complete {{ $pct }}%
@endif
@endif
{{-- Left: Details + Scope + Tasks --}}
{{-- Work Order Details --}}

Work Order Details

Date{{ $worksOrder->issued_date?->format('d M Y') ?? '—' }}
Factory Mgr Approval{{ $worksOrder->factory_manager_approval?->format('d M Y') ?? '—' }}
Given To Factory{{ $worksOrder->given_to_factory?->format('d M Y') ?? '—' }}
Manufacture Date{{ $worksOrder->manufacture_date?->format('d M Y') ?? '—' }}
Factory Completion{{ $worksOrder->factory_completion_date?->format('d M Y') ?? '—' }}
Target Completion{{ $worksOrder->target_completion?->format('d M Y') ?? '—' }}
Delivery Date{{ $worksOrder->delivery_date?->format('d M Y') ?? '—' }}
Delivered Date{{ $worksOrder->delivered_date?->format('d M Y') ?? '—' }}
Client Booking{{ $worksOrder->client_booking_date?->format('d M Y') ?? '—' }}
Client Completion{{ $worksOrder->client_completion_date?->format('d M Y') ?? '—' }}
Order Type{{ $worksOrder->works_order_type ?? '—' }}
Supervisor{{ $worksOrder->supervisor?->name ?? '—' }}
Drawings Attached: @if($worksOrder->drawings_attached) Yes @else No @endif
@if($worksOrder->comments)
Comments
{{ $worksOrder->comments }}
@endif
{{-- Faults Section --}}

Faults

@php $faultTotal = $worksOrder->totalFaultCost(); @endphp @if($faultTotal > 0) ${{ number_format($faultTotal, 2) }} @endif
@if($worksOrder->faults->count()) @foreach($worksOrder->faults as $fault) @endforeach
# Fault Type Cost
Fault {{ $fault->fault_number }} {{ $fault->fault_type ?? '—' }} ${{ number_format($fault->cost, 2) }}
Total Fault Cost ${{ number_format($faultTotal, 2) }}
@if($worksOrder->fault_approval_status === 'approved')
Approved by {{ $worksOrder->faultApprover?->name }} on {{ $worksOrder->fault_approved_at?->format('d M Y H:i') }}
@elseif($worksOrder->fault_approval_status === 'rejected')
Rejected by {{ $worksOrder->faultApprover?->name }} on {{ $worksOrder->fault_approved_at?->format('d M Y H:i') }}
@endif @else
No faults recorded.
@endif
{{-- Scope of Works --}} @if($worksOrder->scope_of_works || $worksOrder->special_instructions)

Scope of Works

@if($worksOrder->scope_of_works)
{{ $worksOrder->scope_of_works }}
@endif @if($worksOrder->special_instructions)
Special Instructions
{{ $worksOrder->special_instructions }}
@endif
@endif {{-- Task List --}}

Task Lines

@if(in_array(auth()->user()->role?->name, ['office_admin','project_manager'])) @endif
@if(in_array(auth()->user()->role?->name, ['office_admin','project_manager']))
@csrf
@endif @forelse($worksOrder->items as $item)
@if($item->status === 'done')
@elseif($item->status === 'in_progress')
@else
@endif
{{ $item->description }}
{{ \App\Models\WorksOrderItem::tradeLabel($item->trade) }} @if($item->assignee){{ $item->assignee->name }}@endif @if($item->estimated_hours){{ $item->estimated_hours }}h@endif
@if($item->notes)
{{ $item->notes }}
@endif
@if(in_array(auth()->user()->role?->name, ['office_admin','project_manager','lead_installer']))
@csrf @method('PATCH')
@endif @if(in_array(auth()->user()->role?->name, ['office_admin','project_manager']))
@csrf @method('DELETE')
@endif
@empty
No tasks added yet
@if(in_array(auth()->user()->role?->name, ['office_admin','project_manager'])) @endif
@endforelse
{{-- Right Sidebar --}}

Schedule

Issue Date{{ $worksOrder->issued_date?->format('d M Y') ?? '—' }}
Target Completion {{ $worksOrder->target_completion?->format('d M Y') ?? '—' }}
@if($worksOrder->actual_completion)
Actual Completion{{ $worksOrder->actual_completion->format('d M Y') }}
@endif
@if($worksOrder->faults->count() && $faultTotal > 0)

Fault Summary

Total Fault Cost ${{ number_format($faultTotal, 2) }}
Approval @if($worksOrder->fault_approval_status === 'approved') Approved @elseif($worksOrder->fault_approval_status === 'rejected') Rejected @elseif($worksOrder->fault_approval_status === 'pending') Pending @else N/A @endif
Fault costs reduce the gross profit for this job.
@endif @if($worksOrder->items->count() > 0)

Task Summary

@foreach(['pending'=>['Pending','text-slate-400'],'in_progress'=>['In Progress','text-blue-400'],'done'=>['Done','text-green-400']] as $s => [$lbl,$col]) @php $cnt = $worksOrder->items->where('status',$s)->count(); @endphp @if($cnt > 0)
{{ $lbl }}{{ $cnt }}
@endif @endforeach
@endif @if($worksOrder->notes)

Notes

{{ $worksOrder->notes }}

@endif @if(in_array(auth()->user()->role?->name, ['office_admin','project_manager']))
@csrf @method('DELETE')
@endif
@endsection