@extends('layouts.app') @section('title','Requisition') @section('page-title','Requisition Detail') @section('content') @php $meta = $requisition->status_meta; @endphp
All Requisitions {{ $meta['label'] }}
{{-- Header Summary --}}
{{ strtoupper($requisition->type) }}
{{ $requisition->item_description }}
{{ $requisition->req_number }} · {{ $requisition->project->name }}
{{ $requisition->quantity }} {{ $requisition->unit }} {{ $requisition->urgency }}
@if($requisition->purpose)
{{ $requisition->purpose }}
@endif
Requested By
{{ $requisition->requester->name ?? '-' }} ({{ $requisition->requester->role ?? '' }})
Date
{{ $requisition->created_at->format('d M Y H:i') }}
Next Actor
{{ $requisition->next_actor }}
@if($requisition->material)
Current Stock
{{ $requisition->material->current_stock }} {{ $requisition->material->unit }}
@endif
{{-- Workflow Timeline --}}
Workflow Progress
@php $steps = [ ['label'=>'Requisition Submitted', 'statuses'=>['pending_pm','pm_approved','pm_rejected','pending_inventory','in_stock','no_stock','pending_ceo_purchase','ceo_purchase_rejected','pending_funds','funds_approved','funds_rejected','purchasing','purchased','released'],'by'=>$requisition->requester?->name,'at'=>$requisition->created_at], ['label'=>'Project Manager Review', 'statuses'=>['pm_approved','pending_inventory','in_stock','no_stock','pending_ceo_purchase','ceo_purchase_rejected','pending_funds','funds_approved','funds_rejected','purchasing','purchased','released'],'by'=>$requisition->pmActioner?->name,'at'=>$requisition->pm_actioned_at,'note'=>$requisition->pm_notes,'rejected'=>$requisition->status==='pm_rejected'], ['label'=>'Inventory Stock Check', 'statuses'=>['pending_inventory','in_stock','no_stock','pending_ceo_purchase','ceo_purchase_rejected','pending_funds','funds_approved','funds_rejected','purchasing','purchased','released'],'by'=>$requisition->inventoryActioner?->name,'at'=>$requisition->inventory_actioned_at,'note'=>$requisition->inventory_notes], ['label'=>'CEO Purchase Approval', 'statuses'=>['pending_ceo_purchase','pending_funds','funds_approved','funds_rejected','purchasing','purchased','released'],'by'=>$requisition->ceoActioner?->name,'at'=>$requisition->ceo_purchase_actioned_at,'note'=>$requisition->ceo_purchase_notes,'rejected'=>$requisition->status==='ceo_purchase_rejected'], ['label'=>'Funds Approved by CEO', 'statuses'=>['funds_approved','purchasing','purchased','released'],'by'=>$requisition->fundsApprover?->name,'at'=>$requisition->funds_approved_at,'note'=>'GH₵ '.number_format($requisition->funds_approved_amount??0,2),'rejected'=>$requisition->status==='funds_rejected'], ['label'=>'Purchase & Stock Update', 'statuses'=>['purchased','released'],'by'=>'Inventory Mgr','at'=>$requisition->purchased_at,'note'=>$requisition->actual_purchase_cost?'GH₵ '.number_format($requisition->actual_purchase_cost,2).' — '.$requisition->supplier_name:null], ['label'=>'Released to Site', 'statuses'=>['released'],'by'=>'Inventory Mgr','at'=>$requisition->released_at,'note'=>$requisition->release_notes], ]; @endphp
@foreach($steps as $i => $step) @php $done = in_array($requisition->status, $step['statuses']); $rejected = $step['rejected'] ?? false; @endphp
@if($done && !$rejected)@elseif($rejected)@else{{ $i+1 }}@endif
@if(!$loop->last)
@endif
{{ $step['label'] }}
@if($done && isset($step['by']) && $step['by'])
{{ $step['by'] }}@if(isset($step['at']) && $step['at']) · {{ $step['at']->format('d M, H:i') }}@endif
@endif @if(isset($step['note']) && $step['note'])
{{ $step['note'] }}
@endif
@endforeach
{{-- ACTION PANELS — only shown when relevant --}} {{-- STEP 2: PM Actions --}} @if($requisition->status === 'pending_pm' && auth()->user()->hasAnyRole(['project_manager','super_admin']))
Project Manager Action Required

