292 lines
10 KiB
PHP
292 lines
10 KiB
PHP
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
class Lijsten
|
|
{
|
|
private $CI;
|
|
private $modulenr;
|
|
private $versienaam;
|
|
private $soort;
|
|
private $aantal;
|
|
private $ijkpunten;
|
|
private $results;
|
|
private $scores;
|
|
private $vergelijkingen;
|
|
private $lijst;
|
|
private $lijsten = [];
|
|
private $nieuwste = 0;
|
|
private $nieuwsteversie;
|
|
private $sopinfo;
|
|
private $eigenambitie = 'F';
|
|
|
|
public function getLijsten(){
|
|
return $this->lijsten;
|
|
}
|
|
|
|
public function getNieuwsteVersie(){
|
|
return $this->nieuwsteversie;
|
|
}
|
|
|
|
public function getEigenAmbitie(){
|
|
return $this->eigenambitie;
|
|
}
|
|
|
|
public function getIJkpunten(){
|
|
return $this->ijkpunten;
|
|
}
|
|
|
|
|
|
public function getKleuren(){
|
|
return $this->results['kleuren'];
|
|
}
|
|
|
|
public function getSopInfo(){
|
|
return $this->sopinfo;
|
|
}
|
|
|
|
public function __construct($orgid, $selecties){
|
|
$this->CI = & get_instance();
|
|
$this->orgid = $orgid;
|
|
$this->selecties = $selecties;
|
|
$this->handle();
|
|
}
|
|
|
|
private function handle(){
|
|
$this->setModulenummer();
|
|
$this->setOrg();
|
|
$this->setSoort();
|
|
$this->setAantal();
|
|
|
|
$this->loopSelecties();
|
|
$this->loopLijsten();
|
|
$this->setSopInfo();
|
|
}
|
|
|
|
private function setModulenummer(){
|
|
$orgversieid = $this->selecties[0]['orgversieid'];
|
|
$versieid = $this->CI->Orgversies_model->get_fieldvalue(['id' => $orgversieid], 'versie_id');
|
|
$this->modulenr = $this->CI->Versies_model->get_fieldvalue(['id' => $versieid], 'modulenr');
|
|
}
|
|
|
|
private function setOrg(){
|
|
$this->organisatie = $this->CI->Organisaties_model->get_record_by_id($this->orgid);
|
|
}
|
|
|
|
private function setSoort(){
|
|
$this->soort = $this->organisatie->soort;
|
|
}
|
|
|
|
private function setAantal(){
|
|
$this->aantal = count($this->selecties);
|
|
}
|
|
|
|
|
|
private function loopSelecties(){
|
|
|
|
for($index = 0; $index < $this->aantal; $index++){
|
|
$this->versienaam = "";
|
|
$this->lijst = new stdClass();
|
|
$this->setOrgversieid($index);
|
|
$this->setVorm($index);
|
|
$this->setOrgversie();
|
|
$this->setIJkpunten($index);
|
|
$this->setVersieNaam();
|
|
$this->setLabels();
|
|
$this->setResults();
|
|
$this->setVergelijkingen();
|
|
$this->setVergelijkingScores();
|
|
$this->setAmbities();
|
|
$this->setLijst();
|
|
$this->setrapportInfo();
|
|
$this->setLijsten();
|
|
}
|
|
}
|
|
|
|
private function setOrgversieid($index){
|
|
$this->lijst->orgversieid = $this->selecties[$index]['orgversieid'];
|
|
}
|
|
|
|
private function setVorm($index){
|
|
$this->lijst->vorm = $this->selecties[$index]['vorm'];
|
|
}
|
|
|
|
private function setOrgversie(){
|
|
$this->lijst->orgversie = $this->CI->Orgversies_model->get_record_by_id($this->lijst->orgversieid);
|
|
$this->lijst->periodenummer = $this->lijst->orgversie->periodenummer;
|
|
$this->lijst->jaartal = substr($this->lijst->orgversie->geldigvanaf, 2,2);
|
|
}
|
|
|
|
private function setIJkpunten($index){
|
|
if($index > 0 ) return;
|
|
$this->ijkpunten = $this->CI->Ijkpunten_model->getijkpuntenMetIndicatoren($this->lijst->orgversieid);
|
|
}
|
|
|
|
private function setVersieNaam(){
|
|
if($this->versienaam != "") return;
|
|
$this->versienaam = $this->CI->Versies_model->get_fieldvalue(['id' => $this->lijst->orgversie->versie_id], 'naam');
|
|
}
|
|
|
|
private function setLabels(){
|
|
$this->lijst->label = $this->CI->Labels_model->gettabellabel($this->modulenr);
|
|
$this->lijst->label2 = $this->CI->Labels_model->getresultaatlabel($this->modulenr);
|
|
}
|
|
|
|
private function setResults(){
|
|
if($this->soort == 4 && $this->lijst->vorm == 2) {
|
|
$this->gemiddelden = new Gemiddeldescores ($this->lijst->orgversieid, $this->orgid, $this->lijst->orgversie->scoretype);
|
|
$this->results = $this->gemiddelden->getResults();
|
|
$this->scores = $this->gemiddelden->getIJkpunten();
|
|
}
|
|
else {
|
|
$this->scoresobject = new Schoolscores($this->lijst->orgversieid, $this->orgid, $this->lijst->orgversie->scoretype, 'F');
|
|
$this->results = $this->scoresobject->getResults();
|
|
$this->scores = $this->scoresobject->getScores();
|
|
|
|
}
|
|
}
|
|
|
|
private function setVergelijkingen(){
|
|
if($this->soort == 1) return;
|
|
$this->vergelijkingen = new stdClass();
|
|
switch($this->soort){
|
|
case 2:
|
|
case 3: $orgid = $this->organisatie->valtonder_id;
|
|
break;
|
|
case 4 : $bestuurid = $this->organisatie->valtonder_id;
|
|
$orgid = $this->CI->Organisaties_model->get_fieldvalue(['id'=>$bestuurid], 'valtonder_id');
|
|
break;
|
|
}
|
|
|
|
$this->vergelijkingen = (new Schoolscores($this->lijst->orgversieid, $orgid, $this->lijst->orgversie->scoretype,'T' ))->getResults();
|
|
}
|
|
|
|
|
|
private function setVergelijkingScores(){
|
|
if(!isset($this->vergelijkingen) || !$this->vergelijkingen) return;
|
|
|
|
foreach($this->vergelijkingen['scores'] AS $i => $vergelijking){
|
|
$this->scores[$i]->gemV = $vergelijking->gem;
|
|
$this->scores[$i]->kleurV = $vergelijking->kleur;
|
|
$this->scores[$i]->disabledV = $vergelijking->disabled;
|
|
$this->scores[$i]->disablenvtV = $vergelijking->disablenvt;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
private function setAmbities(){
|
|
|
|
$standaard = new stdClass();
|
|
$standaard->ambitievan = 'standaard';
|
|
$standaard->id = 0;
|
|
$standaard->geldigtm = $this->lijst->orgversie->geldigtm;
|
|
$standaard->geldigvanaf = $this->lijst->orgversie->geldigvanaf;
|
|
$standaard->gemscore = 80;
|
|
$standaard->naam = $this->versienaam;
|
|
$standaard->orgversie_id = $this->lijst->orgversie->id;
|
|
$standaard->periodenummer = $this->lijst->orgversie->periodenummer;
|
|
$standaard->soort = 0;
|
|
$standaard->xijkpunten = ROUND($this->results['aantalY'] * 0.8);
|
|
$standaard->zprocent = 60;
|
|
|
|
|
|
if($this->results && $this->results['ambities'] && $this->results['ambities']->gemscore >= 0) $this->lijst->ambities = $this->results['ambities'];
|
|
else $this->lijst->ambities = $standaard;
|
|
|
|
|
|
if(!isset($this->vergelijkingen) || !$this->vergelijkingen) return;
|
|
|
|
if($this->vergelijkingen['ambities'] && $this->vergelijkingen['ambities']->gemscore >= 0 ) $ambitiesV = $this->vergelijkingen['ambities'];
|
|
else $ambitiesV = $standaard;
|
|
if($ambitiesV->ambitievan != $this->lijst->ambities->ambitievan) $this->lijst->ambitiesV = $ambitiesV;
|
|
|
|
|
|
|
|
}
|
|
|
|
private function setLijst(){
|
|
$this->lijst->naam = $this->results['orgnaam'];
|
|
$this->lijst->scores = $this->scores;
|
|
$metingen = $this->results['metingen'];
|
|
$this->lijst->metingen = $metingen ? $metingen->aantal : 0;
|
|
|
|
$this->lijst->aantalorgs = $metingen ? $metingen->aantalorgs : 0;
|
|
|
|
$this->lijst->wensen = $this->results['wensen'];
|
|
$this->lijst->adviezen = $this->results['adviezen'];
|
|
$this->lijst->resultaten = $this->results['resultaten'] ;
|
|
$this->lijst->aantalY = $this->results['aantalY'];
|
|
|
|
if(!isset($this->vergelijkingen) || !$this->vergelijkingen) return;
|
|
$this->lijst->naamV = $this->vergelijkingen['orgnaam'];
|
|
$metingenV = $this->vergelijkingen['metingen'];
|
|
$this->lijst->metingenV = $metingenV ? $metingenV->aantal : 0;
|
|
$this->lijst->aantalorgsV = $metingenV ? $metingenV->aantalorgs : 0;
|
|
}
|
|
|
|
private function setRapportInfo(){
|
|
$scholen = ' scholen';
|
|
if(intval($this->lijst->aantalorgs) == 1) $scholen = ' school';
|
|
$toevoeging = '';
|
|
$versie = ', schoolversie';
|
|
$versie2 = 'schoolversie';
|
|
if(intval($this->lijst->vorm) == 2) {
|
|
$versie = ', ind. versie';
|
|
$versie2 = 'individuele versie';
|
|
$metingen =' metingen';
|
|
if(intval($this->lijst->metingen) == 1) $metingen = ' meting';
|
|
$toevoeging = ', '. $this->lijst->metingen. $metingen;
|
|
|
|
}
|
|
if(intval($this->soort < 4)) $toevoeging .= ', '. $this->lijst->aantalorgs. $scholen;
|
|
$this->lijst->vantm = "p. " . $this->lijst->orgversie->periodenummer . " van " .
|
|
mysql2date($this->lijst->orgversie->geldigvanaf) . " t/m " . mysql2date($this->lijst->orgversie->geldigtm) .
|
|
$versie . $toevoeging;
|
|
$this->lijst->vantmresult = " <span>periode ". $this->lijst->orgversie->periodenummer ."</span><br><span>".
|
|
mysql2date($this->lijst->orgversie->geldigvanaf)." t/m " . mysql2date($this->lijst->orgversie->geldigtm) .
|
|
"</span><br><span>".$versie2 . $toevoeging."</span>";
|
|
}
|
|
|
|
private function setLijsten(){
|
|
$this->lijsten [] = $this->lijst;
|
|
}
|
|
|
|
private function loopLijsten()
|
|
{
|
|
$this->nieuwste = 0;
|
|
foreach ($this->lijsten as $index => $this->lijst) {
|
|
if (!$this->lijst->orgversie) continue;
|
|
$this->setNieuwsteVersie();
|
|
$this->setEigenAmbitie();
|
|
|
|
}
|
|
}
|
|
|
|
private function setNieuwsteVersie(){
|
|
if ($this->lijst->orgversie->periodenummer > $this->nieuwste) {
|
|
$this->nieuwste = $this->lijst->orgversie->periodenummer;
|
|
$this->nieuwsteversie = $this->lijst->orgversieid;
|
|
}
|
|
}
|
|
|
|
private function setEigenAmbitie(){
|
|
if($this->eigenambitie== 'T') return;
|
|
if($this->lijst->ambities->ambitievan != 'standaard') $this->eigenambitie = 'T';
|
|
}
|
|
|
|
private function setSopInfo(){
|
|
|
|
$this->sopinfo = [
|
|
'lijsten' => $this->lijsten,
|
|
'aantal' => $this->aantal,
|
|
'nieuwsteversie' => $this->nieuwsteversie,
|
|
'kleuren' => $this->results['kleuren'],
|
|
'versienaam' => $this->versienaam,
|
|
'eigenambitie' => $this->eigenambitie
|
|
|
|
];
|
|
|
|
|
|
}
|
|
|
|
}
|