@props(['purchaseRequest']) @php $prId = $purchaseRequest->id; $prefix = 'mprEdit' . $prId; // Re-open on validation error only when THIS request was being edited $repop = $errors->any() && (string) old('_edit_request_id') === (string) $prId; // Load items if not already eager-loaded $prItems = $purchaseRequest->relationLoaded('items') ? $purchaseRequest->items : $purchaseRequest->load('items')->items; $existingItems = $repop && old('items') ? collect(old('items'))->map(fn($i) => (object)$i) : $prItems; // Current field values (old() values take priority when repopulating) $curDate = $repop ? old('date', $purchaseRequest->date ? \Carbon\Carbon::parse($purchaseRequest->date)->format('Y-m-d') : '') : ($purchaseRequest->date ? \Carbon\Carbon::parse($purchaseRequest->date)->format('Y-m-d') : ''); $curProject = $repop ? old('project_name', $purchaseRequest->project_name ?? '') : ($purchaseRequest->project_name ?? ''); $curReqBy = $repop ? old('requested_by_name', $purchaseRequest->requested_by_name ?? '') : ($purchaseRequest->requested_by_name ?? ''); $curReqDate = $repop ? old('required_date_text', $purchaseRequest->required_date_text ?? '') : ($purchaseRequest->required_date_text ?? ''); $curLoc = $repop ? old('location', $purchaseRequest->location ?? '') : ($purchaseRequest->location ?? ''); $curDept = $repop ? old('department', $purchaseRequest->department ?? '') : ($purchaseRequest->department ?? ''); $curRemarks = $repop ? old('remarks', $purchaseRequest->remarks ?? '') : ($purchaseRequest->remarks ?? ''); // Projects & locations for cascading dropdowns $editProjects = \App\Models\Settings\ProjectSetting::active() ->with(['locations' => function ($q) { $q->where('is_active', true)->orderBy('name'); }]) ->orderBy('name') ->get(); $editProjectsData = $editProjects->map(function ($p) { return [ 'id' => $p->id, 'name' => $p->name, 'locations' => $p->locations->map(fn($l) => ['name' => $l->name])->values()->toArray(), ]; })->values()->toArray(); $editProjectsJson = json_encode($editProjectsData); // Check if current project is in the list $curProjectInList = $editProjects->contains('name', $curProject); @endphp {{-- ── Trigger button ── --}} {{-- ── Modal overlay ── --}}