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);
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]'); $sheet->setCellValue('D'.$index, '[À compléter]');
$index++; $index++;
} }
} }
@ -486,44 +491,47 @@ 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);
// Placement du curseur sur la première case
// Get sur la première case
$sheet = $objPHPExcel->getSheet(0); $sheet = $objPHPExcel->getSheet(0);
$mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); $juryData = $sheet->rangeToArray('A6:'.'D'.$sheet->getHighestRow());
// Varaible stack pour les résultats du jury
$resultatJury = array(); $jury = array(); // contiendra le tableau de retour
$mentionsPossibles = array('ADM', 'ADJ', 'RDB', 'RFS');
// Boucle sur le format suivant : ligne[0] : [IDETUDIANT] / ligne[1] : [DECISION JURY] /****************************/
/* TRAITEMENT SUR LES CASES */
/****************************/
foreach($juryData as $line){
$i = 0; /* [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
foreach($mccData as $line) { array_push( // on ajoute l'étudiant et sa mention
$jury,
array(
'etudiant' => $line[0],
'mention' => $line[3]
)
);
$resultatJury[$i++] = array($line[0],$line[1]);
} }
$answer->resultatJury = $resultatJury;
$asnwer->request = 'success';
} }
// Erreur de paramètre(s) $answer->jury = $jury;
$answer->request = 'success';
else {
$answer->request='param_error';
}
break; break;