@php $nf = fn($valeur, $decimales = 0) => number_format((float) $valeur, $decimales, ',', ' '); $classe = $classe_exposition !== '' ? "'".$classe_exposition."'" : ''; $c = $controles; @endphp
Centrale :     {{ $centrale->centrale_code ?? '' }} - {{ $centrale->centrale_nom ?? '' }} @if($logo)@endif
{{-- Identification de la formule --}}
{{ $formule->formule_code }} {{ $formule->formule_libelle }}
{{ $formule->formule_libelle_commercial ?: ($formule->formule_nom ?: $formule->formule_app_commerciale) }}
Classe d'exposition {{ $classe_exposition }} Classe de résistance {{ $c['resistance']['code_norme'] }}
Dmax {{ $dmax ? $nf($dmax, $dmax == floor($dmax) ? 0 : 1) : '' }} Plasticité {{ $formule->lier_classe_consistance->classe_consistance_libelle ?? '' }}
Classe de chlorure {{ $c['chlorure']['maximum'] !== null ? $nf($c['chlorure']['maximum'], 2) : '' }} Spécificité {{ $formule->lier_specificite->specificite_libelle ?? '' }}
{{-- Composition --}} @foreach($lignes_composition as $ligne) @endforeach
Composition
Type produit Libellé Fournisseur Quantité
{{ $ligne['type'] }} {{ $ligne['libelle'] }} {{ $ligne['fournisseur'] }} {{ $ligne['quantite'] }}
{{-- Conformité --}}
Conformité à la norme {{ $conforme ? 'Formulation conforme.' : 'Formulation non conforme.' }}
L'analyse de la formule nous apporte les éléments suivants :
Classe d'exposition : {{ $classe }} {{ $formule->lier_classe_exposition->classe_exposition_information ?? '' }} {{ $formule->lier_specificite->specificite_libelle ?? '' }} @if(!$norme) @if($classe_exposition === '')
Le code norme de la classe d'exposition n'est pas renseigné. @else
Aucune contrainte normative n'est définie pour cette classe d'exposition. @endif @endif
Résistance caractéristique à 28 jours sur cylindre
@if($c['resistance']['cylindre'] === null) Le code norme de la classe de résistance n'est pas renseigné.
@else Dans la formule : {{ $c['resistance']['cylindre'] }} N/mm2
@endif @if($c['resistance']['cylindre_mini'] !== null) Théorique pour un béton de classe d'exposition {{ $classe }} : {{ $c['resistance']['cylindre_mini'] }} N/mm2
@if($c['resistance']['conforme_cylindre']) La résistance caractéristique sur cylindre est conforme. @else La résistance caractéristique sur cylindre n'est pas conforme. @endif @else Il n'y a pas de résistance minimale spécifiée pour cette classe d'exposition. @endif
Bilan des chlorures
@if($c['chlorure']['maximum'] !== null) % de chlorures maximum autorisé : {{ $nf($c['chlorure']['maximum'], 4) }} %
@endif % de chlorures calculé pour les composants de la formule : {{ $nf($c['chlorure']['pourcentage'], 4) }} % de ciment
@if($c['chlorure']['conforme'] === null) Aucune classe de chlorure n'est définie pour la formule. @elseif($c['chlorure']['conforme']) La quantité est conforme @else La quantité n'est pas conforme @endif
Résistance caractéristique à 28 jours sur cube
@if($c['resistance']['cube'] === null) Le code norme de la classe de résistance n'est pas renseigné.
@else Dans la formule : {{ $c['resistance']['cube'] }} N/mm2
@endif @if($c['resistance']['cube_mini'] !== null) Théorique pour un béton de classe d'exposition {{ $classe }} : {{ $c['resistance']['cube_mini'] }} N/mm2
@if($c['resistance']['conforme_cube']) La résistance caractéristique sur cube est conforme. @else La résistance caractéristique sur cube n'est pas conforme. @endif @else Il n'y a pas de résistance minimale spécifiée pour cette classe d'exposition. @endif
Bilan des alcalins
Quantité calculée pour les composants de la formule : {{ $nf($c['alcalin']['quantite'], 4) }} kg/m3
Il n'y a pas de valeur limite spécifiée pour cette information
LIANTS:
@if($c['liant']['minimum'] !== null) Dosage minimum imposé par la norme pour une classe d'exposition {{ $classe }} : {{ $nf($c['liant']['minimum']) }} kg/m3
@endif Dosage réel dans la formule : {{ $nf($calcul['qteCKA']) }} kg/m3
@if($dmax) La valeur DMax pour la granularité est : {{ $nf($dmax, $dmax == floor($dmax) ? 0 : 1) }} mm
@endif @if($c['liant']['minimum'] !== null) @php $modulation = round(($c['liant']['correction'] - 1) * 100, 2); @endphp @if($modulation == 0) Pas de correction apportée à la valeur minimum de ciment
@else Modulation suivant le Dmax : {{ $modulation > 0 ? '+' : '' }}{{ $nf($modulation, $modulation == floor($modulation) ? 0 : 1) }} % par rapport au dosage mini (20 mm), soit {{ $nf($c['liant']['minimum_corrige']) }} kg/m3
@endif @if($c['liant']['conforme']) Le dosage est conforme. @else Le dosage n'est pas conforme. @endif @else Il n'y a pas de dosage minimum spécifié pour cette classe d'exposition. @endif
 
