{{ __('Service Request Details') }}

@if (session('success'))
{{ session('success') }}
@endif @if (session('error'))
{{ session('error') }}
@endif

Request Information

Request Type
{{ $jobServiceRequest->request_type ?? 'N/A' }}
Site
{{ $jobServiceRequest->site ?? 'N/A' }}
Request To
{{ $jobServiceRequest->request_to ?? 'N/A' }}
Work Category
{{ $jobServiceRequest->work_category ?? 'N/A' }}
Problem Category
{{ $jobServiceRequest->problem_category ?? 'N/A' }}
Priority
@php $priorityColors = [ 'Critical' => 'bg-red-100 text-red-800', 'High' => 'bg-orange-100 text-orange-800', 'Medium' => 'bg-blue-100 text-blue-800', 'Low' => 'bg-gray-100 text-gray-800', ]; $priorityIcons = [ 'Critical' => 'fa-circle-exclamation', 'High' => 'fa-circle-exclamation', 'Medium' => 'fa-circle-info', 'Low' => 'fa-circle-check', ]; $pc = $jobServiceRequest->priority ?? 'Low'; @endphp {{ $pc }}
Requested By
{{ $jobServiceRequest->requested_by ?? 'N/A' }} ({{ $jobServiceRequest->user->name ?? 'N/A' }})
Assigned To
{{ $jobServiceRequest->assigned_to_name ?? 'Not Assigned Yet' }}
Status
$jobServiceRequest->req_status === 'Initiated', 'bg-yellow-50 text-yellow-700 ring-1 ring-yellow-200' => $jobServiceRequest->req_status === 'In process', 'bg-green-50 text-green-700 ring-1 ring-green-200' => $jobServiceRequest->req_status === 'Approved', 'bg-red-50 text-red-700 ring-1 ring-red-200' => $jobServiceRequest->req_status === 'Rejected', ])> {{ $jobServiceRequest->req_status }}
Created At
{{ $jobServiceRequest->created_at->format('d M Y H:i') }}
@php $completionStatus = null; $completionStatusColor = null; if ($jobServiceRequest->request_completion_date) { $targetDate = \Carbon\Carbon::parse($jobServiceRequest->request_completion_date); if ($jobServiceRequest->req_status == 'Approved' && $jobServiceRequest->solved_at) { $solvedDate = \Carbon\Carbon::parse($jobServiceRequest->solved_at); if ($solvedDate->lt($targetDate)) { $completionStatus = 'Completed Early'; $completionStatusColor = 'bg-green-100 text-green-800'; } elseif ($solvedDate->equalTo($targetDate)) { $completionStatus = 'Completed On Time'; $completionStatusColor = 'bg-blue-100 text-blue-800'; } else { $completionStatus = 'Completed Late'; $completionStatusColor = 'bg-red-100 text-red-800'; } } elseif ($jobServiceRequest->req_status == 'Initiated') { $completionStatus = 'Waiting Process'; $completionStatusColor = 'bg-yellow-100 text-yellow-800'; } elseif ($jobServiceRequest->req_status == 'In process') { if (now()->gt($targetDate)) { $completionStatus = 'In Progress (Over Target)'; $completionStatusColor = 'bg-red-100 text-red-800'; } else { $completionStatus = 'In Progress'; $completionStatusColor = 'bg-blue-100 text-blue-800'; } } } @endphp
{{ $jobServiceRequest->req_status == 'Approved' ? 'Complete At:' : 'Request Completion Date:' }}
@if ($jobServiceRequest->req_status == 'Approved') {{ $jobServiceRequest->solved_at ? \Carbon\Carbon::parse($jobServiceRequest->solved_at)->format('d M Y H:i') : 'N/A' }} @else {{ $jobServiceRequest->request_completion_date ? $jobServiceRequest->request_completion_date->format('d M Y') : 'N/A' }} @endif
@if ($completionStatus) {{ $completionStatus }} @endif
@if ($jobServiceRequest->detail)
Request Detail
{{ $jobServiceRequest->detail }}
@endif @if ($jobServiceRequest->rating)
Rating
@for ($i = 1; $i <= 5; $i++) @endfor ({{ $jobServiceRequest->rating }}/5)
@endif @if ($jobServiceRequest->attachments && count(json_decode($jobServiceRequest->attachments)) > 0)
Attachments
@foreach (json_decode($jobServiceRequest->attachments) as $attachment) {{ basename($attachment) }} @endforeach
@endif
@if ($jobServiceRequest->related_assets && count($jobServiceRequest->related_assets) > 0)

Related Assets

