excelManager@import_jury

This commit is contained in:
xdrm-brackets 2016-01-03 11:31:26 +01:00
parent d7b4c4c49f
commit be13fecb9e
1 changed files with 45 additions and 37 deletions

View File

@ -451,14 +451,19 @@ class excelManager{
// [5] Écriture des valeurs dans le document Excel // [5] Écriture des valeurs dans le document Excel
$index = 5; $index = 5;
foreach($request->grouplist as $group){ foreach($request->grouplist as $GROUP){
$index++; $index++;
foreach($group->userlist as $student){ foreach($GROUP->userlist as $USER){
$sheet->setCellValue('A'.$index, $student->identifiant); $sheet->setCellValue('A'.$index, $USER->identifiant);
$sheet->setCellValue('B'.$index, $group->formation); $sheet->setCellValue('B'.$index, $GROUP->formation);
$sheet->setCellValue('C'.$index, $group->nom); $sheet->setCellValue('C'.$index, $GROUP->nom);
$sheet->setCellValue('D'.$index, '[À compléter]'); if( $USER->mention != null ) // si mention déjà spécifiée, on l'affiche
$sheet->setCellValue('D'.$index, $USER->mention);
else // sinon, on met "[À compléter]"
$sheet->setCellValue('D'.$index, '[À compléter]');
$index++; $index++;
} }
} }
@ -486,45 +491,48 @@ class excelManager{
/************************************/ /************************************/
case 'import_jury': case 'import_jury':
if(isset($request->docPath)) {
// Récupération du nom du fichier $filePath = __EXCEL_PATH__.$_SESSION['identifiant'].'_import_jury.xlsx';
$inputFileName = $request->docPath; // si on a pas le droit d'écriture, on quitte //
if( !is_readable($filePath) ){ $answer->request = 'read_permission'; return; }
// Chargement du fichier // Charger le fichier en tant que document Excel
$objPHPExcel = PHPExcel_IOFactory::load($filePath);
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // Get sur la première case
$sheet = $objPHPExcel->getSheet(0);
$juryData = $sheet->rangeToArray('A6:'.'D'.$sheet->getHighestRow());
// Placement du curseur sur la première case
$sheet = $objPHPExcel->getSheet(0); $jury = array(); // contiendra le tableau de retour
$mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); $mentionsPossibles = array('ADM', 'ADJ', 'RDB', 'RFS');
// Varaible stack pour les résultats du jury /****************************/
/* TRAITEMENT SUR LES CASES */
/****************************/
foreach($juryData as $line){
$resultatJury = array(); /* [1] On récupère pour chaque étudiant si le format est bon
=========================================================================*/
if( checkParam($line[0], 'utilisateur.identifiant') && in_array($line[3], $mentionsPossibles) ){ // bon format pour l'identifiant et la mention
// Boucle sur le format suivant : ligne[0] : [IDETUDIANT] / ligne[1] : [DECISION JURY] array_push( // on ajoute l'étudiant et sa mention
$jury,
array(
'etudiant' => $line[0],
'mention' => $line[3]
)
);
$i = 0; }
foreach($mccData as $line) { }
$resultatJury[$i++] = array($line[0],$line[1]); $answer->jury = $jury;
} $answer->request = 'success';
$answer->resultatJury = $resultatJury; break;
$asnwer->request = 'success';
}
// Erreur de paramètre(s)
else {
$answer->request='param_error';
}
break;
@ -537,7 +545,7 @@ class excelManager{
default: default:
$answer->request = 'unknown_level_1'; $answer->request = 'unknown_level_1';
break; break;
} }
} }