Importação de empresas (CSV Humanittare)
Delimitador ;, layout «CARGA DE DADOS HI - EMPRESAS». Sem login — use apenas em ambiente controlado.
@if(session('error'))
{{ session('error') }}
@endif
@if(session('import_result'))
@php($r = session('import_result'))
@php($importErrors = ($r['summary']['errors'] ?? 0) > 0)
Importação concluída —
total: {{ $r['summary']['total'] ?? 0 }},
criadas: {{ $r['summary']['created'] ?? 0 }},
atualizadas: {{ $r['summary']['updated'] ?? 0 }},
ignoradas: {{ $r['summary']['skipped'] ?? 0 }},
erros: {{ $r['summary']['errors'] ?? 0 }}.
@if($importErrors)
Erros por linha (primeiras 15):
@foreach(collect($r['rows'] ?? [])->where('status', 'error')->take(15) as $errRow)
- Linha {{ $errRow['line'] ?? '?' }}: {{ $errRow['message'] ?? 'Erro desconhecido' }}
@endforeach
@endif
JSON da importação
@json($r, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
@endif
@if(session('simulate_result'))
@php($s = session('simulate_result'))
Simulação concluída — nada foi gravado na base de dados.
@include('imports.partials.companies-simulate-preview', ['simulateResult' => $s])
@endif
1. Simular (pré-visualização)
Mostra, por linha do CSV, o que seria gravado em groups, companies, company_type_index e company_contacts.
2. Importar (gravar na base de dados)
Executa a mesma lógica da simulação e persiste os registos. Com planilha completa, Localize e ViaCEP são omitidos (mais rápido). Se estourar tempo, use IMPORT_MAX_EXECUTION_SECONDS=0 no .env.
API JSON (opcional)
POST {{ url('/api/public/imports/companies') }} — importação (multipart file).
POST {{ url('/api/public/imports/companies/simulate') }} — simulação (mesmo formato).