@extends('layouts.app') @section('page-title', 'Edit Requisition') @section('content')

Edit Requisition

Cancel
@if($errors->any())
    @foreach($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif
@csrf @method('PUT') {{-- Title --}}
{{-- Engagement Type --}}
Request Details
{{-- Position Details --}}
Position Details
@php if (in_array($user->role->name, ['Admin', 'Manager'])) { $assignableRoles = $roles; } else { $service = app(\Vanguard\Services\RoleHierarchyService::class); $assignableNames = $service->getAllSubordinateRoles($user->role->name); $assignableRoles = $roles->filter(function($r) use ($assignableNames) { return in_array($r->name, $assignableNames); }); } @endphp
{{-- Proposed Coaches Table --}}
List of Proposed Positions
Coach Justification Roles & Responsibilities Action
Cancel
@php // Build usersByRole $rolesAll = \Vanguard\Role::all(); $usersByRoleData = []; $currentRole = $user->role ? $user->role->name : null; $currentCountyId = $user->county_id ?? null; $currentSubcountyId = $user->subcounty_id ?? null; $roleHierarchyMap = [ 'Admin' => ['Regional_Coordinator','County_Coordinator','Supervisor','Field_Officer','User','Finance','Manager','Partnerships_Growth_Manager'], 'Manager' => ['Regional_Coordinator','County_Coordinator','Supervisor','Field_Officer','User','Finance','Partnerships_Growth_Manager'], 'Regional_Coordinator' => ['County_Coordinator','Supervisor','Field_Officer','User'], 'County_Coordinator' => ['Supervisor','Field_Officer','User'], 'Supervisor' => ['Field_Officer','User'], 'Field_Officer'=> ['User'], 'User' => [], 'Finance' => [], 'Partnerships_Growth_Manager' => [] ]; foreach ($rolesAll as $roleItem) { if (in_array($currentRole, ['Admin','Manager'])) { $usersByRoleData[$roleItem->name] = \Vanguard\User::with('subcounty') ->where('role_id', $roleItem->id)->get() ->map(function($u) { return ['id' => $u->id, 'name' => $u->first_name.' '.$u->last_name, 'phone' => $u->phone ?? '', 'email' => $u->email ?? '', 'sub_county' => optional($u->subcounty)->name ?? '']; })->values(); } else { $subordinateRoles = $roleHierarchyMap[$currentRole] ?? []; if (in_array($roleItem->name, $subordinateRoles)) { $q = \Vanguard\User::with('subcounty')->where('role_id', $roleItem->id); if (in_array($currentRole, ['Regional_Coordinator','County_Coordinator'])) { $q->where('county_id', $currentCountyId); } elseif ($currentRole === 'Supervisor') { $q->where('subcounty_id', $currentSubcountyId); } $usersByRoleData[$roleItem->name] = $q->get()->map(function($u) { return ['id' => $u->id, 'name' => $u->first_name.' '.$u->last_name, 'phone' => $u->phone ?? '', 'email' => $u->email ?? '', 'sub_county' => optional($u->subcounty)->name ?? '']; })->values(); } else { $usersByRoleData[$roleItem->name] = collect(); } } } $usersByRoleData['all'] = in_array($currentRole, ['Admin','Manager']) ? \Vanguard\User::with('subcounty')->get()->map(function($u) { return ['id' => $u->id, 'name' => $u->first_name.' '.$u->last_name, 'phone' => $u->phone ?? '', 'email' => $u->email ?? '', 'sub_county' => optional($u->subcounty)->name ?? '']; })->values() : collect(); // Build existing coaches array $existingCoachesData = $requisition->proposedCoaches->map(function($c) { return [ 'full_name' => $c->full_name, 'phone_number' => $c->phone_number, 'email_address' => $c->email_address, 'sub_county_assigned' => $c->sub_county_assigned, 'roles_responsibilities' => $c->roles_responsibilities, 'justification' => $c->justification, 'coach_user_id' => $c->coach_user_id, ]; })->values()->toArray(); $engType = $requisition->engagement_type; $engRate = $requisition->engagement_rate; $engTotal = $requisition->engagement_total; @endphp @endsection