@if(session('error'))
{{ session('error') }}
@endif @if(session('success'))
{{ session('success') }}
@endif

@if($step === 1) Importa alimenti da CSV @else Binding colonne CSV → banca dati @endif

{{-- STEP 1: scelta banca dati + upload file --}} @if($step === 1)

Il file CSV deve usare il separatore ; (punto e virgola) e una riga di intestazione come da schema banca dati.

@if($uploadError)
Errore nel file CSV:
{{ $uploadError }}
@endif
@error('banca_dati_id')
{{ $message }}
@enderror
@error('file')
{{ $message }}
@enderror Max 10 MB. Separatore: punto e virgola (;).
@else {{-- STEP 2: binding colonne --}}

Abbiamo letto le intestazioni dal file CSV. Per ogni campo della banca dati seleziona la colonna corrispondente, oppure scegli Nessuna (imposta NULL) se il CSV non contiene quel dato.

@if($bindingError)
{{ $bindingError }}
@endif
@php $bindable = \App\Services\Import\AlimentiCsvImporter::getBindableFields(); @endphp @foreach($bindable as $key => $label) @php $currentVal = $columnBinding[$key] ?? '__null__'; $currentVal = (string) $currentVal; $options = [ ['value' => '__null__', 'label' => '-- Nessuna (imposta NULL) --'], ]; foreach ($csvHeaders as $idx => $headerLabel) { $options[] = ['value' => (string) $idx, 'label' => '[' . $idx . '] ' . ($headerLabel ?: 'Colonna senza nome')]; } @endphp @endforeach
Campo database Colonna CSV
{{ $label }} @if(in_array($key, ['alim_code', 'alim_nom_it', 'alim_grp_nom_eng'])) Obbligatorio @endif
Nessuna corrispondenza
@endif
@push('js') @endpush