@foreach ($data['modele_id'] as $i => $id) @php $modele = $data['modele_nom'][$i] ?? ''; $categorie = $data['categorie_nom'][$i] ?? ''; $image = $data['modele_image'][$i] ?? null; $quantite = (int) ($data['quantite'][$i] ?? 1); $prixRaw = $data['prix'][$i] ?? null; $clean = function ($v) { if ($v === null || $v === '') { return 0.0; } $s = str_replace(["\xc2\xa0", ' ', ' '], '', (string) $v); $s = str_replace(',', '.', $s); return is_numeric($s) ? (float) $s : 0.0; }; $prix = $clean($prixRaw); $colorId = $data['couleur_id'][$i] ?? null; $map = isset($data['couleur_nom_all'][$i]) ? json_decode($data['couleur_nom_all'][$i], true) : []; $color = $map[$colorId] ?? 'Non définie'; $inox = $inoxExtras[$i] ?? null; $decoup = $decoupeExtras[$i] ?? null; // Ordre des champs dynamiques avec couleur à la bonne place $fields = ['longueur', 'hauteur', 'finition', 'couleur', 'sens_ouverture', 'poignee', 'gonds', 'gache', 'description']; @endphp

{{ $modele }}

@if ($image) {{ $modele }} @endif

Catégorie : {{ $categorie }}

@foreach ($fields as $f) @php if ($f === 'couleur') { $val = $color; } else { $val = $data[$f][$i] ?? null; } @endphp @if (!empty($val))

{{ ucfirst(str_replace('_', ' ', $f)) }} : {{ $val }}@if (in_array($f, ['longueur', 'hauteur'])) mm @endif

@endif @endforeach @if ($inox && !empty($inox['id']))

Inox : {{ $inox['nom'] }}

@if (!empty($inox['image'])) Inox {{ $inox['nom'] }} @endif @endif @if ($decoup && !empty($decoup['id']))

Découpe : {{ $decoup['nom'] }}

@if (!empty($decoup['image'])) Découpe {{ $decoup['nom'] }} @endif @endif

Quantité : {{ $quantite }}

Prix HT : @if ($prixRaw !== null && $prixRaw !== '') {{ number_format($prix, 2, '.', ' ') }} € @else À définir @endif

@endforeach