756 lines
28 KiB
PHP
756 lines
28 KiB
PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
class Rapijkpunten extends MY_Controller{
|
|
|
|
function __construct(){
|
|
parent::__construct();
|
|
$models = array( "monpas/Filledversions_model",
|
|
"monpas/Labels_model",
|
|
"shared/Autorisatienivos_model",
|
|
"shared/Users_model",
|
|
'shared/Organisaties_model',
|
|
'shared/Orgusers_model',
|
|
"monpas/Versies_model",
|
|
"monpas/Orgversies_model",
|
|
"monpas/Modules_model",
|
|
"monpas/Ijkpunten_model",
|
|
"monpas/Indicatoren_model",
|
|
"monpas/Antwoordtypes_model",
|
|
"monpas/Wenssituaties_model",
|
|
"monpas/Scorekleuren_model",
|
|
"monpas/Scores_model",
|
|
'shared/Session_model',
|
|
"monpas/Ambities_model",
|
|
"Phantom_model");
|
|
$this->load->model($models);
|
|
$this->load->helper('string');
|
|
$this->load->library('monpas/kleurcodes');
|
|
if ( ! $this->check_online_status() ) {
|
|
echo json_encode( array('offline' => TRUE) );
|
|
die;
|
|
};// if
|
|
}
|
|
|
|
function getorgs(){
|
|
if (!$this->userid) die;
|
|
$organisatie = $this->Organisaties_model->getorg($this->globorgid);
|
|
switch ($organisatie->soort){
|
|
case 4: $schoolid = $organisatie->id;
|
|
echo json_encode(array("organisatie"=>$organisatie, "soort"=>4));
|
|
break;
|
|
case 3: $bgid = $organisatie->id;
|
|
$organisatie->scholen=$this->Organisaties_model->getorgsvanaf($bgid);
|
|
echo json_encode(array("organisatie"=>$organisatie, "soort"=>3));
|
|
break;
|
|
case 2: $kamerid = $organisatie->id;
|
|
$organisatie->bgs = $this->Organisaties_model->getorgsvanaf($kamerid);
|
|
if ($organisatie->bgs){
|
|
foreach($organisatie->bgs as $bg){
|
|
$bg->scholen = $this->Organisaties_model->getorgsvanaf($bg->id);
|
|
}
|
|
}
|
|
echo json_encode(array("organisatie"=>$organisatie, "soort"=>2));
|
|
break;
|
|
case 1; $swvid = $organisatie->id;
|
|
$organisatie->kamers = $this->Organisaties_model->getorgsvanaf($swvid);
|
|
if ($organisatie->kamers){
|
|
if(!is_array($organisatie->kamers)){
|
|
$organisatie->kamers = objectToArray($organisatie->kamers);
|
|
}
|
|
foreach($organisatie->kamers as $kamer){
|
|
$kamer->bgs = $this->Organisaties_model->getorgsvanaf($kamer->id);
|
|
if ($kamer->bgs){
|
|
foreach($kamer->bgs as $bg){
|
|
$bg->scholen =$this->Organisaties_model->getorgsvanaf($bg->id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
echo json_encode(array("organisatie"=>$organisatie, "soort"=>1));
|
|
break;
|
|
}
|
|
}
|
|
|
|
function getusernivo(){
|
|
if (!$this->userid) die;
|
|
$usernivo = 0;
|
|
|
|
$usernivo = $this->Autorisatienivos_model->check_level($this->userrole, SYSTEM);
|
|
|
|
if ($usernivo == 0){
|
|
$usernivo = $this->Autorisatienivos_model->check_level($this->userrole, 252);
|
|
}
|
|
else {$usernivo == 1;}
|
|
echo json_encode($usernivo);
|
|
}
|
|
|
|
function checkLevel(){
|
|
if (!$this->userid) die;
|
|
$soort = $this->Organisaties_model->get_fieldvalue(array("id"=>$this->globorgid), 'soort' );
|
|
$werkter = $this->Orgusers_model->get_fieldvalue(array("user_id"=>$this->userid, "organisatie_id"=>$this->globorgid),"id");
|
|
$level = 0;
|
|
|
|
if ($soort < 4 && $werkter) {
|
|
$level = 1;
|
|
}
|
|
|
|
echo json_encode($level);
|
|
}
|
|
|
|
function checkLevelInspectie(){
|
|
if (!$this->userid) die;
|
|
$soort = $this->Organisaties_model->get_fieldvalue(array("id"=>$this->globorgid), 'soort' );
|
|
$level123 = false;
|
|
|
|
if ($soort > 0 && soort < 4) {
|
|
$level123 == true;
|
|
}
|
|
echo json_encode($level123);
|
|
}
|
|
|
|
function getperiodes2(){
|
|
if (!$this->userid) die;
|
|
$targetid = $this->uri->segment(4);
|
|
$bgid = false;
|
|
$kamerid = false;
|
|
$swvid = false;
|
|
$versies = false;
|
|
$organisatie= $this->Organisaties_model->getOrganisatie($targetid);
|
|
$soort = $organisatie->soort;
|
|
$module = $this->session->userdata('module');
|
|
if ($soort ==4){
|
|
// aan bg zijn nu nog geen versie gekoppeld, maar dat zou zo maar kunnen
|
|
//vandaar dat ie hier al wordt meegenomen
|
|
$versies = $this->Orgversies_model->getallorgversies($organisatie->valtonder_id, $module);
|
|
$bgid = $organisatie->valtonder_id;
|
|
}
|
|
if ($soort ==3 || ( !$versies && $soort > 3)){
|
|
if ($organisatie->soort == 3) {$bgid=$targetid;};
|
|
$organisatie=$this->Organisaties_model->get_record_by_id($bgid);
|
|
$versies = $this->Orgversies_model->getallorgversies($bgid,$module);
|
|
$kamerid = $organisatie->valtonder_id;
|
|
}
|
|
if ($soort ==2 || (!$versies && $soort > 2)){
|
|
if ($organisatie->soort == 2) {$kamerid=$targetid;};
|
|
$versies = $this->Orgversies_model->getallorgversies($kamerid,$module);
|
|
$organisatie =$this->Organisaties_model->get_record_by_id($kamerid);
|
|
$swvid = $organisatie->valtonder_id;
|
|
}
|
|
if ($soort == 1 || (!$versies && $soort>1)){
|
|
if ($organisatie->soort == 1) {$swvid=$targetid;};
|
|
$versies = $this->Orgversies_model->getallorgversies($swvid,$module);
|
|
}
|
|
echo json_encode($versies);
|
|
}
|
|
|
|
|
|
function getperiodes3(){
|
|
if (!$this->userid) die;
|
|
$targetid = $this->uri->segment(4);// orgid
|
|
$module = $this->session->userdata('module');
|
|
// get de lijst van scholen onder de target
|
|
$idlijst = $this->Organisaties_model->getscholenondertarget2($targetid);
|
|
if($idlijst) {
|
|
$ids = implode(',', $idlijst);
|
|
|
|
$versies = $this->Filledversions_model->getversiesperalleorgs($ids, $module);
|
|
|
|
|
|
if($versies) {
|
|
foreach ($versies as $versie) {
|
|
$versie->scoreomschrijving = $this->Antwoordtypes_model->gettype($versie->scoretype);
|
|
}
|
|
echo json_encode($versies);
|
|
}
|
|
else{
|
|
echo json_encode(false);
|
|
}
|
|
}
|
|
else{
|
|
echo json_encode(false);
|
|
}
|
|
}
|
|
|
|
function getVersies(){
|
|
if (!$this->userid) die;
|
|
$targetid = $this->uri->segment(4);// orgid
|
|
$module = $this->session->userdata('module');
|
|
// get de lijst van scholen onder de target
|
|
$idlijst = $this->Organisaties_model->getscholenondertarget2($targetid);
|
|
$ids = implode (',' , $idlijst);
|
|
if(!$ids){$versies = false;}
|
|
if(!$module){$versies = false;}
|
|
if($ids && $module) {
|
|
$versies = $this->Filledversions_model->getversiesperalleorgs($ids, $module);
|
|
|
|
foreach ($versies as $versie) {
|
|
$versie->scoreomschrijving = $this->Antwoordtypes_model->gettype($versie->scoretype);
|
|
}
|
|
}
|
|
echo json_encode($versies);
|
|
}
|
|
|
|
function getvergelijkbareversies(){
|
|
if (!$this->userid) die;
|
|
$orgid = $this->uri->segment(4);
|
|
|
|
$module = $this->session->userdata('module');
|
|
$series = (new Vergelijkbareversies($orgid, $module))->getSeries();
|
|
|
|
echo json_encode(['series' =>$series]);
|
|
}
|
|
|
|
function getingevuldelijsten(){
|
|
if (!$this->userid) die;
|
|
$orgid = $this->clean_input('orgid');
|
|
$selecties = $this->input->post('selectie');
|
|
|
|
if (!$orgid || !$selecties) return;
|
|
$aantal = count($selecties);
|
|
|
|
|
|
$users = $this->getUsersSelectie($orgid, $selecties);
|
|
$lijstenObject = new Lijsten($orgid, $selecties);
|
|
$lijsten = $lijstenObject->getLijsten();
|
|
$ijkpunten = $lijstenObject->getIJkpunten();
|
|
|
|
$nieuwsteversie = $lijstenObject->getNieuwsteVersie();
|
|
$kleuren = $lijstenObject->getKleuren();
|
|
|
|
$data =[
|
|
'lijsten' => $lijsten,
|
|
'aantal' => $aantal,
|
|
'nieuwsteversie' => $nieuwsteversie,
|
|
'users' => $users,
|
|
'ijkpunten' => $ijkpunten,
|
|
'kleuren' => $kleuren
|
|
];
|
|
|
|
|
|
|
|
echo json_encode($data);
|
|
}
|
|
|
|
|
|
function getUsersSelectie($orgid, $selecties){
|
|
$aantal = count($selecties);
|
|
$soort = $this->Organisaties_model->get_fieldvalue(['id'=> $orgid], 'soort');
|
|
$alleenjezelf = false;
|
|
$collegas = false;
|
|
$users = [];
|
|
|
|
if($soort == 4) {
|
|
for($i = 0; $i < $aantal; $i++ ) {
|
|
if ($selecties[$i]['vorm'] == 2) {
|
|
$werkter = $this->Orgusers_model->get_fieldvalue(["user_id" => $this->userid, "organisatie_id" => $orgid], "id");
|
|
if ($werkter) {
|
|
$nivo = $this->Autorisaties_model->get_fieldvalue(["orguser_id" => $werkter], "nivo_id");
|
|
if ((int)$nivo == 10) {
|
|
$alleenjezelf = true;
|
|
break;
|
|
|
|
|
|
} else {
|
|
$collegas = true;
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
$collegas = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($alleenjezelf) {
|
|
$orguser = $this->Orgusers_model->get_org_user($werkter);
|
|
$user = new stdClass();
|
|
$user->fullname = $orguser->fullname;
|
|
$user->id = $orguser->id;
|
|
$users[] = $user;
|
|
}
|
|
|
|
if($collegas == true ) {
|
|
$leerkrachten = $this->Orgusers_model->get_org_users($orgid);
|
|
if ($leerkrachten) {
|
|
foreach ($leerkrachten as $index => $leerkracht) {
|
|
$users[] = $leerkracht;
|
|
}
|
|
}
|
|
}
|
|
if (count($users) > 0) {
|
|
$gemiddeldeuser = new stdClass();
|
|
$gemiddeldeuser->fullname = 'Schoolgemiddelde';
|
|
$gemiddeldeuser->id = '0';
|
|
array_unshift($users, $gemiddeldeuser);
|
|
|
|
}
|
|
}
|
|
|
|
return $users;
|
|
}
|
|
|
|
|
|
function getuserlijsten(){
|
|
if (!$this->userid) die;
|
|
$orguserid = $this->clean_input('orguserid');
|
|
$orgid = $this->clean_input('orgid');
|
|
$orgversies = $this->clean_input('selectie');
|
|
|
|
if (!$orgid || !$orgversies || !$orguserid) return;
|
|
|
|
$aantal = count($orgversies);
|
|
$userLijsten = new Userlijsten($orguserid, $orgid, $orgversies);
|
|
$lijsten = $userLijsten->getLijsten();
|
|
$nieuwsteversie = $userLijsten->getNieuwsteVersie();
|
|
//LS matrixmodel.js verwacht een variable vorm die aangeeft of het een individuele versie is
|
|
$lijsten[0]->vorm=2;
|
|
$data =[
|
|
'lijsten' => $lijsten,
|
|
'aantal' => $aantal,
|
|
'nieuwsteversie' => $nieuwsteversie,
|
|
|
|
];
|
|
|
|
echo json_encode($data);
|
|
}
|
|
|
|
|
|
function getusers(){
|
|
if (!$this->userid) die;
|
|
$beheerder = $this->Autorisaties_model->check_autorisatie($this->userrole, WRITER);
|
|
|
|
$orgid = $this->clean_input('orgid');
|
|
$organisatie = $this->Organisaties_model->get_record_by_id($orgid);
|
|
$orgversieid = $this->clean_input("orgversie");
|
|
$orgversie = $this->Orgversies_model->get_record_by_id($orgversieid);
|
|
$users = array();
|
|
if ($orgversie && $orgversie->vorm==2 && $organisatie->soort == 4){
|
|
if ($beheerder > 0) { $users= $this->Orgusers_model->get_org_users($orgid, TRUE);}
|
|
else {$users = $this->Orgusers_model->get_user($this->userid, $orgid); }
|
|
}
|
|
|
|
echo json_encode($users);
|
|
}
|
|
|
|
function getscoreSWV_Kamer($orgid,$orgversieid){
|
|
if (!$this->userid) die;
|
|
$organisatie = $this->Organisaties_model->get_record_by_id($orgid);
|
|
// de scores moeten vergeleken worden met het gemiddelde voor de kamer
|
|
// of het swv als je op swv niveau zit
|
|
if ($organisatie->soort == 1) {$targetid = $orgid; }
|
|
|
|
else {$targetid = $this->Organisaties_model->getkamer($orgid);}
|
|
$targetnaam = $this->Organisaties_model->get_fieldvalue(array('id'=>$targetid),'naamkort');
|
|
// haal alle organisatie onder de target op als string
|
|
$orgstring = implode(',' , $this->Organisaties_model->getscholenondertarget($targetid));
|
|
$scoresToplevel = $this->Scores_model->calculateOverScholen($orgversieid, $orgstring);
|
|
return array("scoresToplevel"=>$scoresToplevel,
|
|
"targetid" => $targetid,
|
|
"targetnaam"=>$targetnaam);
|
|
}
|
|
|
|
function getscores(){
|
|
if (!$this->userid) die;
|
|
$orgversieid = $this->clean_input("orgversieid");
|
|
$orgid = $this->clean_input("orgid");
|
|
$organisatie = $this->Organisaties_model->get_record_by_id($orgid);
|
|
$scores = $this->Ijkpunten_model->getscores($orgversieid, $orgid);
|
|
$returnarray = $this->getscoreSWV_Kamer($orgid,$orgversieid);
|
|
|
|
$scoresToplevel = $returnarray['scoresToplevel'];
|
|
$targetnaam = $returnarray['targetnaam'];
|
|
|
|
if ($scores){
|
|
$i =0;
|
|
foreach($scores as $score){
|
|
if ($scoresToplevel[$i]->num > 0) {
|
|
$score->toplevelgem =round( ($scoresToplevel[$i]->somscore / $scoresToplevel[$i]->num) * 10) / 10;
|
|
}
|
|
else {$score->toplevelgem = null;};
|
|
$score->toplevelscholen = $scoresToplevel[$i]->aantalscholen;
|
|
$score->gem = 0;
|
|
if ($score->num > 0) $score->gem =round( $score->somscore / $score->num,1) ;
|
|
$score->kleur = $this->kleurcodes->getkleur($score->gem);
|
|
$score->kleurtop = $this->kleurcodes->getkleur($score->toplevelgem);
|
|
$score->gem = number_format($score->gem,1,',','.');
|
|
$score->toplevelgem = number_format($score->toplevelgem, 1,',','.');
|
|
$i ++;
|
|
}
|
|
}
|
|
// haal ook nog de criteria van de organisatie op
|
|
$ambitie = $this->Ambities_model->getOrgAmbities($orgversieid, $orgid);
|
|
$kleurtabel = $this->kleurcodes->getkleurlegenda();
|
|
echo json_encode(array('kleurtabel' =>$kleurtabel,
|
|
'scores' =>$scores,
|
|
'ambitie' =>$ambitie,
|
|
'scoresToplevel' =>$scoresToplevel,
|
|
'toplevelnaam' =>$targetnaam));
|
|
}
|
|
|
|
|
|
function scoresindividueel(){
|
|
if (!$this->userid) die;
|
|
|
|
$orgversieid = $this->clean_input("orgversie");
|
|
$orgid = $this->clean_input("orgid");
|
|
$orguserid = $this->clean_input("orguserid");
|
|
$userid = $this->Orgusers_model->get_fieldvalue(array('id'=>$orguserid), "user_id");
|
|
$this->VerzamelScores($userid, $orgversieid, $orgid);
|
|
}
|
|
|
|
function orgscores()
|
|
{
|
|
if (!$this->userid) die;
|
|
$orgversieid = $this->clean_input("orgversieid");
|
|
$orgid = $this->clean_input("orgid");
|
|
$userid = null;
|
|
$this->VerzamelScores($userid, $orgversieid, $orgid);
|
|
}
|
|
|
|
function pdfijkpuntenbar(){
|
|
//TODO clean input
|
|
if (!$this->userid) die;
|
|
$inputstring = $this->input->post('data');
|
|
$input = json_decode($inputstring);
|
|
$image = $input->image;
|
|
$orgid = $input->orgid;
|
|
$organisatie = $this->Organisaties_model->getorg($orgid);
|
|
$info = $input->orgversie;
|
|
$periode = $this->Orgversies_model->get_record_by_id($input->periode);
|
|
$geldigvanaf = mysql2date($periode->geldigvanaf);
|
|
$geldigSelect = mysql2date($periode->geldigtm);
|
|
$naam = "periode ".$periode->periodenummer;
|
|
$resultaat = $input->resultaat;
|
|
$today = date("d-m-Y");
|
|
|
|
if($input->resultaatRef != null) {
|
|
$resultaatRef = $input->resultaatRef;
|
|
$periodeRef = $this->Orgversies_model->get_record_by_id($input->periodeRef);
|
|
$geldigvanafR = mysql2date($periodeRef->geldigvanaf);
|
|
$geldigRef = mysql2date($periodeRef->geldigtm);
|
|
$naamR = "periode" . $periodeRef->periodenummer;
|
|
}
|
|
$instrument = $this->Modules_model->get_fieldvalue(array("sysnr" =>$this->module), "naam") ;
|
|
$labels = $this->Labels_model->getalllabels();
|
|
$kleurtabel = $this->kleurcodes->getkleurlegenda();
|
|
|
|
if($input->resultaatRef != null) {
|
|
$data = array(
|
|
"instrument" => $instrument,
|
|
"referentie" => $input->referentie,
|
|
"toonVergelijking" => $input->toonVergelijking,
|
|
"organisatie" => $organisatie,
|
|
"docentnaam" => $input->docentnaam,
|
|
"inputimage" => $image,
|
|
"periodenaam" => $geldigvanaf . ' t/m ' . $geldigSelect,
|
|
"periodenaamR" => $geldigvanafR . ' t/m ' . $geldigRef,
|
|
"geldigRef" => $geldigRef,
|
|
"geldigSelect" => $geldigSelect,
|
|
"vandaag" => $today,
|
|
"resultaat" => $resultaat,
|
|
"resultaatRef" => $resultaatRef,
|
|
"welkehoogsteR" => $resultaatRef->welkehoogste,
|
|
"welkehoogste" => $resultaat->welkehoogste,
|
|
"geldigSelect" => $geldigSelect,
|
|
"geldigRef" => $geldigRef,
|
|
"ambitie" => $input->ambitie,
|
|
"ijkpunten" => $input->ijkpunten,
|
|
"toplevelnaam" => $input->toplevelnaam,
|
|
"labels" => $labels,
|
|
"info" =>$info,
|
|
"kleurtabel" => $kleurtabel);
|
|
}
|
|
else{
|
|
$data = array(
|
|
"instrument" => $instrument,
|
|
"referentie" => $input->referentie,
|
|
"toonVergelijking" => $input->toonVergelijking,
|
|
"organisatie" => $organisatie,
|
|
"docentnaam" => $input->docentnaam,
|
|
"inputimage" => $image,
|
|
"periodenaam" => $geldigvanaf . ' t/m ' . $geldigSelect,
|
|
"geldigSelect" => $geldigSelect,
|
|
"vandaag" => $today,
|
|
"resultaat" => $resultaat,
|
|
"welkehoogste" => $resultaat->welkehoogste,
|
|
"geldigSelect" => $geldigSelect,
|
|
"ambitie" => $input->ambitie,
|
|
"ijkpunten" => $input->ijkpunten,
|
|
"toplevelnaam" => $input->toplevelnaam,
|
|
"labels" => $labels,
|
|
"info" =>$info,
|
|
"kleurtabel" => $kleurtabel);
|
|
}
|
|
$html = $this->load->view("monpas/reports/ijkpuntenbar", $data, true);
|
|
$filenaam="ijkpunten";
|
|
$this->Phantom_model->create_pdf($html, $filenaam, FALSE, FALSE, FALSE);
|
|
}
|
|
|
|
|
|
function maakijkpuntenpdf(){
|
|
//TODO clean input
|
|
if (!$this->userid) die;
|
|
$inputstring = $this->input->post('data');
|
|
$input = json_decode($inputstring);
|
|
$orgid = $input->orgid;
|
|
$image = $input->image;
|
|
$versie = $input->versie;
|
|
$scorekleuren = $input->scorekleuren;
|
|
$organisatie = $this->Organisaties_model->getorg($orgid);
|
|
$orgversie = $this->Orgversies_model->get_record_by_id($input->nieuwsteversie);
|
|
$geldigvanaf = mysql2date($orgversie->geldigvanaf);
|
|
$geldigSelect = mysql2date($orgversie->geldigtm);
|
|
$today = date("d-m-Y");
|
|
$instrument = $this->Modules_model->get_fieldvalue(array("sysnr" =>$this->module), "naam") ;
|
|
$aantal = count($input->lijsten);
|
|
$orientatie = 'landscape';
|
|
// if($aantal > 2){
|
|
// $orientatie = 'landscape';
|
|
// }
|
|
$htmlimage = '<img src="'. $image . '"/>';
|
|
|
|
|
|
$data = array(
|
|
"instrument" => $instrument,
|
|
"lijsten" => $input->lijsten,
|
|
"organisatie" => $organisatie,
|
|
"orgversie" => $orgversie,
|
|
"docentnaam" => $input->docentnaam,
|
|
"inputimage" => $image,
|
|
"versie" => $versie,
|
|
"nieuwsteversie" => $input->nieuwsteversie,
|
|
"geldigSelect" => $geldigSelect,
|
|
"scorekleuren" => $scorekleuren,
|
|
"vandaag" => $today,
|
|
"aantal" => $aantal,
|
|
);
|
|
|
|
$html = $this->load->view("monpas/reports/ijkpuntenbar", $data, true);
|
|
$filenaam="ijkpunten";
|
|
|
|
$this->Phantom_model->create_pdf($html, $filenaam, FALSE, FALSE, FALSE, $orientatie);
|
|
}
|
|
|
|
|
|
private function verzamelScores($userid, $orgversieid, $orgid ){
|
|
$organisatie = $this->Organisaties_model->get_record_by_id($orgid);
|
|
$returnarray = $this->getscoreSWV_Kamer($orgid, $orgversieid);
|
|
$scoresToplevel = $returnarray['scoresToplevel'];//gemiddelde scores van SWV (als t een swv is)of kamer(alle andere gevallen)
|
|
$targetnaam = $returnarray['targetnaam'];
|
|
$targetid = $returnarray['targetid'];
|
|
$vergelijkbaar = $this->getReferentieVersie($userid, $orgversieid, $orgid, $organisatie); //versies die getoond kunnen worden: 1 of 2
|
|
|
|
if ($vergelijkbaar) {
|
|
$vergelijkbaar = $this->voegsScoresToe($userid, $orgid, $vergelijkbaar);// hoe is gescored op de ijkpunten
|
|
// $versieSelect = $this->checkBestaanSelectie($userid, $vergelijkbaar, $organisatie);// als de geselecteerde versie al wel betaat uitgesterd per 27 juni 2017 zie functie
|
|
// //maar nog herlemaal niet is ingevuld, wordt de refetentieversie ook niet getoond
|
|
// if ($versieSelect) {
|
|
$versieSelect = $this->getScoresMetVergelijking($vergelijkbaar[0], $scoresToplevel);// maak scores kamer (of swv) klaar voor grafiek
|
|
$versieSelect = $this->telMetingen($userid, $orgid, $targetid, $orgversieid, $organisatie, $versieSelect); // aantal ingevulde exemplaren: individueel en bij topllevel
|
|
$versies = array($versieSelect);
|
|
|
|
if (sizeof($vergelijkbaar) > 1) { // alles tzelfe voor de referentieversie
|
|
|
|
$vorigVersieId = $vergelijkbaar[1]->id;
|
|
$returnarrayR = $this->getscoreSWV_Kamer($orgid, $vorigVersieId);
|
|
$scoresToplevelR = $returnarrayR['scoresToplevel'];
|
|
$versieRef = $this->getScoresMetVergelijking($vergelijkbaar[1], $scoresToplevelR);
|
|
$versieRef = $this->telMetingen($userid, $orgid, $targetid, $vorigVersieId, $organisatie, $versieRef); // aantal ingevulde exemplaren: individueel en bij topllevel
|
|
array_push($versies, $versieRef);
|
|
} else {
|
|
$scoresToplevelR = null;
|
|
}
|
|
|
|
// haal ook nog de criteria van de organisatie op
|
|
$ambitie = $this->Ambities_model->getOrgAmbities($orgversieid, $orgid);
|
|
$kleurtabel = $this->kleurcodes->getkleurlegenda();
|
|
|
|
|
|
echo json_encode(array('kleurtabel' => $kleurtabel,
|
|
'versies' => $versies,
|
|
'ambitie' => $ambitie,
|
|
'scoresToplevel' => $scoresToplevel,
|
|
'scoresTopLevelR' => $scoresToplevelR,
|
|
'toplevelnaam' => $targetnaam));
|
|
// }
|
|
// else {
|
|
// echo json_encode(false);
|
|
// }
|
|
}
|
|
else {
|
|
echo json_encode(false);
|
|
}
|
|
|
|
}
|
|
|
|
private function getScoresMetVergelijking($versie, $scores){
|
|
if($versie && $versie->scores && $scores) {
|
|
$i = 0;
|
|
$scorearray = $versie->scores;
|
|
$lengte = sizeof($scorearray);
|
|
for ($x = 0; $x < $lengte; $x++) {
|
|
if ($scores[$i]->num > 0 && isset($scores[$i]) ) {
|
|
$scorearray[$x]->toplevelgem = round(($scores[$i]->somscore / $scores[$i]->num) * 10) / 10;
|
|
} else {
|
|
$scorearray[$x]->toplevelgem = null;
|
|
};
|
|
|
|
$scorearray[$x]->toplevelscholen = $scores[$i]->aantalscholen;
|
|
$scorearray[$x]->gem = 0;
|
|
if ($scorearray[$x]->num > 0) $scorearray[$x]->gem = round($scorearray[$x]->somscore / $scorearray[$x]->num, 1);
|
|
$scorearray[$x]->kleur = $this->kleurcodes->getkleur($scorearray[$x]->gem);
|
|
$scorearray[$x]->kleurtop = $this->kleurcodes->getkleur($scorearray[$x]->toplevelgem);
|
|
$scorearray[$x]->gem = number_format($scorearray[$x]->gem, 1, ',', '.');
|
|
$scorearray[$x]->toplevelgem = number_format($scorearray[$x]->toplevelgem, 1, ',', '.');
|
|
$i++;
|
|
}
|
|
$versie->scores= $scorearray;
|
|
|
|
return $versie;
|
|
}
|
|
}
|
|
|
|
private function getReferentieVersie($userid, $orgversieid, $orgid, $organisatie)
|
|
{
|
|
|
|
if($userid == null) {
|
|
|
|
if ($organisatie->soort == '4') {
|
|
|
|
$vorm = $this->Orgversies_model->getVorm($orgversieid);
|
|
// $vorm = $this->Orgversies_model->get([$orgversieid->id], 'vorm', TRUE);
|
|
|
|
if($vorm == '2'){
|
|
$versies = $this->Filledversions_model->getVergelijkbareVersiesSchoolGemiddelde($orgversieid, $orgid); //individueel ingevuld. ander orgversie id = andere versie
|
|
|
|
}
|
|
if ($vorm == '1') {
|
|
$versies = $this->Filledversions_model->getVergelijkbareVersies4($orgversieid, $orgid);
|
|
}
|
|
}
|
|
|
|
if ($organisatie->soort == '3') {
|
|
$versies = $this->Filledversions_model->getVergelijkbareVersies3($orgversieid, $orgid);
|
|
}
|
|
if ($organisatie->soort == '2') {
|
|
$versies = $this->Filledversions_model->getVergelijkbareVersies2($orgversieid, $orgid);
|
|
|
|
}
|
|
if ($organisatie->soort == '1') {
|
|
$versies = $this->Filledversions_model->getVergelijkbareVersies1($orgversieid, $orgid);
|
|
}
|
|
}
|
|
else{
|
|
$versies= $this->Filledversions_model->getVergelijkbareVersiesInd($orgversieid, $orgid, $userid);
|
|
}
|
|
|
|
return $versies;
|
|
}
|
|
|
|
private function telMetingen($userid, $orgid, $kamerid, $orgversieid, $organisatie, $versie)
|
|
{
|
|
|
|
if (!$versie) return false;
|
|
if($userid ) {// individuele scores
|
|
$versie->metingen = "1";
|
|
$versie->metingenTop = $this->Filledversions_model->telVergelijkbareVersies2($orgversieid, $kamerid);
|
|
$versie->orgsoort = "4";
|
|
}
|
|
else{
|
|
|
|
|
|
if ($organisatie->soort == '4') {//teamlijst
|
|
if($versie->vorm == '1') {
|
|
$versie->metingen = "1";
|
|
}
|
|
if($versie->vorm == '2') {
|
|
$versie->metingen = $this->Filledversions_model->telVergelijkbareVersies4Ind($orgversieid, $orgid);//indiviudele lijst als schoolgemiddelde
|
|
}
|
|
$versie->metingenTop = $this->Filledversions_model->telVergelijkbareVersies2($orgversieid, $kamerid);
|
|
$versie->orgsoort = "4";
|
|
}
|
|
if ($organisatie->soort == '3') {
|
|
$versie->metingen = $this->Filledversions_model->telVergelijkbareVersies3($orgversieid, $orgid);//bestuur
|
|
$versie->metingenTop = $this->Filledversions_model->telVergelijkbareVersies2($orgversieid, $kamerid);
|
|
$versie->orgsoort = "3";
|
|
}
|
|
if ($organisatie->soort == '2') {//kamer
|
|
$versie->metingen = $this->Filledversions_model->telVergelijkbareVersies2($orgversieid, $orgid);
|
|
$versie->metingenTop = $versie->metingen;
|
|
$versie->orgsoort = "2";
|
|
|
|
}
|
|
if ($organisatie->soort == '1') {//swv
|
|
$versie->metingen = $this->Filledversions_model->telVergelijkbareVersies1($orgversieid, $orgid);
|
|
$versie->metingenTop = $versie->metingen;
|
|
$versie->orgsoort = "1";
|
|
}
|
|
}
|
|
return $versie;
|
|
|
|
}
|
|
|
|
/**
|
|
* @param $userid
|
|
* @param $orgid
|
|
* @param $versies
|
|
* @return mixed
|
|
*/
|
|
private function voegsScoresToe($userid, $orgid, $versies){
|
|
|
|
if ($userid == null) {
|
|
foreach ($versies as $versie) {
|
|
$versie->scores = $this->Ijkpunten_model->getscores($versie->id, $orgid);//teamscores
|
|
}
|
|
}
|
|
else{
|
|
foreach ($versies as $versie) {
|
|
$versie->scores = $this->Scores_model->calculateindividualscores($versie->id, $orgid, $userid);//individuele scores
|
|
}
|
|
|
|
}
|
|
return $versies;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* uitgesterd per 27 juni 2017 omdat niet ingevulde lijsten toch ook getoond moeten worden oa vanwege de juiste weergave van het gemiddelde
|
|
24 okt in plaats hiervan subquery gemaakt
|
|
*/
|
|
// private function checkBestaanSelectie($userid, $versies, $organisatie){
|
|
// // als geen enkele vraag van de gekozen lijst is ingevuld, wordt de referentie ook niet getoond.
|
|
// $ietsingevuld = false;
|
|
// if($versies && $versies[0]){
|
|
// if($organisatie->soort == '4' || $userid != null){//scores van leerkrachten of op teamniveau
|
|
// foreach($versies[0]->scores as $selectie){
|
|
//
|
|
// if($selectie->score != '0.0' || $selectie->somscore != '0.0'){
|
|
// $ietsingevuld = true;
|
|
// break;
|
|
// }
|
|
// }
|
|
// }
|
|
// else{
|
|
// foreach($versies[0]->scores as $selectie){
|
|
//
|
|
// if($selectie->somscore != '0.0'){//gemiddelde scores van besturen, kamers of swvs
|
|
// $ietsingevuld = true;
|
|
// break;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if ($ietsingevuld == false){
|
|
// $versies = null;
|
|
// }
|
|
//
|
|
// return $versies;
|
|
//
|
|
// }
|
|
|
|
}
|
|
|
|
|