@php
use App\Support\PdfText;
$nombre = static fn ($v): string => number_format((float) $v, 1, ',', ' ');
@endphp
{{--
Fiche bénéficiaire — une page, imprimable (v2.0 §11).
Tout ce qu'un agent de la SMIT peut demander sur une personne tient ici : sa progression,
ses heures détaillées par nature, ses quiz, ses livrables, ses présences. Densité assumée,
corps de texte réduit : la contrainte de la page unique prime sur le confort de lecture,
parce qu'une fiche de trois pages ne se glisse pas dans un dossier.
--}}
@php $logo = \App\Support\Identite::cheminLogo(); @endphp
@if ($logo !== null)
 |
@endif
{{ $companyName }}
Fiche de suivi d'incubation
|
{{ PdfText::clean($apprenant->programme?->titre_fr ?? '') }}
Marché {{ PdfText::clean($apprenant->programme?->referenceMarche() ?? '—') }}
{{ PdfText::clean($apprenant->programme?->nomAcheteur() ?? '') }}
|
{{ PdfText::clean($apprenant->nomComplet) }}
@if (filled($apprenant->projet_intitule))
Projet : {{ PdfText::clean($apprenant->projet_intitule) }}
@endif
{{ PdfText::clean(collect([$apprenant->village, $apprenant->douar])->filter()->implode(' · ')) ?: '—' }}
@if ($apprenant->annee_naissance) · née/né en {{ $apprenant->annee_naissance }} @endif
@if ($apprenant->telephone) · {{ $apprenant->telephone }} @endif
Parcours : {{ PdfText::clean($apprenant->parcours?->titre_fr ?? 'non affecté') }}
· Statut : {{ $apprenant->statut?->label() }}
· Dernière activité : {{ $apprenant->derniere_activite_at?->format('d/m/Y') ?? 'jamais' }}
|
Volume horaire d'incubation
| {{ $nombre($heures) }} h |
objectif contractuel {{ $nombre($objectif) }} h · {{ $pourcentage }} %
|
{{-- La jauge quadricolore : une couleur par nature, comme côté bénéficiaire. --}}
@foreach ($natures as $ligne)
@if ($ligne['part'] > 0)
|
@endif
@endforeach
@php $reste = max(0, 100 - collect($natures)->sum('part')); @endphp
@if ($reste > 0)
|
@endif
@if ($atteint)
Objectif horaire atteint.
@elseif ($projection)
Au rythme actuel, l'objectif sera atteint le {{ $projection->format('d/m/Y') }}.
@else
Rythme insuffisant pour projeter une date d'atteinte.
@endif
@if ($eligibilite['eligible'])
attestation possible
@endif
|
Heures par nature
@foreach ($natures as $ligne)
|
|
{{ $ligne['nature']->label() }} |
{{ $nombre($ligne['heures']) }} h |
@endforeach
Parcours pédagogique
@forelse ($etapes as $etape)
| {{ PdfText::clean($etape['module']->titre_fr) }} |
{{ $etape['sequences_terminees'] }}/{{ $etape['sequences_total'] }} |
{{ ['termine' => 'terminé', 'en_cours' => 'en cours', 'a_venir' => 'à venir', 'verrouille' => 'verrouillé'][$etape['etat']] }}
|
@empty
| Aucun module rattaché au parcours. |
@endforelse
|
Quiz réussis
@forelse ($quiz as $tentative)
| {{ PdfText::clean($tentative->quiz?->titre_fr ?? '') }} |
{{ $tentative->score }} % |
{{ $tentative->terminee_at?->format('d/m/Y') }} |
@empty
| Aucun quiz réussi à ce jour. |
@endforelse
Livrables
@forelse ($rendus as $rendu)
| {{ PdfText::clean($rendu->livrable?->titre_fr ?? '') }} |
{{ $rendu->mode?->label() }} |
{{ $rendu->statut?->label() }}
|
@empty
| Aucun livrable rendu à ce jour. |
@endforelse
Présences aux sessions collectives
@forelse ($presences as $presence)
| {{ PdfText::clean($presence->session?->titre ?? '') }} |
{{ PdfText::clean($presence->session?->lieu ?? '') }} |
{{ $presence->session?->date?->format('d/m/Y') }} |
@empty
| Aucune présence enregistrée. |
@endforelse
|
@unless ($eligibilite['eligible'])
Conditions restant à remplir pour l'attestation de bonne fin
{{ implode(' ', $eligibilite['motifs']) }}
@endunless
{{ $companyName }} — fiche établie le {{ $generatedAt->format('d/m/Y à H:i') }}.
Document interne contenant des données personnelles : diffusion restreinte.