@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