@extends('layouts.app') @section('title', 'Import ICAP · ' . $organization->name) @section('eyebrow', 'Paramétrage') @section('heading', 'Import ICAP') @section('body_class', 'icap-import-page') @section('content') @php $summary = $preview['summary']; $expectedHost = data_get( $preview, 'organization_hint.host' ); @endphp
REPRISE INITIALE · LECTURE PRIVÉE

Importer les données des Pitchounets

Le jeu de données a été normalisé à partir des exports ICAP fournis. Il est verrouillé sur cette structure par son identifiant interne et son sous-domaine. Une sauvegarde chiffrée est créée avant toute modification.

{{ $hostAllowed ? 'Structure reconnue' : 'Import bloqué' }} {{ $expectedHost }}
Foyers {{ $summary['families'] }} regroupés sans doublon
Enfants {{ $summary['children'] }} fiches administratives
Responsables {{ $summary['guardians'] }} coordonnées consolidées
Contacts entourage {{ $summary['contacts'] }} autorisations à vérifier
DONNÉES PRÊTES

Contenu de la reprise

{{ $preview['dataset_version'] }}

Familles, responsables et enfants Identités, adresses, e-mails, téléphones, professions et autorité parentale.

Dossiers administratifs et médicaux Autorisations, médecin, assurance, régime allocataire et recommandations.

Contrats synthétiques 2026 Dates, statut et type de contrat, sans inventer les horaires hebdomadaires absents des exports.

Activité, facturation et Filoué {{ number_format( $summary['actual_hours_2026'], 2, ',', ' ' ) }} h réalisées · {{ number_format( $summary['billed_hours_2026'], 2, ',', ' ' ) }} h facturées · {{ number_format( $summary['billed_amount_2026'], 2, ',', ' ' ) }} €.

IMPORT PRODUCTION

Lancer la reprise initiale

Annulable
@if(!$hostAllowed)
Ce jeu de données ne peut être importé que dans {{ $organization->name }} depuis {{ $expectedHost }}.
@elseif($level < 2)
Votre droit permet de consulter cette page, mais pas de lancer l’import.
@else
Ce que fait le bouton
  1. crée un snapshot chiffré des données actuelles ;
  2. remplace uniquement le périmètre de cette structure ;
  3. importe l’ensemble dans une transaction unique ;
  4. contrôle que les autres crèches restent inchangées ;
  5. annule automatiquement toute écriture en cas d’erreur.
@csrf
@endif
CONTRÔLES

Éléments volontairement non déduits

{{ count($preview['warnings']) }} alertes documentées
@foreach($preview['warnings'] as $warning)
!

{{ $warning }}

@endforeach
HISTORIQUE

Imports et points de restauration

@if($history->isEmpty())
Aucun import exécuté Le premier snapshot sera créé au lancement.
@else
Date Version Résultat Statut Action
@foreach($history as $entry) @php $statusClass = match($entry->status) { 'completed' => 'positive', 'failed' => 'negative', 'rolled_back' => 'neutral', default => 'neutral', }; $statusLabel = match($entry->status) { 'completed' => 'Importé', 'failed' => 'Échec annulé', 'rolled_back' => 'Restauré', 'running' => 'En cours', 'snapshotting' => 'Sauvegarde', default => ucfirst($entry->status), }; @endphp
{{ $entry->created_at?->format('d/m/Y H:i') }} {{ $entry->dataset_version }} @if($entry->status === 'completed') {{ data_get( $entry->result_summary, 'children', 0 ) }} enfants · {{ data_get( $entry->result_summary, 'families', 0 ) }} foyers @elseif($entry->status === 'failed') {{ data_get( $entry->result_summary, 'error', 'Erreur inconnue' ) }} @else — @endif {{ $statusLabel }} @if( $level >= 3 && $latestReversibleImport && $latestReversibleImport->id === $entry->id )
@csrf
@else @endif
@endforeach
@endif
@endsection