- 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>
882 lines
32 KiB
PHP
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();
|
|
}
|
|
|
|
|
|
}
|