{{-- Seleção de escopos organizacionais autorizados para um projeto de Cronogramas. Variáveis esperadas: $scopeOptions → array{structures, unidades, empresas} $selectedScopes → array{structures: string[], unidades: string[], empresas: string[]} --}} @php $selectedScopes = $selectedScopes ?? ['structures' => [], 'unidades' => [], 'empresas' => []]; $selectedStructures = $selectedScopes['structures'] ?? []; $selectedUnidades = $selectedScopes['unidades'] ?? []; $selectedEmpresas = $selectedScopes['empresas'] ?? []; $structuresDataset = ($scopeOptions['structures'] ?? collect())->map(function ($structure) { $label = trim(($structure->abbreviation ? $structure->abbreviation . ' - ' : '') . $structure->name); return [ 'id' => $structure->id, 'label' => $label, 'search' => mb_strtolower(trim(($structure->abbreviation ?? '') . ' ' . ($structure->name ?? ''))), ]; })->values()->all(); $unidadesDataset = ($scopeOptions['unidades'] ?? collect())->map(function ($unidade) { $secretariaAbbrev = optional($unidade->secretaria)->abbreviation ?? ''; $secretariaName = optional($unidade->secretaria)->name ?? ''; $subtitle = trim($secretariaAbbrev ?: $secretariaName); $label = $unidade->abbreviation . ' - ' . $unidade->name; return [ 'id' => $unidade->id, 'label' => $label, 'subtitle' => $subtitle !== '' ? $subtitle : null, 'search' => mb_strtolower(trim( ($unidade->abbreviation ?? '') . ' ' . ($unidade->name ?? '') . ' ' . $secretariaAbbrev . ' ' . $secretariaName )), ]; })->values()->all(); $empresasDataset = ($scopeOptions['empresas'] ?? collect())->map(function ($empresa) { $label = trim((string) ($empresa->nomeFantasia ?: $empresa->razaoSocial ?: $empresa->cnpj)); $cnpj = trim((string) ($empresa->cnpj ?? '')); return [ 'id' => $empresa->id, 'label' => $label, 'subtitle' => $cnpj !== '' && $cnpj !== $label ? $cnpj : null, 'search' => mb_strtolower(trim( ($empresa->nomeFantasia ?? '') . ' ' . ($empresa->razaoSocial ?? '') . ' ' . preg_replace('/\D/', '', $cnpj) )), ]; })->values()->all(); @endphp