update scoresmodel

This commit is contained in:
Monique
2021-11-16 11:22:42 +01:00
parent 939e7f69ac
commit ff2ca0e5d1
+155 -3
View File
@@ -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";