diff --git a/application/controllers/monpas/Rapmatrix.php b/application/controllers/monpas/Rapmatrix.php index 70bb60d..c97c608 100644 --- a/application/controllers/monpas/Rapmatrix.php +++ b/application/controllers/monpas/Rapmatrix.php @@ -6,10 +6,12 @@ class Rapmatrix extends MY_Controller { parent::__construct(); $models = array("shared/Organisaties_model", + "monpas/Ijkpunten_model", "monpas/Filledversions_model", "monpas/Orgversies_model", "monpas/Modules_model", "monpas/Scores_model", + "monpas/Scorekleuren_model", "monpas/Sorteringen_model", "monpas/Sorteerlabels_model", "monpas/Sorteerlabelsorg_model", @@ -74,28 +76,30 @@ class Rapmatrix extends MY_Controller $criteriumID = $this->clean_input('criteriumid'); $orgversieID = $this->clean_input('orgversieid'); $toporg = $this->clean_input('toporg'); - $ijkpunten = $this->Orgversies_model->getijkpunten($orgversieID); + $ijkpunten = $this->Ijkpunten_model->getijkpuntenMetIndicatoren($orgversieID); $aantalY = count($ijkpunten); $kleurtabel = $this->kleurcodes->getkleurlegenda(); $orgversie = $this->Orgversies_model->get_record_by_id($orgversieID); + $scoretype = $orgversie->scoretype; + $kleuren = $this->setKleuren($orgversie); $erzijnscores = false; if ($orgsoort == 4) {//schoolniveau if ($orgversie->vorm == 2) { - $labels = $this->getIndividueleMatrix($orgID, $orgversieID, $aantalY, $kleuren); + $labels = $this->getIndividueleMatrix($orgID, $orgversieID, $aantalY, $scoretype); //geef individuele scores + het gemiddelde } if ($orgversie->vorm == 1){ - $labels = $this->getSchoolMatrix($orgID, $orgversieID, $aantalY, $kleuren);//schoolversie + $labels = $this->getSchoolMatrix($orgID, $orgversieID, $aantalY, $scoretype);//schoolversie } } if ($orgsoort < 4) {//bestuurs- / kamer- of swv-niveau if ($criteriumID == 0) {//scholen ordenen per bestuur - $labels = $this->getBestuurMatrix($orgID, $orgversieID, $aantalY, $kleuren); + $labels = $this->getBestuurMatrix($orgID, $orgversieID, $ijkpunten, $scoretype); } if ($criteriumID > 0) {//scholen ordenen met een ander criterium $labels = $this->getCriteriumMatrix($orgID, $orgsoort, $criteriumID, $orgversieID, $aantalY, $kleuren); @@ -252,18 +256,18 @@ class Rapmatrix extends MY_Controller - private function getIndividueleMatrix($orgID, $orgversieID, $aantalY, $kleuren){ + private function getIndividueleMatrix($orgID, $orgversieID, $aantalY, $scoretype){ $scores = $this->getLeerkrachtscores($orgID, $orgversieID); - $labels = $this->getGemiddeldeScores($scores, $aantalY, $kleuren); + $labels = $this->getGemiddeldeScores($scores, $aantalY, $scoretype); return $labels; } - private function getSchoolMatrix($orgID, $orgversieID, $aantalY, $kleuren) + private function getSchoolMatrix($orgID, $orgversieID, $aantalY, $scoretype) { $scores = $this->getSchoolScores($orgID, $orgversieID); - $labels = $this->getGemiddeldenSchool($scores, $aantalY,$orgversieID, $kleuren); + $labels = $this->getGemiddeldenSchool($scores, $aantalY,$orgversieID, $scoretype); return $labels; } @@ -277,11 +281,11 @@ class Rapmatrix extends MY_Controller } - private function getBestuurMatrix($orgID, $orgversieID, $aantalY, $kleuren) + private function getBestuurMatrix($orgID, $orgversieID, $ijkpunten, $scoretype) { $scholen = $this->getScholenPerBestuur($orgID); $scores = $this->getScoresBijBesturen($scholen, $orgversieID); - $labels = $this->getGemiddeldeScores($scores, $aantalY, $kleuren); + $labels = $this->getGemiddeldeScores($scores, $ijkpunten, $scoretype); return $labels; } @@ -362,7 +366,7 @@ class Rapmatrix extends MY_Controller -private function getGemiddeldenSchool($labels, $aantalY, $orgversieID, $kleuren) +private function getGemiddeldenSchool($labels, $aantalY, $orgversieID, $scoretype) { $orgversie = $this->Orgversies_model->get_record_by_id($orgversieID); @@ -401,8 +405,11 @@ private function getGemiddeldenSchool($labels, $aantalY, $orgversieID, $kleuren) } } // } + $kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $user->scores[$i]->gem); + + $user->scores[$i]->kleur = $kleur->kleurcode; + $user->scores[$i]->kleurcode = $kleur->kleurcode; - $user->scores[$i]->kleur = $this->getkleur($user->scores[$i]->gem, $kleuren); } else{ $user->scores[$i] = new stdClass(); @@ -418,7 +425,11 @@ private function getGemiddeldenSchool($labels, $aantalY, $orgversieID, $kleuren) } else { $user->scores[$aantalY]->gem = null; } - $user->scores[$aantalY]->kleur = $this->getkleur($user->scores[$aantalY]->gem, $kleuren); + $kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $user->scores[$aantalY]->gem); + + $user->scores[$aantalY]->kleur = $kleur->kleurcode; + $user->scores[$aantalY]->kleurcode = $kleur->kleurcode; + } // if scores };// foreach bg rijen $label->users = array_values($label->users); @@ -604,23 +615,30 @@ private function getScoresBijCriterium($labels, $orgversieID){ return $labels; } -private function getGemiddeldeScores($labels, $aantalY, $kleuren){ +private function getGemiddeldeScores($labels, $ijkpunten, $scoretype){ + $aantalY = count($ijkpunten); $waarden = 0; + $nvt = []; + if ($labels) { //$aantalscores = 0; foreach ($labels as $label) { for ($i = 0; $i < $aantalY; $i++) { $sumscore[$i] = 0; + }; $aantalrijen = 0; $aantalresults = array(); for ($i = 0; $i < $aantalY; $i++) { $aantalresults[$i] = 0; + $nvt[$i] = 0; + }; // for i if ($label->users) { foreach ($label->users as $user) { + $sumscorerij = 0; $aantalscores = 0; if ($user->scores) { @@ -628,12 +646,13 @@ private function getGemiddeldeScores($labels, $aantalY, $kleuren){ for ($i = 0; $i < $aantalY; $i++) { if(isset($user->scores[$i])) { if($user->scores[$i]->disabled == 'F' && - ($user->scores[$i]->aantalvier == 0 || + (isset($user->scores[$i]->disablenvt) && $user->scores[$i]->disablenvt == 'F' || + isset($user->scores[$i]->aantalvier) && ($user->scores[$i]->aantalvier == 0 || ($user->scores[$i]->aantalvier > 0 && - $user->scores[$i]->aantalnvt != $user->scores[$i]->aantalvier ))){ -// if ($user->scores[$i]->gem == '' || $user->scores[$i]->gem == null) { -// // doe niks -// } else { + $user->scores[$i]->aantalnvt != $user->scores[$i]->aantalvier )))){ +// + + $aantalscores++; $sumscore[$i] = $sumscore[$i] + $user->scores[$i]->gem; $aantalresults[$i] = $aantalresults[$i] + 1; @@ -643,25 +662,55 @@ private function getGemiddeldeScores($labels, $aantalY, $kleuren){ // } } } - $user->scores[$i]->kleur = $this->getkleur($user->scores[$i]->gem, $kleuren); + + $user->scores[$i]->kleur = $user->scores[$i]->kleurcode; + if(!isset($user->scores[$i]->disablenvt)){ + $user->scores[$i]->disablenvt= 'F'; + if($user->scores[$i]->aantalvier > 0 && + $user->scores[$i]->aantalvier && $user->scores[$i]->aantalnvt) + $user->scores[$i]->disablenvt= 'T'; + } + if($user->scores[$i]->disablenvt == 'T') $nvt[$i]++; } else{ $user->scores[$i] = new stdClass(); $user->scores[$i]->gem = new stdClass(); + $user->scores[$i]->kleur = new stdClass(); + $user->scores[$i]->disabled = new stdClass(); + $user->scores[$i]->disablenvt = new stdClass(); $user->scores[$i]->gem = null; + $user->scores[$i]->kleur = '#cccccc'; + $user->scores[$i]->kleurcode = '#cccccc'; + $user->scores[$i]->disablenvt= 'F'; + $user->scores[$i]->disabled= $ijkpunten[$i]->disabled; + + } }; $user->scores[$aantalY] = new stdClass(); $user->scores[$aantalY]->gem = new stdClass(); + $user->scores[$aantalY]->kleur = new stdClass(); + $user->scores[$aantalY]->kleurcode = new stdClass(); + $user->scores[$aantalY]->disabled = new stdClass(); + $user->scores[$aantalY]->disablenvt = new stdClass(); if ($aantalscores > 0) { $user->scores[$aantalY]->gem = round($sumscorerij / $aantalscores); + $kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $user->scores[$aantalY]->gem); + + $user->scores[$aantalY]->kleur = $kleur->kleurcode; + $user->scores[$aantalY]->kleurcode = $kleur->kleurcode; } else { $user->scores[$aantalY]->gem = null; + $user->scores[$aantalY]->kleur = '#cccccc'; + $user->scores[$aantalY]->kleurcode = '#cccccc'; } - $user->scores[$aantalY]->kleur = $this->getkleur($user->scores[$aantalY]->gem, $kleuren); + $user->scores[$aantalY]->disabled = 'F'; + $user->scores[$aantalY]->disablenvt = 'F'; + + } // if scores };// foreach bg rijen @@ -682,6 +731,7 @@ private function getGemiddeldeScores($labels, $aantalY, $kleuren){ $sumscore[$i] = round($sumscore[$i] / $aantalresults[$i]); $waarden2++; }; + $labeltot = $labeltot + $sumscore[$i]; $labeltotaantal++; } else { @@ -691,8 +741,15 @@ private function getGemiddeldeScores($labels, $aantalY, $kleuren){ $label->users[$rijcount]->scores[$i] = new stdClass(); if ($waarden2 > 0) { $label->users[$rijcount]->scores[$i]->gem = $sumscore[$i]; - $label->users[$rijcount]->scores[$i]->kleur = $this->getkleur($label->users[$rijcount]->scores[$i]->gem, $kleuren); - } + $kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $label->users[$rijcount]->scores[$i]->gem); + + $label->users[$rijcount]->scores[$i]->kleurcode = $kleur->kleurcode; + $label->users[$rijcount]->scores[$i]->kleur = $kleur->kleurcode; + } + $label->users[$rijcount]->scores[$i]->disabled = $ijkpunten[$i]->disabled; + $label->users[$rijcount]->scores[$i]->disablenvt = 'F'; + if($nvt[$i] > 0 && $nvt[$i] == $aantalresults[$i]) $label->users[$rijcount]->scores[$i]->disablenvt = 'T'; + }; $label->users[$rijcount]->scores[$aantalY] = new stdClass(); if ($labeltotaantal > 0 && round($labeltot / $labeltotaantal) > 0) { @@ -702,9 +759,15 @@ private function getGemiddeldeScores($labels, $aantalY, $kleuren){ }; if ($label->users[$rijcount]->scores[$aantalY]->gem) { - $label->users[$rijcount]->scores[$aantalY]->kleur = $this->getkleur($label->users[$rijcount]->scores[$aantalY]->gem, $kleuren); + $kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $label->users[$rijcount]->scores[$aantalY]->gem); + $label->users[$rijcount]->scores[$aantalY]->kleur = $kleur-> kleurcode; + $label->users[$rijcount]->scores[$aantalY]->kleurcode = $kleur-> kleurcode; + } + $label->users[$rijcount]->scores[$aantalY]->disabled = 'F'; + $label->users[$rijcount]->scores[$aantalY]->disablenvt = 'F'; + }; // if label->rijen } } diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 1c88118..df47282 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -55,7 +55,7 @@ class MY_Controller extends CI_Controller{ // public $version = '1.17.70'; // bopropswop // public $version = '1.17.72'; // data2mysql fout // public $version = '1.17.73'; // 0-waarden aantal tlvs in omvang extra ondersteuning - public $version = '1.17.74'; // mogelijkheid tot uitzetten extra ondersteuning in divmeters + public $version = '1.17.75'; // mogelijkheid tot uitzetten extra ondersteuning in divmeters public $partituurid; public $globProfielVersieID = 1; diff --git a/application/models/shared/Organisaties_model.php b/application/models/shared/Organisaties_model.php index 8bd66b9..c971cd1 100644 --- a/application/models/shared/Organisaties_model.php +++ b/application/models/shared/Organisaties_model.php @@ -132,7 +132,7 @@ class Organisaties_model extends MY_Model{ WHERE BG.valtonder_id = {$kamerid} AND O.actief = 1 AND O.soort = 4 - ORDER BY O.naamkort"; + ORDER BY BG.naamkort, O.naamkort"; return $this->get_query_result(); } @@ -206,7 +206,7 @@ class Organisaties_model extends MY_Model{ FROM tb_organisaties WHERE valtonder_id = {$toplevelid} AND id <> {$toplevelid} - AND actief = 1"; + AND actief = 1 "; if ($sublevelid) {$this->sql .=" AND id ={$sublevelid} " ; } ; $this->sql .= " ORDER BY naamkort "; @@ -271,7 +271,7 @@ class Organisaties_model extends MY_Model{ AND O1.id <> O3.valtonder_id AND O2.id <> O2.valtonder_id AND O1.actief = 1 - ORDER BY O1.naam "; + ORDER BY O1.naamkort "; return $this->get_query_result(); } @@ -291,7 +291,8 @@ class Organisaties_model extends MY_Model{ function getorgdetails($id){ $this->sql="SELECT id, soort, brin, naamkort, naam, plaats,valtonder_id, actief,monbas, mondiv FROM tb_organisaties - WHERE id= {$id}"; + WHERE id= {$id} + ORDER BY naamkort "; return $this->get_query_row(); } function hasdependent($orgid){ @@ -336,7 +337,7 @@ class Organisaties_model extends MY_Model{ WHERE O.valtonder_id = $orgid AND O.id <> $orgid AND O.actief = 1 - ORDER BY O.naamkort"; + ORDER BY O.naamkort "; return $this->get_query_result(); } function getall(){ diff --git a/application/views/monpas/pages/matrix.php b/application/views/monpas/pages/matrix.php index e7e6e3a..f73de08 100644 --- a/application/views/monpas/pages/matrix.php +++ b/application/views/monpas/pages/matrix.php @@ -191,12 +191,12 @@