Import de MCC valide renvoie un objet, il reste à déployer les données

This commit is contained in:
xdrm-brackets 2015-11-20 13:21:40 +01:00
parent 6d522a2de8
commit 47bba6cc75
10 changed files with 142 additions and 35 deletions

View File

@ -132,24 +132,103 @@ function xlsx_switch_lvl1($request, $answer){
// Get sur la première case
$sheet = $objPHPExcel->getSheet(0);
$mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow());
$uelist = array();
// Lecture rang MAX (A,B,C..)
$highestRow = $sheet->getHighestRow();
// permet d'éviter les doublons
$ueuid = array();
// Lecture de la colonne MAX (1)
$highestColumn = $sheet->getHighestColumn();
foreach($mccData as $line){
if( $line[0] != null ){
// Boucle sur chaque rang
for ($row = 1; $row <= $highestRow; $row++) {
for( $col = 'A' ; $col <= $highestColumn ; $col++ )
echo $col.''.$row.' = '.$sheet->rangeToArray($col.''.$row.':'.$col.''.$row)[0][0].'<br>';
/* [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( !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
$uelist,
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
}
$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( !in_array($line[3], $uelist[$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
$uelist[$ueIndex]['modules'],
array(
'nom' => $line[3],
'libelle' => $line[4],
'coefficient' => $line[5],
'controles' => array(),
'ctrluid' => array()
)
);
array_push($uelist[$ueIndex]['moduid'], $line[3]); // on dis qu'on a déjà enregistré le module
}
}
$modIndex = array_search($line[3], $uelist[$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], $uelist[$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
$uelist[$ueIndex]['modules'][$modIndex]['controles'],
array(
'nom' => $line[6],
'libelle' => $line[7],
'coefficient' => $line[8]
)
);
array_push($uelist[$ueIndex]['modules'][$modIndex]['ctrluid'], $line[6]); // on dis qu'on a déjà enregistré le module
}
}
}
}
}
} else {
/* [4] Affinage des données, on supprime les données temporaires
=========================================================================*/
foreach($uelist as $iter_ue=>$ue){
unset( $uelist[$iter_ue]['moduid'] );
foreach($uelist[$iter_ue]['modules'] as $iter_m=>$mod)
unset( $uelist[$iter_ue]['modules'][$iter_m]['ctrluid'] );
}
$answer->uelist = $uelist;
$answer->request = 'success';
}else
$answer->request = 'param_error';
}
break;

View File

@ -465,6 +465,58 @@ if( permission('admin') ){ // si l'utilisateur est un admin
}
if( permission('admin') ){
require_once __ROOT__.'/manager/phpExcel.php';
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'import_mcc';
$request->docPath = __ROOT__.'/src/excelTemplates/mcc.xlsx';
xlsx_switch_lvl1($request, $answer);
// si aucune erreur
if( $answer->request == 'success' ){
echo "<section name='mcc' data-title='IMPORT / EXPORT'>";
var_dump( $answer->uelist );
echo "</section>";
}else
echo "<section name='mcc' data-title='IMPORT / EXPORT' class='basic'><table class='basic'><tbody><tr><td>Données erronées</td></tr></tbody></table></section>";
}
?>

View File

@ -0,0 +1 @@
,xdrm,linux,20.11.2015 13:13,file:///home/xdrm/.config/libreoffice/4;

BIN
src/excelTemplates/mcc.xlsx Executable file

Binary file not shown.

View File

@ -1,25 +0,0 @@
*** [NORMAL] ***
S1 - 1, 2000
S2 - 2, 2000
S3 - 3, 2000
S4 - 4, 2000
*** [S1/S2 RATE] ***
S1 - 1, 2000
S2 - 2, 2000
S1 - 1, 2001
S2 - 2, 2001
S3 - 3, 2001
S4 - 4, 2001
*** [S3/S4 RATE] ***
S1 - 1, 2000
S2 - 2, 2000
S3 - 3, 2000
S4 - 4, 2000
S3 - 3, 2001
S4 - 4, 2001