Inventaire SharePoint chantier ENVOL (#1232)

Lecture seule Graph · un programme par appel · persistance storage/app/inventaire_sharepoint_chantier/ · pas de migration · pas de modification SharePoint

Risque n°1 : un échec Graph doit apparaître en erreur, jamais comme dossier « vide ». Relancer avec ?reset=1 pour recommencer un programme. Continuer un inventaire incomplet : même URL /run sans reset.

Agrégat JSON Index JSON

Programmes VEFA

@forelse ($programmes as $p) @empty @endforelse
ID Libellé SP Statut inventaire Actions
{{ $p['id'] }} {{ $p['libelle'] }} {{ $p['sharepoint_item_id'] ? 'oui' : 'non' }} @if ($p['inventaire'] === null) — @else {{ $p['inventaire']['status'] }} · dossiers {{ $p['inventaire']['folders_count'] }} · fichiers {{ $p['inventaire']['files_count'] }} · err {{ $p['inventaire']['errors_count'] }} · queue {{ $p['inventaire']['queue_remaining'] }} @endif @if ($p['sharepoint_item_id']) Démarrer Continuer JSON @else pas de dossier SP @endif
Aucun programme VEFA trouvé (filtre métier enseigne).

Agrégat (programmes status=done uniquement)

{{ count($aggregate['programmes_done'] ?? []) }} programme(s) terminé(s). Volumes locaux ≠ prod.

@foreach (($aggregate['verdicts'] ?? []) as $key => $v) @endforeach
Dossier Verdict global Fichiers Manuel ERP
{{ $key }} {{ $v['verdict_global'] ?? '—' }} {{ $v['nb_fichiers'] ?? 0 }} {{ $v['nb_manuel'] ?? 0 }} {{ $v['nb_erp'] ?? 0 }}