diff --git a/application/models/monpas/Scores_model.php b/application/models/monpas/Scores_model.php index a03a8ae..555654e 100644 --- a/application/models/monpas/Scores_model.php +++ b/application/models/monpas/Scores_model.php @@ -25,9 +25,65 @@ class Scores_model extends MY_Model{ return $this->get_query_result(); } - - function calculateindividualscores($orgversieid, $orgid, $userid){ + $this->sql="SELECT SC.id, filledversion_id, SC.ijkpunt_id, scoretype, score, + SUM(CASE WHEN Y.disabled = 'T' THEN 0 + WHEN Y.disabled = 'F' THEN + CASE + WHEN SC.scoretype = 1 THEN SC.score * 10 * Indi.gewicht + WHEN SC.scoretype = 2 THEN SC.score * Indi.gewicht + WHEN (SC.scoretype = 3 OR SC.scoretype = 5) THEN + CASE + WHEN SC.score = 1 THEN 100 * Indi.gewicht + WHEN (SC.score = 2 OR SC.score = 0) THEN 0 + ELSE 50 * Indi.gewicht + END + WHEN SC.scoretype = 4 THEN + CASE + WHEN SC.score = 1 THEN 100 * Indi.gewicht + ELSE 0 + END + WHEN SC.scoretype = 6 THEN + CASE + WHEN SC.score = 2 THEN 60 * Indi.gewicht + WHEN SC.score = 3 THEN 100 * Indi.gewicht + ELSE 0 + END + WHEN SC.scoretype = 7 THEN + CASE + WHEN SC.score = 1 THEN 100 * Indi.gewicht + WHEN SC.score = 2 THEN 66.6 * Indi.gewicht + WHEN SC.score = 3 THEN 33.3 * Indi.gewicht + ELSE 0 + END + ELSE 0 + END + ELSE 0 + END) AS somscore, + + SUM( Indi.gewicht ) AS num, + SUM(CASE WHEN SC.scoretype = 4 AND SC.score = 3 THEN 1 + ELSE 0 + END) AS aantalnvt, + SUM(CASE WHEN SC.scoretype = 4 THEN 1 + ELSE 0 + END) AS aantalvier, + Y.nummer, Y.omschrijving, 0 AS aantalscholen, Y.toelichting + FROM tb_filledversions FV + JOIN tb_scores SC ON SC.filledversion_id = FV.id + JOIN tb_indicatoren Indi ON Indi.id = SC.indicator_id + JOIN tb_ijkpunten Y ON Y.id = SC.ijkpunt_id + WHERE FV.orgversie_id = {$orgversieid} + AND FV.organisatie_id = {$orgid} + AND FV.user_id ={$userid} + AND FV.meetellen = 1 + GROUP BY SC.ijkpunt_id + ORDER BY Y.nummer "; + return $this->get_query_result(); + } + + + function calculateindividualscoresoud($orgversieid, $orgid, $userid){ $this->sql="SELECT SC.id, filledversion_id, SC.ijkpunt_id, scoretype, score, SUM(CASE WHEN SC.scoretype = 1 THEN SC.score * 10 * Indi.gewicht @@ -558,8 +614,104 @@ class Scores_model extends MY_Model{ return $lijst; } + function getgemscores($orgversieid, $orgids){ + $gevuldeversies = $this->fGetGevuldeVersies($orgversieid, $orgids); + if ($gevuldeversies) { + $this->sql = " SELECT Q.omschrijving, Q.toelichting, Q.ijkpunt_id, Q.kleurnummer, Q.disabled, Q.scoretype, + CASE WHEN Q.aantalvier > 0 THEN + CASE WHEN Q.aantalvier = Q.aantalnvt THEN + 'T' + ELSE 'F' + END + ELSE 'F' + END AS disablenvt, + Q.sumscores/Q.sumgewicht AS gem, Q.kleurcode, Q.nummer, Q.ondergrens, Q.bovengrens + FROM ( + SELECT Y.omschrijving, Y.toelichting,Y.id as ijkpunt_id, + Y.nummer, Y.disabled, SC.scoretype, SK.nummer AS kleurnummer, + SK.kleurcode, SK.ondergrens, SK.bovengrens, + SUM(CASE WHEN Y.disabled = 'T' THEN 0 + WHEN Y.disabled = 'F' THEN + CASE WHEN SC.scoretype = 1 + THEN (SC.score * I.gewicht * 10) + WHEN SC.scoretype = 2 + THEN (SC.score * I.gewicht) + WHEN SC.scoretype = 3 + THEN + CASE WHEN SC.score = 0 + THEN 0 + WHEN SC.score = 1 + THEN (100 * I.gewicht) + WHEN SC.score = 2 + THEN 0 + WHEN SC.score = 3 + THEN (50 * I.gewicht) + END + WHEN SC.scoretype = 4 + THEN + CASE WHEN SC.score = 1 + THEN (100 * I.gewicht) + ELSE 0 + END + WHEN SC.scoretype = 5 + THEN + CASE WHEN SC.score = 0 + THEN 0 + WHEN SC.score = 1 + THEN (100 * I.gewicht) + WHEN SC.score = 2 + THEN 0 + WHEN SC.score = 3 + THEN (50 * I.gewicht) + END + WHEN SC.scoretype = 6 + THEN + CASE WHEN SC.score = 2 + THEN (50 * I.gewicht) + WHEN SC.score = 3 + THEN (100 * I.gewicht) + ELSE 0 + END + WHEN SC.scoretype = 7 + THEN + CASE WHEN SC.score = 1 + THEN (100 * I.gewicht) + WHEN SC.score = 2 + THEN (66.6 * I.gewicht) + WHEN SC.score = 3 + THEN (33.3 * I.gewicht) + ELSE 0 + END + ELSE 0 + END + ELSE 0 + END)AS sumscores, + SUM(CASE WHEN SC.scoretype = 4 AND SC.score = 3 THEN 1 + ELSE 0 + END) AS aantalnvt, + SUM(CASE WHEN SC.scoretype = 4 THEN 1 + ELSE 0 + END) AS aantalvier, + SUM(I.gewicht) AS sumgewicht + FROM tb_scores SC + JOIN tb_indicatoren I ON I.id = SC.indicator_id + JOIN tb_ijkpunten Y ON Y.id = SC.ijkpunt_id + JOIN tb_scorekleuren SK ON SK.scoretype = SC.scoretype + WHERE SC.filledversion_id IN ({$gevuldeversies}) + AND SK.disabled = Y.disabled + GROUP BY SC.ijkpunt_id, SK.id + ORDER BY Y.nummer ) AS Q + HAVING Q.ondergrens <= gem AND Q.bovengrens > gem "; + } + else return false; + return $this->get_query_result(); + } - function getgemscores($orgversieid, $orgid){ + + + + + function getgemscoresoud($orgversieid, $orgid){ $gevuldeversies = $this->fGetGevuldeVersies($orgversieid, $orgid); $p = "SC.scoretype = 7";