From 9271b5ff88b8cf9d0b28622ca27b52ef400754cc Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 4 Jan 2016 12:32:20 +0100 Subject: [PATCH] =?UTF-8?q?[x]=20Affiches=20les=20moyennes=20=09+=20par=20?= =?UTF-8?q?modules=20=09=09+=20prendre=20les=20max(id=5Fnotes)=20=09=09+?= =?UTF-8?q?=20ignorer=20l=C3=A0=20ou=20aucune=20note=20pour=20avoir=20un?= =?UTF-8?q?=20aper=C3=A7u=20du=20niveau=20=09+=20par=20UE=20=09=09+=20pren?= =?UTF-8?q?dre=20les=20max(id=5Fnotes)=20=09=09+=20ignorer=20l=C3=A0=20ou?= =?UTF-8?q?=20aucune=20note=20pour=20avoir=20un=20aper=C3=A7u=20du=20nivea?= =?UTF-8?q?u=20=09-=20par=20semestres=20=09=09+=20prendre=20les=20max(id?= =?UTF-8?q?=5Fnotes)=20=09=09+=20ignorer=20l=C3=A0=20ou=20aucune=20note=20?= =?UTF-8?q?pour=20avoir=20un=20aper=C3=A7u=20du=20niveau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/database.php | 56 +++++++++++++++++++++++++++++++++++++++---- manager/repo/note.php | 2 +- page/career.php | 21 +++++++++++++--- 3 files changed, 71 insertions(+), 8 deletions(-) diff --git a/manager/database.php b/manager/database.php index f2c5c6d..eafedc8 100755 --- a/manager/database.php +++ b/manager/database.php @@ -968,26 +968,74 @@ class DataBase{ $parcours = semestreRepo::getParcours($etudiantUID); + /* [1] Chaque semestre + ==========================*/ foreach($parcours as $iter_s=>$semestre){ $parcours[$iter_s]['UEs'] = ueRepo::forStudent($etudiantUID, $semestre['id']); + /* CALCUL DE MOYENNE DU SEMESTRE */ + $moyenneSemestre = 0; // contiendra la somme des valeurs*coefficients + $totalSemestre = 0; // contiendra la somme des coefficients + + + /* [2] Chaque UE + ==========================*/ foreach($parcours[$iter_s]['UEs'] as $iter_ue=>$UE){ $parcours[$iter_s]['UEs'][$iter_ue]['modules'] = moduleRepo::forStudent($UE['id'], $semestre['id']); + /* CALCUL DE MOYENNE DE L'UE */ + $moyenneUE = 0; // contiendra la somme des valeurs*coefficients + $totalUE = 0; // contiendra la somme des coefficients + + /* [3] Chaque module + ==========================*/ foreach($parcours[$iter_s]['UEs'][$iter_ue]['modules'] as $iter_mod=>$MOD){ $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'] = controleRepo::forStudent($MOD['id'], $semestre['id']); $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['moyenne'] = noteRepo::moyenneModule($etudiantUID, $MOD['id'], $semestre['id']); - foreach($parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$CONTROLE){ - - $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['notes'] = noteRepo::forStudent($etudiantUID, $CONTROLE['id']); + + // on complète la moyenne de l'UE si le module a une moyenne + $tmpModule = $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]; + + if( !is_bool($tmpModule['moyenne']) ){ + $moyenneUE += $tmpModule['moyenne']['moyenne']/$tmpModule['moyenne']['base'] * $tmpModule['coefficient']; + $totalUE += $tmpModule['coefficient']; } + + /* [4] Chaque contrôle + ==========================*/ + foreach($parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$CONTROLE) + $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['notes'] = noteRepo::forStudent($etudiantUID, $CONTROLE['id']); + - } + + /* ENREGISTREMENT DE LA MOYENNE DE L'UE */ + if( $totalUE == 0 ) // si la somme vaut 0, on retourne FALSE + $parcours[$iter_s]['UEs'][$iter_ue]['moyenne'] = false; + else + $parcours[$iter_s]['UEs'][$iter_ue]['moyenne'] = array('moyenne' => 20*$moyenneUE/$totalUE, 'base' => 20 ); + + + // on complète la moyenne du semestre si l'UE a une moyenne + $tmpUE = $parcours[$iter_s]['UEs'][$iter_ue]; + + if( !is_bool($tmpUE['moyenne']) ){ + $moyenneSemestre += $tmpUE['moyenne']['moyenne']/$tmpUE['moyenne']['base'] * $tmpUE['coefficient']; + $totalSemestre += $tmpUE['coefficient']; + } + } + + + /* ENREGISTREMENT DE LA MOYENNE DU SEMESTRE */ + if( $totalSemestre == 0 ) // si la somme vaut 0, on retourne FALSE + $parcours[$iter_s]['moyenne'] = false; + else + $parcours[$iter_s]['moyenne'] = array('moyenne' => 20*$moyenneSemestre/$totalSemestre, 'base' => 20 ); + } return $parcours; diff --git a/manager/repo/note.php b/manager/repo/note.php index 0e0d165..ee459ed 100755 --- a/manager/repo/note.php +++ b/manager/repo/note.php @@ -244,7 +244,7 @@ class noteRepo{ AND app.id_etudiant = :etudiant AND mcc_m.id_module = :module AND app.id_semestre = :semestre - AND note.id_note in (SELECT max(id_note) FROM note GROUP BY id_controle, id_appartenance) + AND note.id_note in (SELECT max(id_note) FROM note WHERE id_controle=ctrl.id_controle AND id_appartenance=app.id_appartenance GROUP BY id_controle, id_appartenance) GROUP BY mcc_m.id_mcc_module"); $getMoyenneModule->execute(array( ':etudiant' => $etudiant, ':module' => $module, ':semestre' => $semestre )); diff --git a/page/career.php b/page/career.php index f298e96..65ceeff 100755 --- a/page/career.php +++ b/page/career.php @@ -1096,7 +1096,7 @@ if( (permission('master') || permission('admin')) && $etudiantOpt != null ){ echo ''; foreach($UE['modules'] as $module){ // pour chaque module echo ''; - echo ''; + echo ""; foreach($module['controles'] as $controle){ // pour chaque contrôle echo ''; @@ -1114,10 +1114,25 @@ if( (permission('master') || permission('admin')) && $etudiantOpt != null ){ // moyenne du module // echo ""; echo ""; + + /* MOYENNE MODULE */ if( is_bool($module['moyenne']) ) // si aucune note pour ce controle on affiche 'Pas de note' - echo ""; + echo ""; else // si une note, alors on l'affiche - echo ""; + echo ""; + + /* MOYENNE UE */ + if( is_bool($UE['moyenne']) ) // si aucune note pour cet UE on affiche 'Pas de moyenne' + echo ""; + else // si un moyenne, alors on l'affiche + echo ""; + + /* MOYENNE SEMESTRE */ + if( is_bool($semestre['moyenne']) ) // si aucune note pour ce semestre on affiche 'Pas de moyenne' + echo ""; + else // si un moyenne, alors on l'affiche + echo ""; + echo '';
'.$module['nom'].' - '.$module['libelle'].'
".$module['nom']." - ".$module['libelle']." (coeff. ".$module['coefficient'].")
Moyenne du module
Pas de moyennePas de moyennemoyenne de ".number_format($module['moyenne']['moyenne'], 2)." / ".$module['moyenne']['base']."Moyenne module: ".number_format($module['moyenne']['moyenne'], 2)." / ".$module['moyenne']['base']."Pas de moyenneMoyenne UE: ".number_format($UE['moyenne']['moyenne'], 2)." / ".$UE['moyenne']['base']."Pas de moyenneMoyenne semestre: ".number_format($semestre['moyenne']['moyenne'], 2)." / ".$semestre['moyenne']['base']."