Purchase Requisition (PR)

{{-- REQUEST INFO --}}
Requisition Number {{ $itemRequest->requisition_number }} Create at {{ $itemRequest->created_at->format('d M Y H:i') }}
Requested By {{ $itemRequest->user->name ?? 'N/A' }} Cost Center {{ $itemRequest->costCenter->cc_desc ?? 'N/A' }}
Priority {{ $itemRequest->priority->value ?? 'N/A' }} Status {{ $itemRequest->req_status->value }}
{{-- ITEMS --}}
Requested Items
@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'] }} {{ $item['unit'] ?? '' }} {{ $item['due_date'] }}
@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 : null, 'signature' => $user ? $user->signature : null, 'approved_at' => $approval?->created_at, ]; }) ->filter(); // Requester data $requester = [ 'name' => $itemRequest->user->name ?? 'N/A', 'status' => 'Approved', 'signature' => $itemRequest->user->signature ?? null, 'approved_at' => $itemRequest->created_at, ]; // Put requester as the FIRST signer $approvers = collect([$requester])->merge($approvers); if ($itemRequest->req_status->value === 'Approved') { $approvers = $approvers->slice(0, -1); // remove last element } @endphp {{-- SIGNATURE SECTION --}}
The document is electronically submitted and approved by:
@foreach ($approvers as $approver) @if ($approver['status'] === 'Approved') @endif @endforeach
@if ($approver['signature']) @else

Pengguna belum mengunggah dokumen tanda tangan

@endif
{{ $approver['name'] }}
@if ($approver['approved_at'])
{{ $approver['approved_at']->format('d M Y H:i') }}
@endif
{{-- APPROVAL HISTORY --}} @php $requesterName = $itemRequest->user->name ?? 'N/A'; @endphp {{-- Wrap approval history section to prevent cropping --}}
Approval History
{{-- Requester Remarks --}} @if (!empty($itemRequest->remarks)) @endif {{-- Approval History --}} @forelse ($itemRequest->approvals as $index => $approval) @php // Check if this is the last approval and request status is Approved $isLastApproval = $index === count($itemRequest->approvals) - 1; $displayStatus = $isLastApproval && $itemRequest->req_status->value === 'Approved' ? 'Received' : $approval->status; @endphp @empty @if (empty($itemRequest->remarks)) @endif @endforelse
Name Status Comment
{{ $requesterName }}
{{ $itemRequest->created_at->format('d M Y H:i') }}
Submitted {!! nl2br(e(str_replace(['\\r\\n', '\\n'], "\n", $itemRequest->remarks))) !!}
{{ $approval->user->name }}
{{ $approval->created_at->format('d M Y H:i') }}
{{ $displayStatus }} {!! nl2br(e(str_replace(['\\r\\n', '\\n'], "\n", $approval->comment ?? '—'))) !!}
No approval history