Files
monpas/application/models/monpas/Sopinhouden_model.php
T
MoniqueandClaude Opus 5.5 6956144b52 ontwikkelagenda: kleurnummer en huidig weer als nummer
- kleurnummer (1-4) berekend met kleurcodes->getnummer(); sinds e8a6bf8
  kwam het niet meer uit de query, waardoor de bolletjes 'huidige
  situatie' ontbraken
- gemiddelde werd vóór het afronden op 0 gezet
- huidig is weer een nummer, zodat ontwikkelagenda2 alleen ijkpunten met
  huidig < wens toont

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 11:43:08 +02:00

882 lines
32 KiB
PHP

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/** Sopinhouden_model oktober 2015 */
class Sopinhouden_model extends MY_Model{
protected $tablename = 'tb_sopinhouden';
function __construct(){
parent::__construct();
$models = array(
"monpas/Ambities_model",
'shared/Users_model',
'monpas/Diversiteits_model',
'monpas/Filledversions_model',
'monpas/Groepen_model',
'monpas/Hoofdstukken_model',
'monpas/Ijkpunten_model',
'monpas/Labels_model',
'monpas/Ondersteuningtijden_model',
'monpas/Orgversies_model',
'monpas/Schooldetails_model',
'shared/Schooljaren_model',
'monpas/Scores_model',
'monpas/Sop_model',
'monpas/Standaardteksten_model',
'monpas/Wenssituaties_model');
$this->load->model($models);
$this->load->library('monpas/kleurcodes');
}
function maakcontent($chapterid,$profielid, $targetversieid= FALSE){
$content = $this->Standaardteksten_model->get_fieldvalue(array("soort"=>1, "chapter_id"=>$chapterid),'content');
$versie = null;
if(! $targetversieid || $targetversieid == FALSE){
$targetversieid = 0;
}
switch ($chapterid){
case 1: $tabelschoolcolofon =$this->getcolofon();
$content = $content.$tabelschoolcolofon.'<h2>Visie van onze school</h2><p> </p>';
break;
case 2: $module = 2;
$arraytabelsdiversiteit = $this->getdiversiteit234($profielid,$targetversieid, $module);
$versie = $arraytabelsdiversiteit['targetjaar'];
$tabeldiversiteit2 = $arraytabelsdiversiteit['dvt2'];
$pos = strpos($content, "dvt2");
$content = substr_replace($content, $tabeldiversiteit2, $pos, 4);
$tabeldiversiteit4 = $arraytabelsdiversiteit['dvt4'];
$pos = strpos($content, "dvt4");
$content = substr_replace($content, $tabeldiversiteit4, $pos , 4);
$tabeldiversiteit3= $arraytabelsdiversiteit['dvt3'];
$pos = strpos($content,"dvt3");
$content = substr_replace($content, $tabeldiversiteit3, $pos, 4);
$grafiekdiversiteit1 = $arraytabelsdiversiteit['divgrafiek1'];
$image = $this->Phantom_model->create_img($grafiekdiversiteit1, 'test.png', FALSE, FALSE, array(650, 300));
$pos = strpos($content,"dvt5");
$imagedata = "<img src='data:image/png;base64,".$image."' id='divimage1'/>";
$content = substr_replace($content, $imagedata, $pos, 4);
break;
case 3: $module = 2;
$ostabellen = $this->getondersteuning12($profielid,$targetversieid, $module);
$versie = $ostabellen['targetjaar'];
$os1 = $ostabellen['os1'];
$pos = strpos($content, "om1");
$content = substr_replace($content, $os1, $pos, 3);
$os2 = $ostabellen['os2'];
$pos = strpos($content, "om2");
$content = substr_replace($content, $os2, $pos, 3);
break;
case 6: $result = $this->getenquetetabellen($profielid,1,6,$targetversieid);
$versie = $result['targetversie'];
$mbgrafiek = $result['grafiek1'];
// $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'/>";
$pos = strpos($content,'mbgrafiek1');
$content = substr_replace($content, $imagedata, $pos, 10);
$monbas1 = $result['tabel1'];
$pos = strpos($content, 'monbas1');
$content = substr_replace($content, $monbas1, $pos, 7);
$monbas2 = $result['tabel2'];
$pos = strpos($content, 'monbas2');
$content = substr_replace($content, $monbas2, $pos, 7);
break;
case 7: $result = $this->getenquetetabellen($profielid,4,7,$targetversieid);
$versie = $result['targetversie'];
$smgrafiek = $result['grafiek1'];
$imagesm = $this->Phantom_model->create_img($smgrafiek, 'test.png', FALSE, FALSE, array(650, 300));
$imagedata = "<img src='data:image/png;base64,".$imagesm."' id='mod4image1'/>";
$pos = strpos($content,'imagesm');
$content = substr_replace($content, $imagedata, $pos, 7);
$sm1 = $result['tabel1'];
$pos = strpos($content, 'tabelsm1');
$content = substr_replace($content, $sm1, $pos, 8);
$sm2 = $result['tabel2'];
$pos = strpos($content, 'tabelsm2');
$content = substr_replace($content, $sm2, $pos, 8);
break;
case 8: $result = $this->getenquetetabellen($profielid,5,8,$targetversieid);
$versie = $result['targetversie'];
$esgrafiek = $result['grafiek1'];
$imagesm = $this->Phantom_model->create_img($esgrafiek, 'test.png', FALSE, FALSE, array(650, 300));
$imagedata = "<img src='data:image/png;base64,".$imagesm."' id='mod5image1'/>";
$pos = strpos($content,'esgrafiek1');
$content = substr_replace($content, $imagedata, $pos, 10);
$es1 = $result['tabel1'];
$pos = strpos($content, 'estabel1');
$content = substr_replace($content, $es1, $pos, 8);
$es2 = $result['tabel2'];
$pos = strpos($content, 'estabel2');
$content = substr_replace($content, $es2, $pos, 8);
break;
case 9:
$result = $this->getenquetetabellen($profielid,3,9,$targetversieid);
$versie = $result['targetversie'];
$tvgrafiek = $result['grafiek1'];
$imagetv = $this->Phantom_model->create_img($tvgrafiek, 'test.png', FALSE, FALSE, array(650, 300));
$imagedata = "<img src='data:image/png;base64,".$imagetv."' id='mod3image1'/>";
$pos = strpos($content,'tvgrafiek1');
$content = substr_replace($content, $imagedata, $pos, 10);
$tv1 = $result['tabel1'];
$pos = strpos($content, 'tvtabel1');
$content = substr_replace($content, $tv1, $pos, 8);
$tv2 = $result['tabel2'];
$pos = strpos($content, 'tvtabel2');
$content = substr_replace($content, $tv2, $pos, 8);
break;
case 11: // Ontwikkelagenda Monbas
$versie = "";
$result = $this->getOntwikkelagenda($profielid, 1,$targetversieid);
if($result) {
$versie = $result['targetversie'];
}
$imageoa = $this->Phantom_model->create_img($result['tabel1'], 'test.png', FALSE, FALSE, array(650, 300));
$imagedata = "<img src='data:image/png;base64,".$imageoa."' id='oa1image1'/>";
$pos = strpos($content, 'oatabel1');
$content = substr_replace($content, $imagedata, $pos,8);
$oa2 = $result['tabel2'];
$pos = strpos($content, 'oatabel2');
$content = substr_replace($content, $oa2, $pos,8);
break;
case 12: // Ontwikkelagenda Schoolmeter
// $content = '';
$versie = "";
$result = $this->getOntwikkelagenda($profielid, 4,$targetversieid);
if($result) {
$versie = $result['targetversie'];
}
$imageoa = $this->Phantom_model->create_img($result['tabel1'], 'test.png', FALSE, FALSE, array(650, 300));
$imagedata = "<img src='data:image/png;base64,".$imageoa."' id='oa2image1'/>";
$pos = strpos($content, 'oatabel3');
$content = substr_replace($content, $imagedata, $pos,8);
$oa2 = $result['tabel2'];
$pos = strpos($content, 'oatabel4');
$content = substr_replace($content, $oa2, $pos,8);
//
break;
}; // switch
return array('content' =>$content,
'versie' =>$versie);
}
function getcolofon(){
$orgid = $this->globorgid;
$details = $this->Schooldetails_model->get_details2($orgid);
$organisatie = $this->Organisaties_model->get_record_by_id($orgid);
$bg = $this->Organisaties_model->get_record_by_id($organisatie->valtonder_id);
$data = array("bevoegdgezag" => $bg->naam,
"school" => $organisatie->naam,
"details" => $details);
return $this->load->view("monpas/sop/schooldetails", $data,TRUE);
}
function getgroepeninfo($schooljaarnr){
$orgid = $this->globorgid;
$this->sql="SELECT sum(totaantal) AS llng,
count(DISTINCT id) AS groepen,
sum( IF(length(niveau)> 1, 1,0 )) AS combi
FROM tb_groepen
WHERE organisatie_id = {$orgid}
AND schooljaarnr = {$schooljaarnr} ";
return $this->get_query_row();
}
function getschooljaar($profielid){
$targetjaar = false;
$profiel = $this->Sop_model->get_record_by_id($profielid);
$this->sql = "SELECT schooljaarnr, naam
FROM tb_schooljaren
WHERE start >= '{$profiel->van}'
AND start <='{$profiel->tm}'
ORDER BY schooljaarnr DESC";
$schooljaren= $this->get_query_result();
//Kijk of voor welk schooljaar er gegevens zijn; neem daarvan het meest recente schooljaar.
if ($schooljaren){
foreach($schooljaren as $schooljaar){
$groepsinfo = $this->getgroepeninfo($schooljaar->schooljaarnr);
if ($groepsinfo->groepen > 0){
$targetjaar = $schooljaar->schooljaarnr;
break;
}
};//foreach
};
return $targetjaar;
}
function gettargetjaar($profielid, $orgid,$currentchapterid){
// als er een current hoofdstuk is, gebruik dat jaar
$where = array("profiel_id"=>$profielid, "chapter_id"=>$currentchapterid);
$targetjaar = $this->get_fieldvalue($where, "orgversieid");
// als er nog geen current hoofdstuk is; als er al een hoofdstuk is met dezelfde module, gebruik hetzelfde jaar.
if (!$targetjaar){
$where = array("id"=>$currentchapterid);
$module = $this->Hoofdstukken_model->get_fieldvalue($where,'module');
$where = array("module"=>$module, "id !="=>$currentchapterid);
$otherchapters = $this->Hoofdstukken_model->get_records_where($where);
if ($otherchapters){
foreach($otherchapters as $otherchapter){
$where = array("profiel_id"=>$profielid, "chapter_id"=>$otherchapter->id);
$targetjaar = $this->get_fieldvalue($where, "orgversieid");
if ($targetjaar) break;
}; // foreach
}; // if otherchapters
}
//als er dan nog geen target jaar is, bepaal dan het targetjaar aan de hand van de periode
if (is_null($targetjaar)){
$targetjaar = $this->getschooljaar($profielid);
}
return $targetjaar;
}
function getdiversiteit234($profielid,$targetversieid, $module){
$orgid = $this->globorgid;
$swvid = $this->Organisaties_model->get_swvid ($orgid);
if ($targetversieid) { $targetjaar=$this->Schooljaren_model->get_fieldvalue(array('id'=> $targetversieid),'schooljaarnr');} // let op is targetid het id en heeft targetjaar het id nodig of iets anders?
else {
$targetjaar = $this->gettargetjaar($profielid, $orgid,2);
}
//haal de tabel op
$dvt2 = false;
$dvt4 = false;
$dvt3 = false;
$divgrafiek1= false;
$totaal = 0;
$hoeveelgroepen = 0;
$combi = 0;
$som1 = 0;
$som2 = 0;
$som3 = 0;
$som4 = 0;
$normaantal = 0;
$totdiversiteit = 0;
$totdq = 0;
$schooljaar ='';
if ($targetjaar){
$schoolsoort = 'REGULIER';
$minnivo = 1;
$maxnivo = 4;
$aantallnschool =0;
$normaantallen = $this->Diversiteits_model->getnormaantallen($orgid, $schoolsoort);
$groepen = $this->Groepen_model->getgroepen($orgid, $targetjaar, $module);
$osvormen = $this->Diversiteits_model->getosvormen($orgid, $targetjaar, $minnivo, $maxnivo, $module);
$schooljaar = $this->Schooljaren_model->get_record_by_id($targetjaar);
$combifactoren = $this->Combifactoren_model->getfactoren($swvid);
$schoolcombifactor = 0;
$colspan = 2;
if ($groepen){
$colspan = $colspan + count($groepen);
foreach($groepen as $groep){
$groepasarray = explode(';',$groep->niveau);
$aantallnschool = $groep->totaantal + $aantallnschool;
$combis = count($groepasarray);
$groep->diversiteit = $groep->som1 + (1.5 * $groep->som2) + (2 * $groep->som3) + (4 * $groep->som4);
if ($combis==2 && $groep->totaantal > 0) {
$groep->diversiteit = $groep->diversiteit + $combifactoren->combi2;
$schoolcombifactor = $schoolcombifactor + $combifactoren->combi2;
};
if ($combis >=3 && $groep->totaantal > 0) {
$groep->diversiteit = $groep->diversiteit + $combifactoren->combi3;
$schoolcombifactor = $schoolcombifactor + $combifactoren->combi3;
};
//if (strpos($groep->niveau,';') >0) {$groep->diversiteit = $groep->diversiteit + 1.5;};
$factor =$normaantallen->groep38;
if (strpos($groep->niveau,'1') !== false || strpos($groep->niveau,'2') !== false) {$factor = $normaantallen->groep12;};
$groep->dq= ($factor != 0) ? round(($groep->diversiteit / $factor),2) : 0;
$totaal = $totaal + $groep->totaantal;
$hoeveelgroepen = $hoeveelgroepen + 1;
if (strpos($groep->niveau, ';') > 0){$combi = $combi + 1;}
$som1= $som1 + $groep->som1;
$som2= $som2 + $groep->som2;
$som3= $som3 + $groep->som3;
$som4= $som4 + $groep->som4;
if (strpos($groep->niveau,'1') !== false || strpos($groep->niveau,'2') !== false){
$normaantal = $normaantal + $normaantallen->groep12;
}
else {
$normaantal = $normaantal + $normaantallen->groep38;
}
}
$totdiversiteit = $som1 + (1.5 * $som2) + (2 * $som3) + (4 * $som4);
// hier gaat het fout omdat de combifactor voor ieder groep moet worden toegevoegd
//en dit ligt buiten de foreach groep
if ($aantallnschool > 0){
$totdiversiteit= $totdiversiteit + $schoolcombifactor;
// if ($combis == 2){$totdiversiteit = $totdiversiteit + $combifactoren->combi2;};
// if ($combis >= 3){$totdiversiteit = $totdiversiteit + $combifactoren->combi3;};
}
if ($normaantal > 0){
$totdq = $totdiversiteit / $normaantal;
};
}
$data = array('normaantallen' =>$normaantallen,
'colspan' =>$colspan,
'groepen' =>$groepen,
'osvormen' =>$osvormen,
'schooljaar' => $schooljaar->naam,
'totdiversiteit' => $totdiversiteit,
'schooldq' => $totdq);
$dvt2 = $this->load->view("monpas/sop/diversiteittabel2", $data,TRUE);
$dvt4 = $this->load->view("monpas/sop/diversiteittabel4", $data, TRUE);
$data2 = array( 'schooljaar' =>$schooljaar->naam,
'totaal' => $totaal,
'groepen' => $hoeveelgroepen,
"combi" => $combi,
'som1' => $som1,
'som2' => $som2,
'som3' => $som3,
'som4' => $som4,
'totdiversiteit' => $totdiversiteit,
'totdq' => $totdq
);
$dvt3 = $this->load->view("monpas/sop/diversiteittabel3", $data2,TRUE);
$data3=array('groepen' =>$groepen, 'totdq'=>$totdq);
$divgrafiek1= $this->load->view("monpas/sop/diversiteitgrafiek1", $data3, TRUE);
};
return array('dvt2' =>$dvt2,
'dvt3' =>$dvt3,
'dvt4' =>$dvt4,
'divgrafiek1' =>$divgrafiek1,
'targetjaar' => $targetjaar
);
}
function getondersteuning12($profielid,$targetversieid, $module){
$orgid =$this->globorgid;
$os1='';
$os2='';
$som1 = 0;
$som2 = 0;
$som3 = 0;
$som4 = 0;
$normaantal = 0;
$schooldiversiteit = 0;
$schooldq = 0;
$totschooltijd = 0;
$totG = 0;
$totS = 0;
$totI = 0;
if ($targetversieid ) {$targetjaar = $this->Schooljaren_model->get_fieldvalue(array('id'=>$targetversieid), "schooljaarnr"); }
else {$targetjaar = $this->gettargetjaar($profielid, $orgid,3);}
if ($targetjaar){
$schooljaar = $this->Schooljaren_model->get_record_by_id($targetjaar);
$groepen = $this->Groepen_model->getgroepen($orgid, $targetjaar, $module);
$schooltype = "REGULIER";
$normaantallen= $this->Diversiteits_model->getnormaantallen($orgid, $schooltype);
if ($groepen){
foreach($groepen as $groep){
$groep->tijden = new stdClass;
$groep->tijden = $this->Ondersteuningtijden_model->getgroeptijden($groep->id);
$groep->tijdstring='';
$groeptot =0;
if ($groep->tijden){
foreach($groep->tijden as $tijd){
$groeptot = $groeptot + $tijd->minuten;
switch ($tijd->soort){
case 'G' : $totG= $totG + $tijd->minuten; break;
case 'S' : $totS= $totS + $tijd->minuten; break;
case 'I' : $totI= $totI+ $tijd->minuten; break;
}
$uur = floor($tijd->minuten / 60);
$minuten = $tijd->minuten % 60;
$uur0 ='';
if ($uur < 10) $uur0='0';
$minuut0 ='';
if ($minuten < 10) $minuut0='0';
$tijd->tijdstring = $tijd->soort.' '.$uur0.$uur.':'.$minuut0.$minuten;
$totschooltijd = $totschooltijd + $tijd->minuten;
}
}
$groep->diversiteit = $groep->som1 + (1.5 * $groep->som2) + (2 * $groep->som3) + (4 * $groep->som4);
if (strpos($groep->niveau,';') >0) {$groep->diversiteit = $groep->diversiteit + 1.5;};
$factor =$normaantallen->groep38;
if (strpos($groep->niveau,'1') > 0 || strpos($groep->niveau,'2') > 0) {$factor = $normaantallen->groep12;};
$groep->dq= ($factor != 0) ? round(($groep->diversiteit / $factor),2) : 0;
$som1= $som1 + $groep->som1;
$som2= $som2 + $groep->som2;
$som3= $som3 + $groep->som3;
$som4= $som4 + $groep->som4;
if (strpos($groep->niveau,'1') > 0 || strpos($groep->niveau,'2') > 0){
$normaantal = $normaantal + $normaantallen->groep12;
}
else {
$normaantal = $normaantal + $normaantallen->groep38;
}
$uur = floor($groeptot / 60);
$minuten = $groeptot % 60;
$uur0 ='';
if ($uur < 10) $uur0='0';
$minuut0 ='';
if ($minuten < 10) $minuut0='0';
$groep->tottijd= $uur0.$uur.':'.$minuut0.$minuten;
}
$uur = floor($totschooltijd / 60);
$minuten = $totschooltijd % 60;
$uur0 ='';
if ($uur < 10) $uur0='0';
$minuut0 ='';
if ($minuten < 10) $minuut0='0';
$schooltijdstring= $uur0.$uur.':'.$minuut0.$minuten;
$schooldiversiteit = $som1 + (1.5 * $som2) + (2 * $som3) + (4 * $som4);
if ($normaantal > 0){
$schooldq = round($schooldiversiteit / $normaantal, 2);
};
$data=array('groepen'=>$groepen,
'schooljaar'=> $schooljaar->naam,
'schooldq' =>$schooldq,
'schooltijdstring' =>$schooltijdstring );
$os1 = $this->load->view("monpas/sop/ondersteuning1", $data,TRUE);
// print_r($os1);
// die;
}
$uur = floor($totG / 60);
$minuten = $totG % 60;
$uur0 ='';
if ($uur < 10) $uur0='0';
$minuut0 ='';
if ($minuten < 10) $minuut0='0';
$Gtijdstring= $uur0.$uur.':'.$minuut0.$minuten;
$uur = floor($totS / 60);
$minuten = $totS % 60;
$uur0 ='';
if ($uur < 10) $uur0='0';
$minuut0 ='';
if ($minuten < 10) $minuut0='0';
$Stijdstring= $uur0.$uur.':'.$minuut0.$minuten;
$uur = floor($totI / 60);
$minuten = $totI % 60;
$uur0 ='';
if ($uur < 10) $uur0='0';
$minuut0 ='';
if ($minuten < 10) $minuut0='0';
$Itijdstring= $uur0.$uur.':'.$minuut0.$minuten;
$data2= array("gtijd"=> $Gtijdstring,
'stijd' => $Stijdstring,
"itijd"=> $Itijdstring);
$os2 = $this->load->view("monpas/sop/ondersteuning2", $data2,TRUE);
}
return array('os1' => $os1,
'os2' => $os2,
'targetjaar' => $targetjaar );
}
function gettargetversie($profielid, $orgid,$currentchapterid){
// als er een current hoofdstuk is, gebruik die versie
$where = array("profiel_id"=>$profielid, "chapter_id"=>$currentchapterid);
$targetversieid = $this->get_fieldvalue($where, "orgversieid");
// als er nog geen current hoofdstuk is maar wel een hoofdstuk is met dezelfde module, gebruik hetzelfde jaar.
if (!$targetversieid){
$where = array("id"=>$currentchapterid);
$module = $this->Hoofdstukken_model->get_fieldvalue($where,'module');
$where = array("module"=>$module, "id !="=>$currentchapterid);
$otherchapters = $this->Hoofdstukken_model->get_records_where($where);
if ($otherchapters){
foreach($otherchapters as $otherchapter){
$where = array("profiel_id"=>$profielid, "chapter_id"=>$otherchapter->id);
$targetversieid = $this->get_fieldvalue($where, "orgversieid");
if ($targetversieid) break;
}; // foreach
}; // if otherchapters
}
//als er dan nog geen targetversie is, bepaal dan het targetversie aan de hand van de periode
if (!$targetversieid){
$profiel=$this->Sop_model->get_record_by_id($profielid);
$versies = $this->Filledversions_model->getversiesperorgperperiode($orgid, $module, $profiel->van, $profiel->tm);
if ($versies){
$targetversie = $this->Orgversies_model->get_record_by_id($versies[0]->id);
$targetversieid = $targetversie->id;
};
}
return $targetversieid;
}
function getenquetetabellen($profielid, $module, $chapterid, $targetversieid){
$orgid = $this->globorgid;
$grafiek ='';
$tabel1 = '';
$tabel2 = '';
$scores = '';
$ambitie = '';
$profiel = $this->Sop_model->get_record_by_id($profielid);
//zoek de gewenste versie
if (!$targetversieid ){
$targetversieid = $this->gettargetversie($profielid, $orgid,$chapterid);
}
if ($targetversieid) {
$scores = $this->Scores_model->getgemscores($targetversieid, $orgid);
$ambitieorgs = '';
$ambitieorgs = $this->getAmbitieOrgs($this->globorgid, $ambitieorgs);
$ambitieorgs = rtrim($ambitieorgs, ',');
$toporgsarray = explode(',', $ambitieorgs);
$toporgs = '';
$index = 0;
for($i = count($toporgsarray)-1; $i >= 0 ; $i--) {
if($index < 2) {
$toporgs .= $toporgsarray[$i] . ',';
$index++;
}
}
$toporgs = rtrim($toporgs, ',' );
$ambitie = $this->Ambities_model->mh_get_ambitie_orgversie($targetversieid, $ambitieorgs, $toporgs);
if(!isset($ambitie->ambitieID)) {
$xijkpunten = $this->Ijkpunten_model->telijkpunten($targetversieid);
$orgversie = $this->Orgversies_model->get_record_by_id($targetversieid);
$ambitie = new stdClass();
$ambitie->ambitievan = 'standaard';
$ambitie->AmbitieID = 0;
$ambitie->geldigtm = $orgversie->geldigtm;
$ambitie->geldigvanaf = $orgversie->geldigvanaf;
$ambitie->gemscore = 80;
$ambitie->orgversie_id = $targetversieid;
$ambitie->periodenummer = $orgversie->periodenummer;
$ambitie->soort = 0;
$ambitie->xijkpunten = $xijkpunten;
$ambitie->zprocent = 60;
}
}
if (!$targetversieid || !$scores){
return array('grafiek1' => '',
'tabel1' => '',
'tabel2' => '',
'targetversie' => $targetversieid);
}
$totgem = 0 ;
$totaantal= 0;
$ijkpuntenok = 0;
$welkehoogste = 0;
$hoogstescore = -1;
$welkelaagste = 0;
$laagstescore = 101;
if ($scores) {
foreach ($scores as $score) {
$score->gem = round($score->gem);
//
// if ($score->num > 0) {
// $gem=$score->somscore / $score->num;
// };
//LS ACTIEF GEMAAKT
$score->kleurcode = $this->kleurcodes->getkleur($score->gem);
if ($score->disabled == 'F' && $score->disablenvt == 'F') {
$totgem = $totgem + $score->gem;
$totaantal = $totaantal + 1;
if ($score->gem > $hoogstescore) {
$hoogstescore = $score->gem;
$welkehoogste = $score->nummer;
}
if ($score->gem <= $laagstescore) {
$laagstescore = $score->gem;
$welkelaagste = $score->nummer;
}
if ($ambitie && $score->gem >= $ambitie->zprocent) {
$ijkpuntenok = $ijkpuntenok + 1;
};
}
}
if ($totaantal > 0) {
$totgem = round($totgem / $totaantal, 0);
}
$totgemkleur = $this->kleurcodes->getkleur($totgem);
// foreach scores bereken som en dus totgem en ijkpuntenok
}
$tabelid='';
switch ($module){
case 1: $tabelid = "tabelmb1"; break;
case 3: $tabelid = "tabeltv1"; break;
case 4: $tabelid = "tabelsm1"; break;
case 5: $tabelid = "tabeles1"; break;
}
$labels = $this->Labels_model->getalllabels($module);
$kleurtabel = $this->kleurcodes->getkleurlegenda();
$orgversie = $this->Orgversies_model->get_record_by_id($targetversieid);
$vantm = "geen periode bekend.";
if ($orgversie){
$vantm = "Gegevens uit periode ".$orgversie->periodenummer." van ".mysql2date($orgversie->geldigvanaf)." t/m ".mysql2date($orgversie->geldigtm);
};
$data=array( "tabelid" => $tabelid,
"ambitie" => $ambitie,
"labels" => $labels,
"scores" => $scores,
'totgem' => $totgem,
'totgemkleur' =>$totgemkleur,
'ijkpuntenok' => $ijkpuntenok,
'welkehoogste' => $welkehoogste,
'hoogstescore' => round($hoogstescore,1),
'welkelaagste' => $welkelaagste,
'laagstescore' => round($laagstescore,1) ,
"kleurtabel" =>$kleurtabel,
"vantm" =>$vantm);
$tabel1 = $this->load->view("monpas/sop/monbastabel1", $data,TRUE);
$grafiek = $this->load->view("monpas/sop/monbasgrafiek1",$data, TRUE);
$aantalijkpunten = 0;
$ijkpunten = $this->Orgversies_model->getijkpunten( $targetversieid);
if ($ijkpunten){
$aantalijkpunten=count($ijkpunten);
};
$targetversie = $this->Orgversies_model->get_record_by_id($targetversieid);
if ($targetversie->vorm == 1){
// school vorm
$lks = $this->getorgscores($orgid, $targetversieid,$aantalijkpunten);
}
else{
$lks= $this->getlksscores($orgid, $targetversieid,$aantalijkpunten);
}
$tabelid = '';
switch ($module){
case 1: $tabelid = "tabelmb2"; break;
case 3: $tabelid = "tabeltv2"; break;
case 4: $tabelid = "tabelsm2"; break;
case 5: $tabelid = "tabeles2"; break;
}
$data = array( 'tabelid' =>$tabelid,
'lks' =>$lks,
'aantalijkpunten' => $aantalijkpunten,
'ijkpunten' => $ijkpunten,
'versievorm' => $targetversie->vorm);
$tabel2 = $this->load->view("monpas/sop/monbastabel2", $data,TRUE);
return array ('grafiek1' => $grafiek,
'tabel1' => $tabel1,
'tabel2' => $tabel2,
'targetversie' => $targetversieid);
}
private function getAmbitieOrgs($orgid, $ambitieorgs){
$ambitieorgs .= $orgid . ',';
$valtonder = $this->Organisaties_model->get_fieldvalue(['id' => $orgid], 'valtonder_id');
if($valtonder != $orgid){
return $this->getAmbitieOrgs($valtonder, $ambitieorgs);
}
return $ambitieorgs;
}
function getlksscores($orgid, $orgversieid,$aantalijkpunten){
$lks = $this->Filledversions_model->getlks($orgid, $orgversieid);
if ($lks){
foreach($lks as $lk){
$lk->scores = $this->Scores_model->calculateindividualscores($orgversieid, $orgid, $lk->user_id);
$som = 0;
if ($lk->scores){
foreach($lk->scores as $index => $score){
$aftrek = 0;
$score->gem = new stdClass();
$score->gem = 0;
$score->colorcode = '#808080';
$score->disablenvt = 'F';
if($score->aantalvier > 0 && $score->aantalvier == $score->aantalnvt) $score->disablenvt = 'T';
if($score->disabled == 'F' && $score->disablenvt == 'F') {
$score->gem = ($score->num != 0) ? $score->somscore / $score->num : 0;
$score->colorcode = $this->kleurcodes->getkleur($score->gem);
$som = $som + $score->gem;
}
if($score->disabled == 'T') $aftrek++;
if($score->disablenvt == 'T') $aftrek++;
}
$deler = $aantalijkpunten - $aftrek;
if ($deler > 0) $lk->lkgem = round($som / $aantalijkpunten, 0);
else $lk->gem = 0;
$lk->colorcode = $this->kleurcodes->getkleur($lk->lkgem);
}
}
}
return $lks;
}
function getorgscores($orgid, $orgversieid,$aantalijkpunten){
$lks = array();
$lks[0] = new stdClass;
$fv = $this->Filledversions_model->getfilledversion($orgversieid, $orgid, 0, 1);
$lks[0]->filledversionid = $fv->id;
$lks[0]->fullname = $this->Organisaties_model->get_record_by_id($orgid, "naam",true);
$lks[0]->orgid = $orgid;
$lks[0]->scores = $this->Scores_model->getgemscores($orgversieid, $orgid);
if ($lks[0]->scores){
$som = 0;
$aftrek = 0;
foreach($lks[0]->scores as $score){
$score->colorcode = '#808080';
if($score->disabled == 'F' && $score->disablenvt == 'F') {
$score->colorcode = $this->kleurcodes->getkleur($score->gem);
$som = $som + $score->gem;
}
if($score->disabled =='T' || $score->disablenvt =='T' ) $aftrek++;
}
if($aantalijkpunten - $aftrek > 0) {
$lks[0]->lkgem = round($som / ($aantalijkpunten - $aftrek), 0);
}
else{
$lks[0]->lkgem = 0;
}
$lks[0]->colorcode = $this->kleurcodes->getkleur($lks[0]->lkgem);
}
return $lks;
}
function getOntwikkelagenda($profielid, $module,$targetversieid){
$tabel1='';
$tabel2='';
$orgid = $this->globorgid;
$profiel = $this->Sop_model->get_record_by_id($profielid);
$scores = [];
if ($module == 1) $chapterid = 11;
else $chapterid = 12;
if (! $targetversieid) {
$targetversieid =$this->gettargetversie($profielid, $orgid,$chapterid);
}
if ($targetversieid){
$targetversie = $this->Orgversies_model->get_record_by_id($targetversieid);
$scores = $this->Scores_model->getgemscores($targetversieid, $orgid);
$ambitie = $this->Ambities_model->getOrgAmbities($targetversieid, $orgid);
if($targetversie->scoretype == 7){
$grens1 = 33;
$grens2 = 66;
$grens3 = 100;
}
}
if (!$targetversieid){
return array( 'tabel1' => '',
'tabel2' => '',
'targetversie' => '');
}
$gewenst = $this->Scores_model->getgewenst($orgid, $targetversieid);
$i =0;
$scores = $scores ? $scores : [];
foreach($scores as $score){
$score->gem = isset($score->gem) ? round($score->gem) : 0;
$score->kleur = '#808080';
if(isset($score->kleurcode)) $score->kleur = $score->kleurcode;
// kleurnummer (1-4) voor de kolommen 'huidige situatie' in de ontwikkelagenda;
// huidig als nummer zodat ontwikkelagenda2 kan vergelijken met wens
$score->kleurnummer = $this->kleurcodes->getnummer($score->gem);
$score->huidig = $score->kleurnummer;
if($targetversie->scoretype == 7){
if($score->gem == $grens3) $score->huidig = 4;
if($score->gem < $grens3) $score->huidig = 3;
if($score->gem < $grens2) $score->huidig = 2;
if($score->gem < $grens1) $score->huidig = 1;
$score->kleurnummer = $score->huidig;
}
if ($gewenst){
$score->wens = $gewenst[$i]->wens;
$i = $i + 1;
}
else{
$score->wens = 3;
$score->wenskleur = '#9fdf9f';
}
}; //foreach
$labels = $this->Labels_model->getalllabels($module);
$kleurtabel = $this->kleurcodes->getkleurlegenda();
if($targetversie->scoretype == 7){
$kleurtabel = $this->kleurcodes->getKleurlegendaType($targetversie->scoretype);
}
$data= array( "scores" => $scores,
"labels" => $labels,
"module" => $module,
"kleurtabel" => $kleurtabel);
$tabel1 = $this->load->view("monpas/sop/ontwikkelagenda", $data,TRUE);
$data = array( "scores" => $scores,
"labels" => $labels,
"module" => $module);
$tabel2 = $this->load->view("monpas/sop/ontwikkelagenda2", $data,TRUE);
return array(
'tabel1' => $tabel1,
'tabel2' => $tabel2,
'targetversie' => $targetversieid);
}
function getPagvolgorde($profielID){
$this->sql = "SELECT id as sopinhoudID, volgorde
FROM tb_sopinhouden
WHERE profiel_id = {$profielID}
ORDER BY volgorde";
return $this->get_query_result();
}
}