// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Réception et analyse d'un fichier d'import issu de GEPI Absences 2
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'import_gepi' && $periode_id) {
    // Récupération du fichier
    $result = FileSystem::recuperer_upload(CHEMIN_DOSSIER_IMPORT, $fichier_dest, $tab_extensions_autorisees, NULL, NULL, '');
    if ($result !== TRUE) {
        exit('Erreur : ' . $result);
    }
    // Récupération des données du fichier
    $contenu = file_get_contents(CHEMIN_DOSSIER_IMPORT . $fichier_dest);
    $contenu = To::deleteBOM(To::utf8($contenu));
    // Mettre en UTF-8 si besoin et retirer le BOM éventuel
    $tab_lignes = extraire_lignes($contenu);
    // Extraire les lignes du fichier
    $separateur = extraire_separateur_csv($tab_lignes[0]);
    // Déterminer la nature du séparateur
    unset($tab_lignes[0]);
    // Supprimer la 1e ligne
    // Aanalyse et maj du contenu de la base
    $tab_users_fichier = array();
    foreach ($tab_lignes as $ligne_contenu) {
        $tab_elements = str_getcsv($ligne_contenu, $separateur);
        $tab_elements = array_slice($tab_elements, 0, 7);
        if (count($tab_elements) == 7) {
            list($elenoet, $nom, $prenom, $classe, $nb_absence, $nb_absence_nj, $nb_retard) = $tab_elements;
            $tab_users_fichier[] = array(NULL, Clean::entier($elenoet), Clean::nom($nom), Clean::prenom($prenom), Clean::entier($nb_absence), Clean::entier($nb_absence_nj), Clean::entier($nb_retard), NULL);
        }
    }
    $nb_eleves_trouves = count($tab_users_fichier, COUNT_NORMAL);
    if (!$nb_eleves_trouves) {
if($ACTION=='uploader_saisie_csv')
{
  $fichier_nom = 'saisie_deportee_'.$_SESSION['BASE'].'_'.$_SESSION['USER_ID'].'_'.Clean::fichier($BILAN_TYPE).'_'.$periode_id.'_'.$groupe_id.'_'.$BILAN_ETAT.'_'.fabriquer_fin_nom_fichier__date_et_alea();
  $result = FileSystem::recuperer_upload( CHEMIN_DOSSIER_IMPORT /*fichier_chemin*/ , $fichier_nom.'.<EXT>' /*fichier_nom*/ , array('txt','csv') /*tab_extensions_autorisees*/ , NULL /*tab_extensions_interdites*/ , NULL /*taille_maxi*/ , NULL /*filename_in_zip*/ );
  if($result!==TRUE)
  {
    exit('Erreur : '.$result);
  }
  $contenu_csv = file_get_contents(CHEMIN_DOSSIER_IMPORT.FileSystem::$file_saved_name);
  $contenu_csv = To::deleteBOM(To::utf8($contenu_csv)); // Mettre en UTF-8 si besoin et retirer le BOM éventuel
  $tab_lignes = extraire_lignes($contenu_csv); // Extraire les lignes du fichier
  if(count($tab_lignes)<4)
  {
    exit('Erreur : absence de données suffisantes (fichier comportant moins de 4 lignes) !');
  }
  $separateur = extraire_separateur_csv($tab_lignes[2]); // Déterminer la nature du séparateur
  // Données de la ligne d'en-tête
  $tab_elements = str_getcsv($tab_lignes[0],$separateur);
  unset($tab_lignes[0]);
  list($string_references,$titre) = $tab_elements + array_fill(0,2,NULL); // Evite des NOTICE en initialisant les valeurs manquantes
  $tab_references = explode('_',$string_references);
  if(count($tab_references)!=5)
  {
    exit('Erreur : ligne d\'en-tête invalide !');
  }
  list($csv_bilan_type,$csv_bilan_etat,$csv_user_id,$csv_periode_id,$csv_groupe_id) = $tab_references;
  if($csv_bilan_type!=$BILAN_TYPE)
  {
    exit('Erreur : type de bilan non concordant ('.$csv_bilan_type.' reçu / '.$BILAN_TYPE.' attendu) !');
  }
  if($csv_bilan_etat!=$BILAN_ETAT)