Review this requisition from {{ $requisition->requester->name }} and either approve it for the Inventory Manager or reject it.

@if($requisition->request_notes)
Requester notes: {{ $requisition->request_notes }}
@endif
@csrf @method('PATCH')
@csrf @method('PATCH')
@endif {{-- STEP 3: Inventory Manager checks stock --}} @if(in_array($requisition->status,['pm_approved','pending_inventory']) && auth()->user()->hasAnyRole(['store_keeper','super_admin']))
Inventory Manager — Stock Check
@if($requisition->material)
Current Stock: {{ $requisition->material->current_stock }} {{ $requisition->material->unit }} (requested: {{ $requisition->quantity }} {{ $requisition->unit }}) @if($requisition->material->current_stock >= $requisition->quantity) ✅ Sufficient stock available @else ⚠️ Insufficient stock @endif
@endif
@csrf
@endif {{-- STEP 3b: No stock — PM forwards to CEO --}} @if($requisition->status === 'no_stock' && auth()->user()->hasAnyRole(['project_manager','super_admin']))
Project Manager — Forward to CEO for Purchase Approval

No stock available. Specify estimated cost and forward to CEO for approval.

@csrf @method('PATCH')
@endif {{-- STEP 4a: CEO approves/rejects purchase --}} @if($requisition->status === 'pending_ceo_purchase')
CEO — Purchase Approval
Requested by PM: GH₵ {{ number_format($requisition->funds_requested??0,2) }} for purchase of {{ $requisition->quantity }} {{ $requisition->unit }} of {{ $requisition->item_description }}
@if($requisition->pm_notes)

PM Notes: {{ $requisition->pm_notes }}

@endif
@csrf @method('PATCH')
@csrf @method('PATCH')
@endif {{-- STEP 4b: CEO approves funds --}} @if($requisition->status === 'pending_funds' && auth()->user()->hasAnyRole(['ceo','super_admin']))
CEO — Fund Approval
Funds requested: GH₵ {{ number_format($requisition->funds_requested??0,2) }}
@csrf @method('PATCH')
@csrf @method('PATCH')
@endif {{-- STEP 5a: Inventory records purchase + uploads invoice --}} @if(in_array($requisition->status,['funds_approved','purchasing']) && auth()->user()->hasAnyRole(['store_keeper','super_admin']))
Inventory Manager — Record Purchase
Funds approved: GH₵ {{ number_format($requisition->funds_approved_amount??0,2) }}
@csrf
@endif {{-- STEP 5b: Release to site --}} @if($requisition->status === 'purchased' && auth()->user()->hasAnyRole(['store_keeper','super_admin']))
Inventory Manager — Release to Site Supervisor
@csrf
@endif {{-- Attachments panel --}} @if($requisition->purchase_invoice || $requisition->purchase_receipt || $requisition->release_attachment)
Attachments
@if($requisition->purchase_invoice) Invoice @endif @if($requisition->purchase_receipt) Receipt @endif @if($requisition->release_attachment) Release Note @endif
@endif {{-- Final summary when released --}} @if($requisition->status === 'released')
Requisition Complete

{{ $requisition->quantity }} {{ $requisition->unit }} of {{ $requisition->item_description }} released to Site Supervisor on {{ $requisition->released_at?->format('d M Y H:i') }}

@if($requisition->actual_purchase_cost)
Total Cost: GH₵ {{ number_format($requisition->actual_purchase_cost,2) }} · {{ $requisition->supplier_name }}
@endif
@endif
{{-- /col-md-7 --}}
{{-- /row --}} @endsection