@foreach ($jobServiceRequest->related_assets as $index => $asset) @endforeach
No Name Serial Model Tag Category Location
{{ $index + 1 }} {{ $asset['name'] }} {{ $asset['serial'] ?? 'N/A' }} {{ $asset['model_name'] ?? 'N/A' }} {{ $asset['asset_tag'] ?? 'N/A' }} {{ $asset['category_name'] ?? 'N/A' }} {{ $asset['location_name'] ?? 'N/A' }}
@endif @if ($jobServiceRequest->req_status === 'Approved' || $jobServiceRequest->solved_at)

Problem Analysis & Solution

Problem Analysis
{{ $jobServiceRequest->problem_analysis ?? 'N/A' }}
Solution
{{ $jobServiceRequest->solution ?? 'N/A' }}
@endif @if ($jobServiceRequest->approvals->isNotEmpty())

Activity Log

@foreach ($jobServiceRequest->approvals->sortByDesc('created_at') as $approval) @php $approvalComment = $approval->comment ?? ($approval->remarks ?? null); $statusStyles = [ 'Approved' => [ 'bg-green-50 text-green-700 ring-green-200', 'bg-green-500', ], 'Rejected' => ['bg-red-50 text-red-700 ring-red-200', 'bg-red-500'], 'Cancelled' => [ 'bg-blue-50 text-blue-700 ring-blue-200', 'bg-blue-500', ], ]; [$pillClass, $dotClass] = $statusStyles[$approval->status] ?? [ 'bg-gray-50 text-gray-700 ring-gray-200', 'bg-gray-400', ]; @endphp
{{ strtoupper(substr($approval->user->name ?? '?', 0, 1)) }}
{{ $approval->user->name }} {{ $approval->created_at->format('d M Y H:i') }}
{{ $approval->status }}
@if ($approvalComment && trim($approvalComment))
{{ $approvalComment }}
@else

No comment provided.

@endif @if ($approval->attachments) @php $attachments = is_array($approval->attachments) ? $approval->attachments : json_decode($approval->attachments, true); @endphp @if (!empty($attachments))
@foreach ($attachments as $attachment) {{ basename($attachment) }} @endforeach
@endif @endif
@endforeach
@else {{--
No approval history found
--}} @endif

Request Progress

@php $solvedByApproval = $jobServiceRequest->approvals ->where('status', 'Approved') ->filter(fn($a) => str_starts_with($a->comment ?? '', 'Problem solved:')) ->sortByDesc('created_at') ->first(); $flowSteps = [ [ 'label' => $jobServiceRequest->assigned_to_name ?? '', 'sub' => $jobServiceRequest->assigned_to ? $jobServiceRequest->work_status ?? 'Assigned' : 'Waiting', 'status' => $jobServiceRequest->assigned_to ? 'Completed' : ($jobServiceRequest->req_status === 'Approved' ? 'Completed' : 'Active'), ], [ 'label' => $solvedByApproval->user->name ?? 'In Progress', 'sub' => $jobServiceRequest->solved_at ? 'Solved' : ($jobServiceRequest->assigned_to ? 'Working' : '-'), 'status' => $jobServiceRequest->req_status === 'Approved' ? 'Completed' : ($jobServiceRequest->solved_at ? 'Completed' : ($jobServiceRequest->assigned_to ? 'Active' : 'Pending')), ], [ 'label' => 'Rating', 'sub' => $jobServiceRequest->rating ? $jobServiceRequest->rating . '/5' : ($jobServiceRequest->solved_at ? 'Pending' : '-'), 'status' => $jobServiceRequest->req_status === 'Approved' ? 'Completed' : ($jobServiceRequest->solved_at ? 'Active' : 'Pending'), ], ]; @endphp @foreach ($flowSteps as $step)
@php $bgColor = $step['status'] === 'Completed' ? '#dcfce7' : ($step['status'] === 'Active' ? '#dbeafe' : '#f3f4f6'); $borderColor = $step['status'] === 'Completed' ? '#22c55e' : ($step['status'] === 'Active' ? '#3b82f6' : '#d1d5db'); $textColor = $step['status'] === 'Completed' ? '#15803d' : ($step['status'] === 'Active' ? '#1d4ed8' : '#9ca3af'); @endphp
{{ $loop->index + 1 }}
{{ $step['label'] }}
{{ $step['sub'] }}
@endforeach
@can('edit job service requests') @if ($jobServiceRequest->user_id === auth()->id() && in_array($jobServiceRequest->req_status, ['Initiated', 'Rejected'])) Edit @endif @endcan @if ($canSelfAssign) @elseif ($canSubmitSolution) @elseif ($canRate) @endif @can('delete job service requests') @if ($jobServiceRequest->user_id === auth()->id() && in_array($jobServiceRequest->req_status, ['Initiated']))
@csrf @method('DELETE')
@endif @endcan
@push('scripts') @endpush