optie niet van toepassing niet meetellen

als gekozen is voor scoretype 4 bij een orgversie (ja,nee, nvt) de optie nvt niet meetellen in het gemiddelde als bij een ijkpunt in een filledversion voor alle opties nvt is gekozen.
De optie elf wordt dan grijs
This commit is contained in:
2024-01-17 16:08:17 +01:00
parent f33dc87cf3
commit 8d32f13c57
11 changed files with 214 additions and 87 deletions
+135 -29
View File
@@ -38,11 +38,6 @@ class Scores_model extends MY_Model{
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
@@ -62,12 +57,8 @@ class Scores_model extends MY_Model{
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,
0 AS aantalnvt,
0 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
@@ -82,6 +73,72 @@ class Scores_model extends MY_Model{
return $this->get_query_result();
}
function calculateindividualscorestype4($orgversieid, $orgid, $userid){
$this->sql="SELECT
Q.id,
Q.filledversion_id,
Q.ijkpunt_id,
Q.scoretype,
Q.score,
Q.score AS gem,
Q.disabled,
Q.nummer,
Q.omschrijving,
0 AS aantalscholen,
Q.toelichting,
Q.noemer,
Q.deler AS num,
CASE WHEN Q.deler > 0 THEN
'F'
WHEN Q.disabled = 'T' THEN
'F'
ELSE
'T'
END AS disablenvt,
CASE WHEN Q.deler > 0 THEN
(Q.noemer / Q.deler) * 100
ELSE
0
END AS somscore,
Q.gewicht,
Q.aantalnvt
FROM(
SELECT SC.id, filledversion_id, SC.ijkpunt_id, scoretype, score, score AS gem, Y.disabled,
Y.nummer, Y.omschrijving, Y.toelichting, Indi.gewicht,
SUM(CASE WHEN Y.disabled = 'F' THEN
CASE WHEN SC.score = 3 THEN
0
ELSE
1
END
ELSE 0
END) AS deler,
SUM(CASE WHEN SC.score = 1 THEN 1
ELSE 0
END) AS noemer,
SUM(
CASE WHEN SC.score = 3 THEN
1
ELSE
0
END) AS aantalnvt
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 ) AS Q ";
return $this->get_query_result();
}
function calculateindividualscoresoud($orgversieid, $orgid, $userid){
$this->sql="SELECT SC.id, filledversion_id, SC.ijkpunt_id, scoretype, score,
@@ -637,17 +694,11 @@ class Scores_model extends MY_Model{
$gevuldeversies = $this->fGetGevuldeVersies($orgversieid, $orgids);
if ($gevuldeversies) {
$this->sql = " SELECT Q.omschrijving, Q.toelichting, Q.ijkpunt_id, 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.nummer
Q.sumscores/Q.sumgewicht AS gem, Q.nummer, 'F' AS disablenvt
FROM (
SELECT Y.omschrijving, Y.toelichting,Y.id as ijkpunt_id,
Y.nummer, Y.disabled, SC.scoretype,
SUM(CASE WHEN Y.disabled = 'T' THEN 0
WHEN Y.disabled = 'F' THEN
@@ -665,13 +716,7 @@ class Scores_model extends MY_Model{
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
END
WHEN SC.scoretype = 5
THEN
CASE WHEN SC.score = 0
@@ -708,9 +753,6 @@ class Scores_model extends MY_Model{
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
@@ -726,6 +768,70 @@ class Scores_model extends MY_Model{
function getgemscorestype4($orgversieid, $orgids){
$gevuldeversies = $this->fGetGevuldeVersies($orgversieid, $orgids);
if ($gevuldeversies) {
$this->sql = " SELECT Q.omschrijving,
Q.toelichting,
Q.ijkpunt_id,
Q.disabled,
Q.scoretype,
Q.noemer,
Q.deler,
CASE WHEN Q.deler > 0 THEN
'F'
WHEN Q.disabled = 'T' THEN
'F'
ELSE
'T'
END AS disablenvt,
CASE WHEN Q.deler > 0 THEN
(Q.noemer / Q.deler) * 100
ELSE
0
END AS gem,
Q.nummer
FROM (
SELECT Y.omschrijving,
Y.toelichting,
Y.id AS ijkpunt_id,
Y.nummer,
Y.disabled,
SC.scoretype,
SUM(
CASE WHEN Y.disabled = 'F' THEN
CASE WHEN SC.score = 3 THEN
0
ELSE
1
END
ELSE
0
END) AS deler,
SUM(
CASE WHEN SC.score = 1 THEN
1
ELSE
0
END) AS noemer
FROM
tb_scores SC
JOIN tb_indicatoren I ON I.id = SC.indicator_id
JOIN tb_ijkpunten Y ON Y.id = SC.ijkpunt_id
WHERE
SC.filledversion_id IN ({$gevuldeversies})
GROUP BY
SC.ijkpunt_id
ORDER BY
Y.nummer) AS Q ";
}
else return false;
return $this->get_query_result();
}
function getgemscoresoud($orgversieid, $orgid){
$gevuldeversies = $this->fGetGevuldeVersies($orgversieid, $orgid);
@@ -80,7 +80,7 @@ class Sopinhouden_model extends MY_Model{
$versie = $result['targetversie'];
$mbgrafiek = $result['grafiek1'];
// print_r($mbgrafiek);
// $user->scores = $this->Scores_model->getgemscores($orgversieID, $user->id);
// exit;
$imagemb =$this->Phantom_model->create_img($mbgrafiek, 'test.png', FALSE, FALSE, array(650, 300));
$imagedata = "<img src='data:image/png;base64,".$imagemb."' id='mod1image1'/>";