{{ __('Purchase Requisition (PR)') }}

Requested By:
{{ $itemRequest->user->name ?? 'N/A' }}
Status:
{{ match ($itemRequest->req_status->value) { 'Initiated' => 'Pending', default => $itemRequest->req_status->value, } }}
Requisition Number:
{{ $itemRequest->requisition_number ?? 'N/A' }}
Cost Center:
{{ $itemRequest->costCenter->cc_desc ?? 'N/A' }}
Priority:
{{ $itemRequest->priority->value ?? 'N/A' }}
Reason for Request:
{{ $itemRequest->approval_flow_label ?? 'N/A' }}
Due Date:
{{ $itemRequest->due_date ? $itemRequest->due_date->format('Y-m-d') : 'N/A' }}
Created at:
{{ $itemRequest->created_at ? $itemRequest->created_at->format('Y-m-d H:i') : 'N/A' }}
@if ($itemRequest->selected_items && count($itemRequest->selected_items) > 0) @foreach ($itemRequest->selected_items as $item) @endforeach
No Item Number Description Qty Due Date
{{ $item['line'] ?? '' }} {{ $item['item_number'] ?? '' }} {{ $item['name'] ?? '' }} @if (!empty($item['comment']))
{{ $item['comment'] }} @endif
{{ $item['quantity'] ?? '' }}@if (!empty($item['unit']))  {{ $item['unit'] }} @endif {{ $item['due_date'] ?? '' }}
@else

No items selected for this request.

@endif @php $approverIds = collect(range(1, 10)) ->map(fn($i) => $itemRequest->{'approver' . $i}) ->filter(); $approverUsers = \App\Models\User::whereIn('id', $approverIds) ->get() ->keyBy('id'); // ✅ Map latest approval date by user_id $approvalDates = $itemRequest->approvals ->where('status', 'Approved') ->sortByDesc('created_at') ->keyBy('user_id'); $approvers = collect(range(1, 10)) ->map(function ($i) use ( $itemRequest, $approverUsers, $approvalDates, ) { $userId = $itemRequest->{'approver' . $i}; if (!$userId) { return null; } $user = $approverUsers->get($userId); $approval = $approvalDates->get($userId); return [ 'name' => $itemRequest->{'approver' . $i . '_name'} ?? '', 'status' => $itemRequest->{'appstatus' . $i} ? $itemRequest->{'appstatus' . $i}->value : '', 'user_id' => $userId, 'signature' => $user?->signature, 'approved_at' => $approval?->created_at, // ✅ FIX ]; }) ->filter(); @endphp @foreach ($approvers as $approver) @endforeach @foreach ($approvers as $approver) @endforeach

The document is electronically submitted, approved and received by:

@if ($itemRequest->user && $itemRequest->user->signature) Signature @else

Pengguna belum mengunggah dokumen tanda tangan

@endif
@if ($approver['status'] === 'Approved') @if (!empty($approver['signature'])) Signature @else

Pengguna belum mengunggah dokumen tanda tangan

@endif @endif

{{ $itemRequest->user->name }}

{{ $itemRequest->created_at->format('d M Y H:i') }}

@if ($approver['status'] === 'Approved')

{{ $approver['name'] }}

@if ($approver['approved_at'])

{{ $approver['approved_at']->format('d M Y H:i') }}

@endif @endif
@if (!empty($itemRequest->remarks))

Comment:

{{ $itemRequest->remarks }}
@endif @if ($itemRequest->attachments && count($itemRequest->attachments) > 0)

Attachment(s):

@foreach ($itemRequest->attachments as $attachment) {{ substr(basename($attachment), 11) }} @endforeach
@endif

Approval History

@forelse ($itemRequest->approvals->sortByDesc('created_at') as $approval)
{{ strtoupper(substr($approval->user->name, 0, 1)) }}
{{ $approval->user->name }} {{ $approval->created_at->format('M d, Y • h:i A') }}
{{ $approval->status }}
{{ $approval->comment ?? 'No comment provided.' }}
@if ($approval->attachments && count(json_decode($approval->attachments)) > 0)
@foreach (json_decode($approval->attachments) as $attachment) {{ substr(basename($attachment), 11) }} @endforeach
@endif
@empty
No approval history found
@endforelse

Approval Workflow

@foreach ($approvers as $approver)
{{ $approver['name'] ?? 'N/A' }}
{{ $approver['status'] ?? 'Pending' }}
@endforeach
Back Print @can('edit item requests') @if ( $itemRequest->user_id === auth()->id() && in_array($itemRequest->req_status->value, [ \App\Enums\ApprovalStatus::Initiated->value, \App\Enums\ApprovalStatus::Rejected->value, ])) Edit @endif @endcan @php $currentUserIsApprover = false; $approverIndex = null; for ($i = 1; $i <= 10; $i++) { if (auth()->check() && $itemRequest->{'approver' . $i} === auth()->user()->id) { $currentUserIsApprover = true; $status = $itemRequest->{'appstatus' . $i}; if (!$status || in_array($status->value, ['Initiated', 'In process'])) { $approverIndex = $i; break; } } } $canApproveOrReject = false; if ( $currentUserIsApprover && $approverIndex && !in_array($itemRequest->req_status->value, ['Rejected', 'Cancelled']) ) { $currentStatus = $itemRequest->{'appstatus' . $approverIndex}; $isCurrentPending = $currentStatus && in_array($currentStatus->value, ['Initiated', 'In process']); $isCurrentNull = !$currentStatus && $itemRequest->req_status->value === 'Initiated'; if ($isCurrentPending || $isCurrentNull) { if ($approverIndex === 1) { $canApproveOrReject = true; } else { $allPreviousApproved = true; for ($j = 1; $j < $approverIndex; $j++) { if ($itemRequest->{'approver' . $j}) { $previousStatus = $itemRequest->{'appstatus' . $j}; if (!$previousStatus || $previousStatus->value !== 'Approved') { $allPreviousApproved = false; break; } } } $canApproveOrReject = $allPreviousApproved; } } } @endphp @can('approve item requests') @if ($canApproveOrReject) @endif @endcan @can('delete item requests')
@csrf @method('DELETE')
@endcan
@push('scripts') @endpush