Analyse du rapport Eeff/liant éq maximal
Eau de la formule : {{ $nf($calcul['eau_totale']) }} kg/m3
Eau efficace : {{ $nf($calcul['eau_efficace']) }} kg/m3 (calcul)
Eau absorbée : {{ $nf($calcul['eau_absorbee']) }} kg/m3
Eau adjuvants : ({{ $nf($calcul['volume_adjuvant'], 2) }}) {{ $nf($calcul['eau_adjuvant']) }} kg/m3 (seuil = {{ $nf(\App\Services\formule_conformite_service::SEUIL_EAU_ADJUVANT, 1) }} l/m3)
Total des ciments : {{ $nf($calcul['qteC']) }}
Liant équivalent (C+kA) : {{ $nf($calcul['qteCKA']) }} kg/m3 (calcul)
Rapport Eeff/(C+kA) : {{ $nf($calcul['rapport_eau_liant'], 3) }} (calcul)
@if($c['eau']['maximum'] !== null) Rapport maximum théorique pour la classe d'exposition {{ $classe }} : {{ $nf($c['eau']['maximum'], 3) }}
@if($c['eau']['conforme']) Le rapport est conforme @else Le rapport n'est pas conforme @endif @else Il n'y a pas de rapport maximum spécifié pour cette classe d'exposition. @endif
La quantité d'air définie dans la recette est de {{ $nf($c['air']['air_formule']) }} l/m3
@if($c['air']['entraineur_air']) La formule comprend un adjuvant agissant en tant qu'agent entraîneur d'air
@endif @if($c['air']['minimum'] !== null) Le minimum requis est de {{ $nf($c['air']['minimum']) }} l/m3
@if(!$c['air']['conforme']) La quantité d'air n'est pas conforme. @endif @else Il n'y a pas de minimum d'air requis pour cette classe d'exposition. @endif
@if(!$c['addition']['presente']) Il n'y a pas d'addition dans la formule. Le rapport A/(A+C) n'a pas de sens. @else Addition : {{ $calcul['addition']['libelle'] }} ({{ $calcul['addition']['type'] ?: 'type non renseigné' }}, k = {{ $nf($calcul['addition']['coef'], 2) }})
Rapport A/(A+C) : {{ $nf($calcul['aac'], 3) }} @if($calcul['ratio_max_addition'] !== null) (maximum autorisé : {{ $nf($calcul['ratio_max_addition'], 2) }})
@if($c['addition']['plafonnee']) Le rapport dépasse la valeur maximale : seuls {{ $nf($calcul['qte_addition_retenue']) }} kg/m3 d'addition sont pris en compte dans le liant équivalent. @else Le rapport est conforme. @endif @else
Le rapport maximal n'est pas défini pour ce type de ciment et d'addition. @endif @endif
@if($c['ciment']['nature'] === '') Le type de ciment n'est pas précisé pour cette classe d'environnement. @else Type de ciment imposé pour cette classe d'environnement : {{ $c['ciment']['nature'] }}
Type de ciment de la formule : {{ $calcul['type_ciment'] ?: 'non renseigné' }}
@if($c['ciment']['conforme']) Le type de ciment est conforme. @else Le type de ciment n'est pas conforme. @endif @endif