@extends('layouts.app') @section('title', 'Technical - '.$project->project_code) @section('content')
Technical Workspace — {{ $project->project_code }}

{{ $project->customer?->name }} · {{ $project->lift_type }} · {{ $project->no_of_stops }} stops

Back to Project
{{-- TEAM --}}
Project Team
@forelse ($project->teamMembers as $member) @empty @endforelse
NameRole
{{ $member->user?->name }} {{ ucwords(str_replace('_', ' ', $member->role)) }}
@csrf @method('DELETE')
No team members assigned yet.
@csrf
{{-- SITE VISITS --}}
Visit History
@forelse ($project->siteVisits as $visit)
{{ $visit->visit_date->format('d M Y') }} — {{ $visit->engineer?->name }}
Civil: {{ $visit->civil_readiness }} · Electrical: {{ $visit->electrical_readiness }} · Shaft: {{ $visit->shaft_status }} · Pit: {{ $visit->pit_status }} · Headroom: {{ $visit->headroom_status }} · Power: {{ $visit->power_supply_status }}
@if ($visit->remarks)
{{ $visit->remarks }}
@endif
@empty

No site visits recorded yet.

@endforelse
Log Site Visit
@csrf
@foreach (['civil_readiness' => 'Civil Readiness', 'electrical_readiness' => 'Electrical Readiness', 'shaft_status' => 'Lift Shaft', 'pit_status' => 'Pit', 'headroom_status' => 'Headroom', 'power_supply_status' => 'Power Supply'] as $field => $label)
@endforeach
{{-- DRAWINGS --}}
Drawing Versions
@forelse ($project->drawings as $drawing) @empty @endforelse
VersionStatusCustomer Approved
v{{ $drawing->version }} {{ $drawing->customer_approved_at ? $drawing->customer_approved_at->format('d M Y') : '—' }} @if ($drawing->status === 'pending')
@csrf @method('PATCH')
@elseif ($drawing->status === 'approved' && ! $drawing->customer_approved_at)
@csrf @method('PATCH')
@endif
No drawings uploaded yet.
Upload New Drawing
@csrf

Approving a drawing automatically generates the Bill of Materials.

{{-- BOM --}}
Bill of Materials
@if ($latestBom) @role('super_admin|technical_manager')
@csrf
@endrole @endif
@if ($latestBom)
@foreach ($latestBom->items as $item) @endforeach
CategoryItemRequiredReservedShortfallStatus
{{ str_replace('_', ' ', $item->category) }} {{ $item->item_name }} {{ rtrim(rtrim($item->required_qty, '0'), '.') }} {{ $item->unit }} {{ rtrim(rtrim($item->reserved_qty, '0'), '.') }} {{ rtrim(rtrim($item->shortfall_qty, '0'), '.') }}
@if ($project->purchaseRequests->isNotEmpty())
Purchase Requests
@foreach ($project->purchaseRequests as $pr) @role('super_admin|procurement_officer|technical_manager') {{ $pr->pr_number }} — @endrole @endforeach @endif @else

No BOM generated yet. Approve a drawing to auto-generate one.

@endif
{{-- INSTALLATION --}}
Daily Progress Log
@forelse ($project->installationProgresses as $progress)
{{ $progress->progress_date->format('d M Y') }} {{ $progress->installation_percent }}%
{{ $progress->completed_work }}
by {{ $progress->submittedBy?->name }}
@empty

No progress logged yet.

@endforelse
Material Consumption
@forelse ($project->materialConsumptions as $mc) @empty @endforelse
ItemIssuedUsedBalanceDamaged
{{ $mc->item_name }} {{ $mc->issued_qty }} {{ $mc->used_qty }} {{ $mc->balance_qty }} {{ $mc->damaged_qty }}
No consumption recorded yet.
Log Daily Progress
@csrf
Record Material Consumption
@csrf
{{-- TESTING --}}
Testing & Commissioning Checklist
@foreach ($testTypes as $type) @php $record = $project->testingRecords->firstWhere('test_type', $type); @endphp @endforeach
TestStatusTested ByUpdate
{{ str_replace('_', ' ', $type) }} {{ $record?->tester?->name ?? '—' }}
@csrf
{{-- HANDOVER --}}
Handover Checklist
@csrf
handover?->walkthrough_completed_at)>
handover?->training_completed_at)>
@error('handed_over_at')
{{ $message }}
@enderror
Used to schedule recurring six-month service work.
Project Completion
Walkthrough
{{ $project->handover?->walkthrough_completed_at ? '✓ Done' : 'Pending' }}
Training
{{ $project->handover?->training_completed_at ? '✓ Done' : 'Pending' }}
Signature
{{ $project->handover?->acceptance_signature_path ? '✓ Uploaded' : 'Pending' }}
Handover Date
{{ $project->handover?->handed_over_at?->format('d M Y') ?? 'Pending' }}
@if ($project->handover?->completion_certificate_path) View Certificate @else
@csrf
@endif
@endsection