@foreach ($requiredDocs as $docId) @php $docData = collect($documentData)->firstWhere('c_document_id', $docId); if (!$docData) continue; // Prefer many_latest_files when available, otherwise fall back to latest_files or wpc_repa_file_details if (!empty($docData['many_latest_files'])) { $allFiles = $docData['many_latest_files'] ?? $docData['latest_files'] ?? $docData['wpc_repa_file_details'] ?? []; } else { $allFiles = $docData['latest_files'] ?? $docData['many_latest_files'] ?? $docData['wpc_repa_file_details'] ?? []; } // Normalise to a collection — wrap single-file arrays in an outer array $filesCollection = collect( isset($allFiles['id']) || isset($allFiles['c_file_path']) ? [$allFiles] : $allFiles ); // Find the file that matches the current license ID (or has no license ID) $fileDetails = $filesCollection->first(function ($file) use ($licId) { $fileLicId = $file['license_id'] ?? $file['n_license_id'] ?? null; if (!empty($licId)) { return (string) $fileLicId === (string) $licId; } return is_null($fileLicId); }); $verified = $fileDetails['c_verified'] ?? null; $nVer = $fileDetails['n_ver'] ?? 0; $required = $docData['is_required'] ?? false; $version = match ($verified) { 'N' => $nVer, 'R' => $nVer + 1, default => 0, }; if ($verified === 'R') { // Rejected — clear file info so the upload form starts fresh $fileName = ''; $filePath = ''; $signDetails = []; } else { $fileName = $fileDetails['c_file_name'] ?? ''; $filePath = $fileDetails['c_file_path'] ?? ''; $rawSignDetails = $fileDetails['sign_details'] ?? []; $signDetails = is_string($rawSignDetails) ? json_decode($rawSignDetails, true) : $rawSignDetails; } @endphp @if ($verified === 'Y') {{-- File is verified — show read-only status only --}} @elseif ($verified === 'R') {{-- File is rejected — show status banner, then re-upload form --}} @if (isset($isSimpleDoc)) @else @endif @else {{-- File is new / pending — show upload form directly --}} @if (isset($isSimpleDoc)) @else @endif @endif @endforeach