{{-- Le tableau « en plus / en moins » de la fiche : ce qui a été posé en plus ou en moins par rapport au devis, à facturer ou offert. Digicode : 1 en + // − à facturer / offert Une ligne par article de ce métier (config rapport_chantiers.articles), dans l'ordre du papier. Rien n'est obligatoire : une ligne laissée vide n'est pas enregistrée (RapportChantierController::enregistrerArticles). Les deux choix d'une ligne sont des boutons qui se décochent en les retouchant (js/rapports-chantier.js, `.rapport-bascule`) : sans « — » par ligne, le tableau tient en largeur de téléphone. Paramètres : $rapport le RapportChantier (vierge à la création) $label le titre du bloc --}} @php $lignes = $rapport->exists ? $rapport->articles->keyBy('article') : collect(); $sens = config('rapport_chantiers.sens'); $facturation = config('rapport_chantiers.facturation'); // `old()` d'abord, comme toute la fiche : un retour de validation // retrouve ce qui venait d'être saisi. $valeur = fn (string $code, string $champ) => old("articles.{$code}.{$champ}", $lignes->get($code)?->$champ); @endphp
{{ __('Par rapport au devis. Retouchez un choix pour le décocher.') }}
@foreach ($rapport->articlesProposes() as $code => $article) @php $quantite = $valeur($code, 'quantite'); // « 2.00 » en base, « 2 » à l'écran. $quantite = $quantite === null || $quantite === '' ? '' : rtrim(rtrim((string) $quantite, '0'), '.'); $sensCourant = (string) $valeur($code, 'sens'); $factCourante = (string) $valeur($code, 'facturation'); @endphp
@if (!empty($article['libre'])) @else {{ __($article['label']) }} @endif @if (empty($article['sans_quantite']))
@if (!empty($article['unite'])) {{ $article['unite'] }} @endif
@endif
@foreach ($sens as $cle => $libelle) @php $id = "article_{$code}_sens_{$cle}"; @endphp @endforeach
@foreach ($facturation as $cle => $option) @php $id = "article_{$code}_fact_{$cle}"; @endphp @endforeach
@endforeach