level_1) { /***************************************************/ /* Export la liste des étudiants d'un groupe donné */ /***************************************************/ case 'export_userlist_group': // Vérification de la présence des groupes if( isset($request->grouplist) && $request->grouplist != null ){ //On crée une instance du fichier xls,activation de la feuille $workbook = new PHPExcel(); $sheet = $workbook->getActiveSheet(); $writer = new PHPExcel_Writer_Excel2007($workbook); // Définition des paramètres du document $workbook->getProperties()->setCreator($_SESSION['identifiant']); $workbook->getProperties()->setLastModifiedBy('ACGA'); $workbook->getProperties()->setTitle('Liste étudiants '.$_SESSION['annee']); // Définition du format des cellules (document Excel) $sheet->getColumnDimension('B')->setWidth(20); $sheet->getColumnDimension('C')->setWidth(20); $sheet->getColumnDimension('D')->setWidth(15); $sheet->getColumnDimension('E')->setWidth(8); $sheet->getColumnDimension('F')->setWidth(35); $sheet->getColumnDimension('G')->setWidth(12); $sheet->getColumnDimension('H')->setWidth(12); // Écriture des colonnes du tableau $sheet->setCellValue('B1', "GROUPE DES ETUDIANTS DE L'ANNEE ".$_SESSION['annee']); $sheet->setCellValue('A2', date("d/m/Y G:m")); $sheet->setCellValue('A4', 'Numéro'); $sheet->setCellValue('B4', 'Nom'); $sheet->setCellValue('C4', 'Prénom'); $sheet->setCellValue('D4', 'Identifiant'); $sheet->setCellValue('E4', 'Sexe'); $sheet->setCellValue('F4', 'Mail étudiant'); $sheet->setCellValue('G4', 'Code IAE'); $sheet->setCellValue('H4', 'IAE Etape'); // Écriture des valeurs dans le document Excel $index = 5; foreach ( $request->grouplist as $group ) { $groupeName = $group['nom']; $formation = $group['formation']; foreach ( $group['userlist'] as $student ) { $sheet->setCellValue('A'.$index, $index-4); $sheet->setCellValue('B'.$index, $student['nom']); $sheet->setCellValue('C'.$index, $student['prenom']); $sheet->setCellValue('D'.$index, $student['identifiant']); $sheet->setCellValue('E'.$index, $student['sexe']); $sheet->setCellValue('F'.$index, $student['mail']); $sheet->setCellValue('G'.$index, $formation); $sheet->setCellValue('H'.$index, $groupeName); $index++; } } // A refaire, incompréhensible et beaucoup plus facile à faire C.F : export notes--> //On enregistre ce nouveau fichier, et on lance son téléchargement $docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates", "Liste Etudiant ".$_SESSION['annee'].".xlsx")); if(file_exists (__ROOT__.$docPath)){ $index = 1; $titleLen = strlen($docPath) - 5; while(file_exists (__ROOT__.$docPath)){ $docPath = mb_strimwidth($docPath, 0, $titleLen, "")." (".$index.").xlsx"; $index++; } } $writer->save(__ROOT__.$docPath); $answer->docPath = $docPath; } // <-- // Erreur de paramètre(s) else { $answer->request = 'param_error'; } break; /***************************************************************/ /* Importation des listes d'élèves de l'année en format Excel */ /***************************************************************/ case 'import_userlist_group': if(isset($request->docPath)) { // Récupération du nom du fichier $inputFileName = $request->docPath; // Chargement du fichier $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // Placement du curseur sur la première case $sheet = $objPHPExcel->getSheet(0); $mccData = $sheet->rangeToArray('B5:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); // Variables stack pour la liste de élèves $listeEleves = array(); // Boucle sur le format suivant : ligne[1] : [ COMPOSANT ] / ligne[2] : [ IAE ] / ligne[3] : [ IAE (code) ] / ligne[4] : [IAE (lib) ] / ligne[5] : [ INSCRIPTION EN COURS ] / ligne[6] : [ REDOUBLANT ] / ligne[7] : [ CODE ETUDIANT ] // ligne[8] : [NOM] / ligne[9] : [ PRÉNOM ] / ligne[10] : [ SEXE ] / ligne[11] : [ NAISSANCE ] / ligne[12] : [ MAIL ] / ligne[13] : [ SPORTIF ] foreach($mccData as $line) { if($line[1] != null) { array_push($listeEleves,array($line[1],$line[2],$line[3],$line[4],$line[5],$line[6],$line[7],$line[8],$line[9],$line[10],$line[11],$line[12],$line[13])); } } $answer->request = 'success'; } } // Erreur de paramètre(s) else { $answer->request='param_error'; } break; /*// EXPORTATION DE NOTES POUR UN CONTROLE DONNEE, UNE FORMATION DONNEE ET UN GROUPE DONNE case 'export_notes': //vérificationd es paramètres en entrée if(isset($request->formation) && isset($request->groupe) && isset($request->controle)){ // Création / Activation de la feuille $workbook = new PHPExcel(); $sheet = $workbook->getActiveSheet(); $writer = new PHPExcel_Writer_Excel2007($workbook); $workbook->getProperties()->setTitle($request->formation." ".$request->groupe." ".$request->controle. date("d/m/Y G:m")); $sheet->getColumnDimension('A')->setWidth(20); $sheet->getColumnDimension('B')->setWidth(20); $sheet->getColumnDimension('C')->setWidth(10); // Écriture de l'en-tête du document $sheet->setCellValue('A1',$request->formation." ".$request->groupe." ".$request->controle); $sheet->setCellValue('B1', date("d/m/Y G:m")); $sheet->setCellValue('A3', 'Nom'); $sheet->setCellValue('A4', 'Prénom'); $sheet->setCellValue('A5', 'Note'); $i = 6; while(// TANT QUE IL Y A UN ELEVE) { $sheet->setCellValue('A'.$i,// NOM DE LELEVE); $sheet->setCellValue('B'.$i,// PRENOM DE LELEVE); if(// NOTE EXISTE ) $sheet->setCellValue('C'.$i,// NOTE DE LELEVE); else { $sheet->setCellValue('C'.$i,"Non noté"); } $i++; } // Sauvegarde du fichier sous le format .xlsx $writer->save( $request->formation." ".$request->groupe." ".$request->controle. date("d/m/Y G:m").'xlsx' ); $answer->request = 'success'; } //Si il y a un problème dans les paramètres else { $answer->request='param_error'; } break; */ /***************************************************************************/ /* Importation de notes pour un contrôle, une formation et un groupe donné */ /***************************************************************************/ case 'import_notes': if( isset($request->docPath) ) { // Récupération du nom du fichier $inputFileName = $request->docPath; // Chargement du fichier $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // Placement du curseur sur la première case $sheet = $objPHPExcel->getSheet(0); $noteData = $sheet->rangeToArray('A3:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); // Varaible stack pour la liste des notes $listeNotes = array(); // Boucle sur le format suivant : ligne[0] : [ID] / ligne[1] : [NOTE] foreach($noteData as $line) { if($line[0] != null && $line[1] != null) array_push($listeNotes,array($line[0],$line[1])); } } // Erreur de paramètre(s) else { $answer->request='param_error'; } break; /***********************/ /* Importation du MCC */ /**********************/ case 'import_mcc': $filePath = __ROOT__.'/src/files/'.$_SESSION['identifiant'].'_import_mcc.xlsx'; // file_put_contents($filePath, $file['file']); // // $inputFileType = 'Excel2007'; // $inputFileName = $request->docPath; // Charger le fichier en tant que document Excel $objPHPExcel = PHPExcel_IOFactory::load($filePath); // Get sur la première case $sheet = $objPHPExcel->getSheet(0); $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); /* permet d'éviter les doublons */ $mcc = array(); // contiendra le tableau de retour $ueuid = array(); /****************************/ /* TRAITEMENT SUR LES CASES */ /****************************/ foreach($mccData as $line){ if( $line[0] != null ){ /* [1] On récupère les données de l'UE, si les champs sont définis =========================================================================*/ if( /*$line[0] != null && */ $line[1] != null && $line[2] != null ){ if( $line[0] != null && !in_array($line[0], $ueuid) ){ // on créé l'UE dans la liste s'il n'y est pas déjà array_push( // on ajoute l'UE $mcc, array( 'nom' => $line[0], 'libelle' => $line[1], 'coefficient' => $line[2], 'modules' => array(), 'moduid' => array() ) ); array_push($ueuid, $line[0]); // on dis qu'on a déjà enregistré l'ue } if( $line[0] != null ) $ueIndex = array_search($line[0], $ueuid); /* [2] On récupère les données du module, si les champs sont définis =========================================================================*/ if( /*$line[3] != null && */ $line[4] != null && $line[5] != null ){ if( $line[3] != null && !in_array($line[3], $mcc[$ueIndex]['moduid']) ){ // on créé le module dans la liste de cet UE s'il n'y est pas déjà array_push( // on ajoute l'UE $mcc[$ueIndex]['modules'], array( 'nom' => $line[3], 'libelle' => $line[4], 'coefficient' => $line[5], 'controles' => array(), 'ctrluid' => array() ) ); array_push($mcc[$ueIndex]['moduid'], $line[3]); // on dis qu'on a déjà enregistré le module } } if( $line[3] != null ) $modIndex = array_search($line[3], $mcc[$ueIndex]['moduid']); /* [3] On récupère les contrôles du module, si les champs sont définis =========================================================================*/ if( $line[6] != null && $line[7] != null && $line[8] != null ){ if( !in_array($line[6], $mcc[$ueIndex]['modules'][$modIndex]['ctrluid']) ){ // on créé le contrôle dans la liste de ce module s'il n'y est pas déjà array_push( // on ajoute l'UE $mcc[$ueIndex]['modules'][$modIndex]['controles'], array( 'nom' => $line[6], 'libelle' => $line[7], 'coefficient' => $line[8] ) ); array_push($mcc[$ueIndex]['modules'][$modIndex]['ctrluid'], $line[6]); // on dis qu'on a déjà enregistré le module } } } } } /* [4] Affinage des données, on supprime les données temporaires =========================================================================*/ foreach($mcc as $iter_ue=>$ue){ unset( $mcc[$iter_ue]['moduid'] ); foreach($mcc[$iter_ue]['modules'] as $iter_m=>$mod) unset( $mcc[$iter_ue]['modules'][$iter_m]['ctrluid'] ); } $answer->mcc = $mcc; $answer->request = 'success'; break; /************************************/ /* Importation des résulats du jury */ /************************************/ // case 'import_jury': // if(isset($request->docPath)) { // // Récupération du nom du fichier // $inputFileName = $request->docPath; // // Chargement du fichier // $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // // Placement du curseur sur la première case // $sheet = $objPHPExcel->getSheet(0); // $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); // // Varaible stack pour les résultats du jury // $resultatJury = array(); // // Boucle sur le format suivant : ligne[0] : [IDETUDIANT] / ligne[1] : [DECISION JURY] // // / ! \ LES RESULTATS NE DOIVENT PAS ETRE NOMINATIFs, UTILISER LES IDENTIFIANTS DES ÉTUDIANTS / ! \ // foreach($mccData as $line) { // $resultatJury[$i++] = array($line[0],$line[1]); // } // if($i-2 == getHighestRow()) { // $answer->resultatJury = $resultatJury; // $answer->request = 'success'; // } // } // // Erreur de paramètre(s) // else { // $answer->request='param_error'; // } // break; // /************************************/ // /* Exportation des résulats du jury */ // /************************************/ // case 'export_fiche_resultat_jury': // //vérificationd du paramètre en entrée // if(isset($request->formation) && isset($request->semestre)){ // // Création / Activation de la feuille // $workbook = new PHPExcel(); // $sheet = $workbook->getActiveSheet(); // $writer = new PHPExcel_Writer_Excel2007($workbook); // $workbook->getProperties()->setTitle("ResultatJury"." ".$request->formation." ".$request->semestre.date("d/m/Y G:m")); // $sheet->getColumnDimension('A')->setWidth(20); // $sheet->getColumnDimension('B')->setWidth(20); // $sheet->getColumnDimension('C')->setWidth(20); // $sheet->getColumnDimension('D')->setWidth(20); // // Écriture de l'en-tête du document // $sheet->setCellValue('A1', 'Résultats jury'); // $sheet->setCellValue('B1',$request->formation); // $sheet->setCellValue('C1',$request->semestre); // $sheet->setCellValue('D1', date("d/m/Y G:m")); // $sheet->setCellValue('A3',"Id Étudiant"); // $sheet->setCellValue('B3',"Avis jury"); // $i = 6; // while(// TANT QUE IL Y A UN ELEVE) { // $sheet->setCellValue('A'.$i,// ID ELEVE); // $sheet->setCellValue('B'.$i,// AVIS JURY); // $i++; // } // // Sauvegarde du fichier sous le format .xlsx // $writer->save("ResultatJury"." ".$request->formation." ".$request->semestre.date("d/m/Y G:m").'xlsx' ); // $answer->request = 'success'; // } // //Si il y a un problème dans les paramètre(s) // else { // $answer->request='param_error'; // } // break; // DEFAULT default: $answer->request = 'unknown_level_1'; break; } } ?>