@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)
@endif
@if ($jobServiceRequest->related_assets && count($jobServiceRequest->related_assets) > 0)
Related Assets
|
No |
Name |
Serial |
Model |
Tag |
Category |
Location |
@foreach ($jobServiceRequest->related_assets as $index => $asset)
|
{{ $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' }} |
@endforeach
@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))
@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']))
@endif
@endcan