Files
monpas/application/libraries/monpas/ijkpunten/Userlijsten.php
T
2021-07-13 12:53:03 +02:00

192 lines
6.3 KiB
PHP

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Userlijsten
{
private $CI;
private $modulenr;
private $clusterid;
private $individueleScores;
private $kamerScores;
private $gemiddeldeScores;
private $individueleAfbeeldingen;
private $kamerAfbeeldingen;
private $gemiddeldenAfbeeldingen;
private $orgversieid;
private $scores;
private $vNaam;
private $zprocent;
private $vergelijking;
private $vergelijkingen;
private $ambitiearray = [];
private $lijst;
private $lijsten = [];
private $nieuwste = 0;
private $nieuwsteversie;
public function getLijsten(){
return $this->lijsten;
}
public function getNieuwsteVersie(){
return $this->nieuwsteversie;
}
public function __construct($orguserid, $orgid, $orgversies){
$this->CI =& get_instance();
$this->orguserid = $orguserid;
$this->orgid = $orgid;
$this->orgversies = $orgversies;
$this->handle();
}
private function handle(){
$this->setModulenummer();
$this->setClusterid();
$this->loopOrgVersies();
$this->loopLijsten();
}
private function setModulenummer(){
$this->modulenr = $this->CI->session->userdata('module');
}
private function setClusterid(){
$this->clusterid = $this->CI->Modules_model->get_fieldvalue(['sysnr' =>$this->modulenr], 'cluster_id');
}
private function loopOrgVersies(){
foreach($this->orgversies as $index => $this->orgversieid){
$this->lijst = new stdClass();
$this->setOrgversie();
$this->setLabels();
$this->setAmbities();
$this->setZprocent();
$this->setIndividueleAfbeeldingen();
$this->setKamerAfbeeldingen();
$this->setLijstScores();
$this->setGemiddeldenAfbeeldingen();
$this->loopVergelijkingScores();
$this->setIndividueleMetingen();
$this->setMetingenVergelijkingIndividueel();
$this->setVNaam();
$this->setResultaten();
$this->setLijsten();
}
}
private function setOrgversie(){
$this->lijst->orgversie = $this->CI->Orgversies_model->get_record_by_id($this->orgversieid);
$this->lijst->vantm = "periode " . $this->lijst->orgversie->periodenummer . " van " .
mysql2date($this->lijst->orgversie->geldigvanaf) . " t/m " . mysql2date($this->lijst->orgversie->geldigtm);
}
private function setLabels(){
$this->lijst->labels = $this->CI->Labels_model->getalllabels($this->modulenr);
}
private function setAmbities(){
$ambitie = $this->CI->Ambities_model->getOrgAmbities($this->orgversieid, $this->orgid);
if (!in_array($ambitie, $this->ambitiearray, FALSE)) {
$this->lijst->ambities = $ambitie;
$this->ambitiearray [] = $ambitie;
}
}
private function setZprocent(){
$this->zprocent = 0;
if(isset($this->lijst->ambities)){
$this->zprocent = $this->lijst->ambities->zprocent;
}
}
private function setIndividueleAfbeeldingen(){
$this->individueleScores = new Individuelescores($this->orgversieid, $this->orguserid, $this->orgid);
$this->individueleAfbeeldingen = new Afbeeldingen($this->individueleScores, $this->modulenr, $this->orgversieid, $this->clusterid, $this->orgid, $this->zprocent);
}
private function setKamerAfbeeldingen(){
$vorm = 2;
$this->kamerScores = new Kamerscores($this->orgversieid, $this->orgid, $vorm);
if($this->kamerScores){
$this->kamerAfbeeldingen = new Afbeeldingen($this->kamerScores, $this->modulenr, $this->orgversieid,
$this->clusterid, $this->orgid, $this->zprocent);
}
}
private function setLijstScores(){
if (!$this->kamerAfbeeldingen || !$this->individueleAfbeeldingen) return; {
$this->lijst->scores = $this->individueleAfbeeldingen->getScores();
$this->lijst->vergelijkingen = $this->kamerAfbeeldingen->getScores();
}
}
private function setGemiddeldenAfbeeldingen(){
$this->gemiddeldeScores= new Gemiddeldescores($this->orgversieid, $this->orgid);
if($this->gemiddeldeScores){
$this->gemiddeldenAfbeeldingen = new Gemiddeldenafbeeldingen($this->gemiddeldeScores, $this->modulenr, $this->orgversieid, $this->clusterid,$this->orgid);
}
}
private function loopVergelijkingScores(){
if( (!isset($this->lijst->vergelijkingen))) return;
for($i = 0; $i < count($this->lijst->vergelijkingen); $i++){
$this->setVergelijkingScores($i);
}
}
private function setVergelijkingScores($i){
if($this->lijst->scores[$i]) {
$this->lijst->scores[$i]->gemV = $this->lijst->vergelijkingen[$i]->gem;
$this->lijst->scores[$i]->kleurV = $this->lijst->vergelijkingen[$i]->kleur;
}
}
private function setIndividueleMetingen(){
if(!isset($this->lijst->scores)) return;
$this->lijst->metingen = $this->gemiddeldeScores->getAantalLeerkrachten();
}
private function setMetingenVergelijkingIndividueel(){
if(! isset($this->lijst->vergelijkingen)) return;
foreach($this->lijst->vergelijkingen as $index => $this->lijst->vergelijking) {
$this->lijst->metingenV = $this->lijst->vergelijking->aantallijsten;
return;
}
}
private function setVNaam(){
$this->lijst->vNaam = $this->kamerScores->getOrgnaam();
}
private function setResultaten(){
if(!$this->gemiddeldenAfbeeldingen) return;
$this->lijst->resultaten = $this->gemiddeldenAfbeeldingen->getResultaten();
}
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();
}
}
private function setNieuwsteVersie(){
if ($this->lijst->orgversie->periodenummer > $this->nieuwste) {
$this->nieuwste = $this->lijst->orgversie->periodenummer;
$this->nieuwsteversie = $this->lijst->orgversie->id;
}
}
}