Files
monpas/application/controllers/monpas/Rapmatrix.php
T

1317 lines
50 KiB
PHP

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Rapmatrix extends MY_Controller
{
function __construct()
{
parent::__construct();
$models = array("shared/Organisaties_model",
"monpas/Ijkpunten_model",
"monpas/Filledversions_model",
"monpas/Orgversies_model",
"monpas/Modules_model",
"monpas/Scores_model",
"monpas/Scorekleuren_model",
"monpas/Sorteringen_model",
"monpas/Sorteerlabels_model",
"monpas/Sorteerlabelsorg_model",
"monpas/Oordelen_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 checkinzage(){
if (!$this->userid) die;
$rol = $this->userrole;
echo json_encode($rol);
}
function checkowner(){
if (!$this->userid) die;
$userid = $this->userid;
$orgid = $this->clean_input("orgid");
$orgversieid = $this->clean_input("orgversieid");
$filledid = $this->Filledversions_model->get_fieldvalue(array("orgversie_id"=>$orgversieid,"organisatie_id"=>$orgid,"user_id"=>$userid), "id");
if(!$filledid){ $filledid =0;}
echo json_encode($filledid);
}
function getCriteriaSWV(){
$orgID = $this->clean_input('orgid');
$orgsoort = $this->clean_input('orgsoort');
switch($orgsoort){
case 1: $swvID = $orgID;
break;
case 2:
case 3: $swvID = $this->Organisaties_model->get_swvid($orgID);
break;
default: $swvID = 0;
}
$criteria = $this->Sorteringen_model->get_criteriabijSWV($swvID);
if(!$criteria){
$criteria = [];
}
$criterium = new stdClass();
$criterium->id = 0;
$criterium->swv_id = $swvID;
$criterium->naam = "bestuur";
array_unshift($criteria, $criterium);
echo json_encode($criteria);
}
function haalScoresOp()
{
$orgID = $this->clean_input('orgid');
$orgsoort = $this->clean_input('orgsoort');
$criteriumID = $this->clean_input('criteriumid');
$orgversieID = $this->clean_input('orgversieid');
$toporg = $this->clean_input('toporg');
$ijkpunten = $this->Ijkpunten_model->getijkpuntenMetIndicatoren($orgversieID);
$aantalY = count($ijkpunten);
$kleurtabel = $this->kleurcodes->getkleurlegenda();
$orgversie = $this->Orgversies_model->get_record_by_id($orgversieID);
$scoretype = $orgversie->scoretype;
$kleuren = $this->setKleuren($orgversie);
$erzijnscores = false;
if ($orgsoort == 4) {//schoolniveau
if ($orgversie->vorm == 2) {
$labels = $this->getIndividueleMatrix($orgID, $orgversieID, $ijkpunten, $kleuren, $scoretype);
//geef individuele scores + het gemiddelde
}
if ($orgversie->vorm == 1){
$labels = $this->getSchoolMatrix($orgID, $orgversieID, $aantalY, $scoretype);//schoolversie
}
}
if ($orgsoort < 4) {//bestuurs- / kamer- of swv-niveau
if ($criteriumID == 0) {//scholen ordenen per bestuur
$labels = $this->getBestuurMatrix($orgID, $orgversieID, $ijkpunten, $kleuren, $scoretype);
}
if ($criteriumID > 0) {//scholen ordenen met een ander criterium
$labels = $this->getCriteriumMatrix($orgID, $orgsoort, $criteriumID, $orgversieID, $ijkpunten, $kleuren, $scoretype);
}
}
if($labels){
foreach($labels as $label){
if($label->users && $erzijnscores == false){
foreach($label->users as $user){
if($user->scores && $erzijnscores == false) $erzijnscores = true;
}
}
}
}
echo json_encode(array( 'erzijnscores' => $erzijnscores,
'labels' =>$labels,
'ijkpunten' => $ijkpunten,
'aantalY' => $aantalY,
'vorm' =>$orgversie->vorm,
'$kleurtabel' => $kleurtabel));
}
function haalInspectieScoresOp(){
$orgID = $this->clean_input('orgid');
$orgsoort = $this->clean_input('orgsoort');
$criteriumID = $this->clean_input('criteriumid');
$orgversieID = $this->clean_input('orgversieid');
$ijkpunten = $this->Orgversies_model->getijkpunten($orgversieID);
$kleurtabel = $this->kleurcodes->getkleurlegendainspectie();
if ($orgsoort == 4) {//schoolniveau
$returnarray = $this->getSchoolInspectieMatrix($orgID, $orgversieID);//schoolversie
}
if ($orgsoort < 4) {//bestuurs- / kamer- of swv-niveau
if ($criteriumID == 0) {//scholen ordenen per bestuur
$returnarray = $this->getBestuurInspectieMatrix($orgID, $orgversieID);
}
if ($criteriumID > 0) {//scholen ordenen met een ander criterium
$returnarray = $this->getCriteriumInspectieMatrix($orgID, $orgsoort, $criteriumID, $orgversieID);
}
}
$labels = $returnarray['labels'];
$uitslagen = $returnarray['uitslagen'];
echo json_encode(
array("labels" => $labels,
"ijkpunten" => $ijkpunten,
"aantalY" => count($ijkpunten),
"uitslagen" => $uitslagen,
"kleurtabel" => $kleurtabel));
}
function printmatrix(){
$input0 = $this->input->post('data');
$input = json_decode($input0);
$kleurtabel = $this->kleurcodes->getkleurlegenda();
$tabel = 0;
if($input->orgversie->vorm != 2 || $input->organisatie->soort !=4 || $input->inzage == 256) {
$tabel = 1;
}
else if($input->inzage < 256)
{
$tabel = 2;
}
else {
$tabel = 3;
}
$instrument = $this->Modules_model->get_fieldvalue(array("sysnr" =>$this->module), "naam") ;
$labels = $this->Labels_model->getalllabels();
$invulid = null;
if($input->invulid){
$invulid = $input->invulid;
}
$data = array(
"instrument" => $instrument,
"organisatie" => $input->organisatie,
"info" => $input->orgversie,
"today" => date('d-m-Y'),
"indelingen" => json_decode($input->indelingen),
"ijkpunten" => json_decode($input->ijkpunten),
"tabel" => $tabel,
"criterium" => $input->criterium,
"inzage" => $input->inzage,
"kleurlegenda" => $kleurtabel,
"kopbreedte" => $input->kopbreedte,
"orgbreedte" => $input->orgbreedte,
"kolombreedte" => $input->kolombreedte,
"eigenfvid" => $invulid,
"labels" => $labels
);
$html = $this->load->view("monpas/reports/printmatrix", $data, true);
$filenaam ="MonPasMatrix";
$this->Phantom_model->create_pdf($html, $filenaam, FALSE, FALSE, FALSE);
}
function printinspectie(){
$input0 = $this->input->post('data');
$input = json_decode($input0);
$instrument = $this->Modules_model->get_fieldvalue(array("sysnr" =>$this->module), "naam") ;
$labels = $this->Labels_model->getalllabels();
$invulid = null;
if($input->invulid){
$invulid = $input->invulid;
}
$data = array(
"instrument" => $instrument,
"organisatie" => $input->organisatie,
"info" => $input->orgversie,
"today" => date('d-m-Y'),
"indelingen" => json_decode($input->indelingen),
"ijkpunten" => json_decode($input->ijkpunten),
"inzage" => $input->inzage,
"criterium" => $input->criterium,
"kleurlegenda" => $input->kleurlegenda,
"eigenfvid" => $invulid,
"labels" => $labels,
"kopbreedte" => $input->kopbreedte,
"orgbreedte" => $input->orgbreedte,
"kolombreedte" => $input->kolombreedte,
);
$html = $this->load->view("monpas/reports/printinspectie", $data, true);
$filenaam ="MonPasInspectieMatrix";
$this->Phantom_model->create_pdf($html, $filenaam, FALSE, FALSE, FALSE);
}
private function setKleuren($orgversie){
$kleuren = new stdClass();
$kleuren->grens1 = '60';
$kleuren->grens2 = '80';
$kleuren->grens3 = '90';
$kleuren->grens4 = '100';
if($orgversie->scoretype == 7){
$kleuren->grens1 = '33';
$kleuren->grens2 = '66';
$kleuren->grens3 = '100';
}
$kleuren->kleur1 = '#e08885';
$kleuren->kleur2 = '#ffcc80';
$kleuren->kleur3 = '#9fdf9f';
$kleuren->kleur4 = '#99d6ff';
return $kleuren;
}
private function getIndividueleMatrix($orgID, $orgversieID, $ijkpunten, $kleuren,$scoretype){
$scores = $this->getLeerkrachtscores($orgID, $orgversieID);
$labels = $this->getGemiddeldeScores($scores, $ijkpunten, $kleuren, $scoretype);
return $labels;
}
private function getSchoolMatrix($orgID, $orgversieID, $aantalY, $scoretype)
{
$scores = $this->getSchoolScores($orgID, $orgversieID);
$labels = $this->getGemiddeldenSchool($scores, $aantalY,$orgversieID, $scoretype);
return $labels;
}
private function getSchoolInspectieMatrix($orgID, $orgversieID){
$oordelen = $this->getSchoolOordelen($orgID, $orgversieID);
$returnarray = $this->voegKleurenToe($oordelen);
return $returnarray;
}
private function getBestuurMatrix($orgID, $orgversieID, $ijkpunten, $kleuren, $scoretype)
{
$scholen = $this->getScholenPerBestuur($orgID);
$scores = $this->getScoresBijBesturen($scholen, $orgversieID);
$labels = $this->getGemiddeldeScores($scores, $ijkpunten, $kleuren, $scoretype);
return $labels;
}
private function getBestuurInspectieMatrix($orgID, $orgversieID)
{
$scholen = $this->getScholenPerBestuur($orgID);
$oordelen = $this->getOordelenVanafBesturen($scholen, $orgversieID);
$returnarray = $this->voegKleurenToe($oordelen);
return $returnarray;
}
private function getCriteriumMatrix($orgID, $orgsoort, $criteriumID, $orgversieID, $ijkpunten, $kleuren, $scoretype)
{
$scholen = $this->getCriteriumScholen($orgID, $orgsoort);
$ingedeeld = $this->getScholenPerLabel($scholen, $criteriumID);
$scores = $this->getScoresBijCriterium($ingedeeld, $orgversieID);
$labels = $this->getGemiddeldeScores($scores, $ijkpunten, $kleuren, $scoretype );
return $labels;
}
private function getCriteriumInspectieMatrix($orgID, $orgsoort, $criteriumID, $orgversieID)
{
$scholen = $this->getCriteriumScholen($orgID, $orgsoort);
$ingedeeld = $this->getScholenPerLabel($scholen, $criteriumID);
$oordelen = $this->getOordelenVanafBesturenBijCriterium($ingedeeld, $orgversieID);
$returnarray = $this->voegKleurenToe($oordelen);
return $returnarray;
}
private function getLeerkrachtScores($orgID, $orgversieID)
{
$labels = new stdClass;
$labels->label = new stdClass;
$labels->label->users = [];
$leerkrachten = $this->Filledversions_model->getlks($orgID, $orgversieID);
$labels->label->users = $leerkrachten;
foreach ($labels->label->users as $user) {
$user->scores = $this->Scores_model->calculateindividualscores($orgversieID, $orgID,$user->user_id );
if ($user->scores) {
foreach ($user->scores as $score) {
$score->gem = new stdClass();
if($score->somscore && $score->num && $score->num > 0) {
$score->gem = $score->somscore / $score->num;
}
else{
$score->gem = 0;
}
}
}
}
return $labels;
}
private function getSchoolScores($orgID, $orgversieID)
{
$labels = new stdClass;
$labels->label = new stdClass;
$users = $this->Organisaties_model->getorg($orgID);
$users->filledversionid = $orgversieID;
$users->orgid = $orgID;
$users->fullname = $users->naam;
$labels->label->users[] = $users;
$scores = $this->Scores_model->getgemscores($orgversieID, $orgID);
$labels->label->users[0]->scores = $scores;
return $labels;
}
private function getGemiddeldenSchool($labels, $aantalY, $orgversieID, $scoretype)
{
$orgversie = $this->Orgversies_model->get_record_by_id($orgversieID);
$waarden = 0;
if ($labels) {
//$aantalscores = 0;
foreach ($labels as $label) {
for ($i = 0; $i < $aantalY; $i++) {
$sumscore[$i] = 0;
};
$aantalrijen = 0;
$aantalresults = array();
for ($i = 0; $i < $aantalY; $i++) {
$aantalresults[$i] = 0;
}; // for i
if ($label->users) {
foreach ($label->users as $user) {
$sumscorerij = 0;
$aantalscores = 0;
if ($user->scores) {
$aantalrijen = $aantalrijen + 1;
for ($i = 0; $i < $aantalY; $i++) {
if(isset($user->scores[$i])) {
if($user->scores[$i]->disabled == 'F' && $user->scores[$i]->disablenvt == 'F') {
// if ($user->scores[$i]->gem == '' || $user->scores[$i]->gem == null) {
// // doe niks
// } else {
$aantalscores++;
$sumscore[$i] = $sumscore[$i] + $user->scores[$i]->gem;
$aantalresults[$i] = $aantalresults[$i] + 1;
$sumscorerij = $sumscorerij + $user->scores[$i]->gem;
if ($sumscorerij > 0) {
$waarden++;
}
}
// }
$kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $user->scores[$i]->gem);
$user->scores[$i]->kleur = $kleur->kleurcode;
$user->scores[$i]->kleurcode = $kleur->kleurcode;
}
else{
$user->scores[$i] = new stdClass();
$user->scores[$i]->gem = new stdClass() ;
$user->scores[$i]->gem = null;
}
};
$user->scores[$aantalY] = new stdClass();
$user->scores[$aantalY]->gem = new stdClass();
if ($aantalscores > 0) {
$user->scores[$aantalY]->gem = round($sumscorerij / $aantalscores);
} else {
$user->scores[$aantalY]->gem = null;
}
$kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $user->scores[$aantalY]->gem);
$user->scores[$aantalY]->kleur = $kleur->kleurcode;
$user->scores[$aantalY]->kleurcode = $kleur->kleurcode;
} // if scores
};// foreach bg rijen
$label->users = array_values($label->users);
}
}; // if label->rijen
}
return $labels;
}
private function getKleur ($score, $kleuren){
$grensnummer = 1;
if ($score>= $kleuren->grens1) $grensnummer = 2;
if ($score>= $kleuren->grens2) $grensnummer = 3;
if ($score>= $kleuren->grens3) $grensnummer = 4;
switch ( $grensnummer) {
case 1:
$kleur = $kleuren->kleur1;
break;
case 2:
$kleur = $kleuren->kleur2;
break;
case 3:
$kleur = $kleuren->kleur3;
break;
case 4:
$kleur = $kleuren->kleur4;
break;
default:
$kleur = $kleuren->kleur1;
}
return $kleur;
}
private function getScholenPerBestuur($orgID){
$organisatie = $this->Organisaties_model->get_record_by_id($orgID);
if(!$organisatie){
return;
}
$labels = new stdClass();
$labels->label = new stdClass();
$labels->label->users = new stdClass();
if ($organisatie->soort == 3) {
$labels->label->users = $this->Organisaties_model->getorgs2($orgID);
}; // if soort --3
if ($organisatie->soort == 2) {
$labels = $this->Organisaties_model->getorgsdetails(3, $orgID);
if ($labels) {
foreach ($labels as $label) {
$label->users = new stdClass;
$label->users = $this->Organisaties_model->getorgs2($label->id);
}
}; // if bgs
};// if soort ==2
if ($organisatie->soort == 1) {
$labels = $this->Organisaties_model->getbgsonderswv($orgID);
if ($labels) {
foreach ($labels as $label) {
$label->users = $this->Organisaties_model->getorgs2($label->id);
}
}; // if bgs
}; // if soort ==1
if($labels) return $labels;
return false;
}
private function getCriteriumScholen($orgID, $orgsoort){
$scholen = new stdClass();
switch ($orgsoort) {
case 3:
$scholen = $this->Organisaties_model->getorgsonderbestuur($orgID);
break;
case 2:
$scholen = $this->Organisaties_model->getscholenonderkamer($orgID);
break;
case 1:
$scholen = $this->Organisaties_model->getscholenonderswv($orgID);
break;
}
if(!$scholen){
return false;
}
return $scholen;
}
private function getScholenPerLabel($scholen, $criteriumID){
$labels = $this->Sorteerlabels_model->get_labels($criteriumID);
$schoollabels = [];
$schoolids = [];
if($labels) {
foreach ($labels as $label) {
$label->users = [];
}
foreach ($scholen as $school) {
array_push($schoolids, $school->id);
$schoollabel = $this->Sorteerlabels_model->getSchoolLabel($school->id, $criteriumID);
if ($schoollabel) {
foreach ($labels as $label) {
if ($label->waardeid == $schoollabel) {
array_push($label->users, $school);
array_push($schoollabels, $school->id);
}
}
}
}
$verschil = array_diff($schoolids, $schoollabels);
if ($verschil) {
$label = new stdClass();
$label->id = 0;
$label->sortering_id = $criteriumID;
$label->naam = 'niet ingedeeld';
$label->volgorde = 'LAATST';
$label->users = [];
foreach ($scholen as $school) {
if (in_array($school->id, $verschil)) {
array_push($label->users, $school);
}
}
array_push($labels, $label);
}
}
else{
$labels = [];
$label = new stdClass();
$label->id = 0;
$label->sortering_id = $criteriumID;
$label->naam = 'niet ingedeeld';
$label->volgorde = 'LAATST';
$label->users = [];
array_push($labels, $label);
}
return $labels;
}
private function getScoresBijBesturen($labels, $orgversieID){
foreach ($labels as $label) {
if ($label->users) {
if(! is_array($label->users)){
$tijdelijk = $label->users;
$label->users = null;
$label = new stdClass();
$label->users = [];
array_push($label->users, $tijdelijk);
}
foreach ($label->users as $user) {
$user->scores = new stdClass;
$user->scores = $this->Scores_model->getgemscores($orgversieID, $user->orgid);
}
}
}
return $labels;
}
private function getScoresBijCriterium($labels, $orgversieID){
foreach ($labels as $label) {
if ($label->users) {
if(! is_array($label->users)){
$tijdelijk = $label->users;
$label->users = null;
$label->users []= null;
array_unshift($label->users[], $tijdelijk);
}
foreach ($label->users as $user) {
$user->scores = new stdClass;
$user->scores = $this->Scores_model->getgemscores($orgversieID, $user->id);
}
}
}
return $labels;
}
private function getGemiddeldeScores($labels, $ijkpunten, $kleuren, $scoretype){
$aantalY = count($ijkpunten);
$waarden = 0;
$nvt = [];
if ($labels) {
//$aantalscores = 0;
foreach ($labels as $label) {
for ($i = 0; $i < $aantalY; $i++) {
$sumscore[$i] = 0;
};
$aantalrijen = 0;
$aantalresults = array();
for ($i = 0; $i < $aantalY; $i++) {
$aantalresults[$i] = 0;
$nvt[$i] = 0;
}; // for i
if ($label->users) {
foreach ($label->users as $user) {
$sumscorerij = 0;
$aantalscores = 0;
if ($user->scores) {
$aantalrijen = $aantalrijen + 1;
for ($i = 0; $i < $aantalY; $i++) {
if(isset($user->scores[$i])) {
if($user->scores[$i]->disabled == 'F' &&
(isset($user->scores[$i]->disablenvt) && $user->scores[$i]->disablenvt == 'F' ||
isset($user->scores[$i]->aantalvier) && ($user->scores[$i]->aantalvier == 0 ||
($user->scores[$i]->aantalvier > 0 &&
$user->scores[$i]->aantalnvt != $user->scores[$i]->aantalvier )))){
//
$aantalscores++;
$sumscore[$i] = $sumscore[$i] + $user->scores[$i]->gem;
$aantalresults[$i] = $aantalresults[$i] + 1;
$sumscorerij = $sumscorerij + $user->scores[$i]->gem;
if ($sumscorerij > 0) {
$waarden++;
// }
}
}
$kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $user->scores[$i]->gem);
$user->scores[$i]->kleur = $kleur->kleurcode;
if(!isset($user->scores[$i]->disablenvt)){
$user->scores[$i]->disablenvt= 'F';
if($user->scores[$i]->aantalvier > 0 &&
$user->scores[$i]->aantalvier && $user->scores[$i]->aantalnvt)
$user->scores[$i]->disablenvt= 'T';
}
if($user->scores[$i]->disablenvt == 'T') $nvt[$i]++;
}
else{
$user->scores[$i] = new stdClass();
$user->scores[$i]->gem = new stdClass();
$user->scores[$i]->kleur = new stdClass();
$user->scores[$i]->disabled = new stdClass();
$user->scores[$i]->disablenvt = new stdClass();
$user->scores[$i]->gem = null;
$user->scores[$i]->kleur = '#cccccc';
$user->scores[$i]->kleurcode = '#cccccc';
$user->scores[$i]->disablenvt= 'F';
$user->scores[$i]->disabled= $ijkpunten[$i]->disabled;
}
};
$user->scores[$aantalY] = new stdClass();
$user->scores[$aantalY]->gem = new stdClass();
$user->scores[$aantalY]->kleur = new stdClass();
$user->scores[$aantalY]->kleurcode = new stdClass();
$user->scores[$aantalY]->disabled = new stdClass();
$user->scores[$aantalY]->disablenvt = new stdClass();
if ($aantalscores > 0) {
$user->scores[$aantalY]->gem = round($sumscorerij / $aantalscores);
$kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $user->scores[$aantalY]->gem);
$user->scores[$aantalY]->kleur = $kleur->kleurcode;
$user->scores[$aantalY]->kleurcode = $kleur->kleurcode;
} else {
$user->scores[$aantalY]->gem = null;
$user->scores[$aantalY]->kleur = '#cccccc';
$user->scores[$aantalY]->kleurcode = '#cccccc';
}
$user->scores[$aantalY]->disabled = 'F';
$user->scores[$aantalY]->disablenvt = 'F';
} // if scores
};// foreach bg rijen
$label->users = array_values($label->users);
$rijcount = count($label->users);
$label->users[$rijcount] = new stdClass();
$label->users[$rijcount]->fullname = "gemiddeld";
$labeltot = 0;
$labeltotaantal = 0;
for ($i = 0; $i < $aantalY; $i++) {
$waarden2 = 0;
if ($aantalrijen == 0) {
$sumscore[$i] = 0;
} else {
if ($aantalresults[$i] > 0) {
if ($sumscore[$i] !== 0) {
$sumscore[$i] = round($sumscore[$i] / $aantalresults[$i]);
$waarden2++;
};
$labeltot = $labeltot + $sumscore[$i];
$labeltotaantal++;
} else {
$sumscore[$i] = 0;
}
}
$label->users[$rijcount]->scores[$i] = new stdClass();
if ($waarden2 > 0) {
$label->users[$rijcount]->scores[$i]->gem = $sumscore[$i];
$kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $label->users[$rijcount]->scores[$i]->gem);
$label->users[$rijcount]->scores[$i]->kleurcode = $kleur->kleurcode;
$label->users[$rijcount]->scores[$i]->kleur = $kleur->kleurcode;
}
$label->users[$rijcount]->scores[$i]->disabled = $ijkpunten[$i]->disabled;
$label->users[$rijcount]->scores[$i]->disablenvt = 'F';
if($nvt[$i] > 0 && $nvt[$i] == $aantalresults[$i]) $label->users[$rijcount]->scores[$i]->disablenvt = 'T';
};
$label->users[$rijcount]->scores[$aantalY] = new stdClass();
if ($labeltotaantal > 0 && round($labeltot / $labeltotaantal) > 0) {
$label->users[$rijcount]->scores[$aantalY]->gem = round($labeltot / $labeltotaantal);
} else {
$label->users[$rijcount]->scores[$aantalY]->gem = null;
};
if ($label->users[$rijcount]->scores[$aantalY]->gem) {
$kleur = $this->Scorekleuren_model->getGemiddeldeKleur($scoretype, $label->users[$rijcount]->scores[$aantalY]->gem);
$label->users[$rijcount]->scores[$aantalY]->kleur = $kleur-> kleurcode;
$label->users[$rijcount]->scores[$aantalY]->kleurcode = $kleur-> kleurcode;
}
$label->users[$rijcount]->scores[$aantalY]->disabled = 'F';
$label->users[$rijcount]->scores[$aantalY]->disablenvt = 'F';
}; // if label->rijen
}
}
return $labels;
}
private function getSchooloordelen($orgID, $orgversieID){
$labels = new stdClass;
$labels->label = new stdClass;
$users = $this->Organisaties_model->getorg($orgID);
$users->filledversionid = $orgversieID;
$users->orgid = $orgID;
$users->fullname = $users->naam;
$labels->label->users[] = $users;
$oordelen = $this->Oordelen_model->getoordelenorgs($orgversieID, $orgID);
$labels->label->users[0]->oordelen = $oordelen;
return $labels;
}
private function voegKleurenToe($labels){
$uitslagen = false;
$kleuren = $this->kleurcodes->getkleurcodesfromdatabase();
foreach($labels as $label) {
if ($label->users) {
if (!is_array($label->users)) {
$tijdelijk = $label->users;
$label->users = null;
$label->users [] = null;
array_unshift($label->users[], $tijdelijk);
}
foreach ($label->users as $user) {
if ($user->oordelen) {
$uitslagen = true;
foreach ($user->oordelen as $oordeel) {
if ($oordeel->normID) {
switch ($oordeel->normID) {
case 1:
$oordeel->kleur = $kleuren->kleur1;
break;
case 2:
$oordeel->kleur = $kleuren->kleur2;
break;
case 3:
$oordeel->kleur = $kleuren->kleur3;
break;
case 4:
$oordeel->kleur = $kleuren->kleur4;
break;
}
} else {
$oordeel->kleur = '#ffffff';
}
}
}
}
}
}
return array('labels' => $labels, 'uitslagen' => $uitslagen);
}
private function getOordelenVanafBesturen($labels, $orgversieID)
{
foreach ($labels as $label) {
if ($label->users) {
if (!is_array($label->users)) {
$tijdelijk = $label->users;
$label->users = null;
$label->users [] = null;
array_unshift($label->users[], $tijdelijk);
}
foreach ($label->users as $user) {
$user->oordelen = new stdClass;
$user->oordelen = $this->Oordelen_model->getoordelenorgs($orgversieID, $user->orgid);
}
}
}
return $labels;
}
private function getOordelenVanafBesturenBijCriterium($labels, $orgversieID)
{
foreach ($labels as $label) {
if ($label->users) {
if (!is_array($label->users)) {
$tijdelijk = $label->users;
$label->users = null;
$label->users [] = null;
array_unshift($label->users[], $tijdelijk);
}
foreach ($label->users as $user) {
$user->oordelen = new stdClass;
$user->oordelen = $this->Oordelen_model->getoordelenorgs($orgversieID, $user->id);
}
}
}
return $labels;
}
// function printresultaatmatrix(){
// if (!$this->userid) die;
// $inputstring = $this->input->post('data');
// $input = json_decode($inputstring);
// $today = date("d-m-Y");
// $orgid = $input->orgid;
// $organisatie = $this->Organisaties_model->get_record_by_id($orgid);
// $periode = $this->Orgversies_model->get_record_by_id($input->periode);
// $geldigvanaf = mysql2date($periode->geldigvanaf);
// $geldigtm = mysql2date($periode->geldigtm);
// $naam = "periode ".$periode->periodenummer;
// $orgversieid = $input->orgversieid;
// $orgversie = $this->Orgversies_model->get_record_by_id($orgversieid);
//
// // als school en orgversie = "ikvorm" =haal de resultaten van de medewerkers op
// $bgs = new stdClass;
// $bgs->bg = new stdClass;
// $bgs->bg->naam = null;
// $bgs->bg->rijen = new stdClass;
//
// if ($organisatie->soort ==4 && $orgversie->vorm == 2) {
// $bgs->bg->rijen = $this->Filledversions_model->getlks($orgid, $orgversieid);
// }
//
// if ($organisatie->soort == 4 && $orgversie->vorm != 2){
// $rij = new stdClass;
// $rij->filledversionid = $orgversieid;
// $rij->orgid = $orgid;
// $rij->fullname = $organisatie->naamkort;
// $bgs->bg->rijen[0]=$rij;
// }; // if soort --4 && schoolversie
//
// if ($organisatie->soort == 3){
// $bgs->bg->rijen = $this->Organisaties_model->getorgs2($orgid);
// }; // if soort --3
//
// if ($organisatie->soort == 2){
// $bgs = $this->Organisaties_model->getorgsdetails(3,$orgid);
// if ($bgs){
// foreach($bgs as $bg){
// $bg->rijen = new stdClass;
// $bg->rijen =$this->Organisaties_model->getorgs2($bg->id);
// }
// }; // if bgs
// };// if soort ==2
//
// if ($organisatie->soort ==1){
// $bgs = $this->Organisaties_model->getbgsonderswv($orgid);
//
// if ($bgs){
// foreach($bgs as $bg){
// $bg->rijen =$this->Organisaties_model->getorgs2($bg->id);
// }
// }; // if bgs
// }; // if soort ==1
// // nu de (gemiddelde) scores ophalen
// if ($bgs){
// if($organisatie->soort ==4 && $orgversie->vorm == 2) {
// foreach ($bgs as $bg) {
// if ($bg->rijen) {
// foreach ($bg->rijen as $rij) {
// //$rij->scores = new stdClass;
// if($organisatie->soort == 4 && $orgversie->vorm == 2) {
// $rij->scores = $this->Scores_model->getlkscores($rij->filledversionid);
// }
////
// else {
// $rij->scores = $this->Scores_model->getgemscores($orgversieid, $rij->orgid);
// }
// }
////
// }; // if rijen
// }; // foreach bg
// }
// if (!$bg->rijen) {
// unset($bg);
// }
// }; // if bg
//
// $ijkpunten = $this->Orgversies_model->getijkpunten($orgversieid);
// $aantalY = count($ijkpunten);
// // nu bepaal het gemiddeld per rij en het gemiddelde van een BG
//
// $waarden = 0;
// if ($bgs){
// foreach($bgs as $bg){
// for ($i=0; $i < $aantalY; $i++){$sumscore[$i]=0;};
// $aantalrijen = 0;
// $aantalscores = 0;
// $aantalresults =array();
// for ($i=0; $i < $aantalY ; $i++){
// $aantalresults[$i] = 0;
// }; // for i
// if ($bg->rijen){
// foreach($bg->rijen as $rij){
// $sumscorerij = 0;
// if (isset($rij->scores) && $rij->scores){
// $aantalrijen= $aantalrijen + 1;
// for ($i=0; $i < $aantalY ; $i++){
// if ($rij->scores[$i]->gem == '' || $rij->scores[$i]->gem == null) {
// // doe niks
// } else {
// $aantalscores++;
// $sumscore[$i] = $sumscore[$i] + $rij->scores[$i]->gem;
// $aantalresults[$i] = $aantalresults[$i] + 1;
// $sumscorerij = $sumscorerij + $rij->scores[$i]->gem;
// if($sumscorerij > 0){$waarden++;
// }
// }
//// $rij->scores[$i]->gem = round($rij->scores[$i]->gem);
// $rij->scores[$i]->colorcode=$this->kleurcodes->getkleur($rij->scores[$i]->gem);
// if(round($rij->scores[$i]->gem) > 0){
// $waarden++;
// }
//
// };
// $rij->scores[$aantalY]=new stdClass();
// $rij->scores[$aantalY]->gem = new stdClass();
//
// if($aantalscores > 0) {
// $rij->scores[$aantalY]->gem = round($sumscorerij / $aantalY);
// }
// else{
// $rij->scores[$aantalY]->gem = null;
// }
// $rij->scores[$aantalY]->colorcode=$this->kleurcodes->getkleur($rij->scores[$aantalY]->gem);
// }; // if scores
// };// foreach bg rijen
// $bg->rijen = array_values($bg->rijen);
//
// if($organisatie->soort ==4 || $orgversie->vorm == 1) {
// }//doe niks
// else{
// $rijcount = count($bg->rijen);
// $bg->rijen[$rijcount] = new stdClass();
// $bg->rijen[$rijcount]->fullname = "gemiddeld";
// $bgtot = 0;
// $bgtotaantal = 0;
// for ($i = 0; $i < $aantalY; $i++) {
// $waarden2 = 0;
// if ($aantalrijen == 0) {
// $sumscore[$i] = 0;
// } else {
// if ($aantalresults[$i] > 0) {
// if($sumscore[$i] != 0) {
// $sumscore[$i] = round($sumscore[$i] / $aantalrijen);
// $waarden++;
// }
// $bgtot = $bgtot + $sumscore[$i];
// $bgtotaantal++;
// }
// else{
// $sumscore[$i] = 0;
// }
// }
// $bg->rijen[$rijcount]->scores[$i] = new stdClass();
// if($waarden2 > 0) {
// $bg->rijen[$rijcount]->scores[$i]->gem = $sumscore[$i];
// $bg->rijen[$rijcount]->scores[$i]->colorcode = $this->kleurcodes->getkleur($bg->rijen[$rijcount]->scores[$i]->gem);
// }
// };
// $bg->rijen[$rijcount]->scores[$aantalY] = new stdClass();
// if ($bgtotaantal > 0 && round($bgtot / $bgtotaantal) > 0) {
// $bg->rijen[$rijcount]->scores[$aantalY]->gem = round($bgtot / $bgtotaantal);
// }
// else {
// $bg->rijen[$rijcount]->scores[$aantalY]->gem = null;
// };
//
// if( $bg->rijen[$rijcount]->scores[$aantalY]->gem) {
// $gem = $bg->rijen[$rijcount]->scores[$aantalY]->gem;
// $bg->rijen[$rijcount]->scores[$aantalY]->colorcode = $this->kleurcodes->getkleur($gem);
// }
// if($orgversie->vorm == 2 && $organisatie->soort == 4) {
// $rechten = $this->checkinzage();
// if ($rechten == 256) {
// //doe niks
// }
// }
// if($rechten < 256) {
// for ($si = 0; $si <= $rijcount; $si++) {
// if ($si < $rijcount) {
// unset($bg->rijen[$si]);
// }
// }
// }
// if($rechten > 256){
// for($si = 0; $si <= $rijcount; $si++){
// if($si < $rijcount || $this->userid != $bg->rijen[$si]->user_id ){
// unset($bg->rijen[$si]);
// }
//
// }
//
// }
//
// }
// }; // if bg->rijen
// }
// }
//
//
// $instrument = $this->Modules_model->get_fieldvalue(array("sysnr" =>$this->module), "naam") ;
// $labels = $this->Labels_model->getalllabels();
// $kleurtabel = $this->kleurcodes->getkleurlegenda();
//
// if($waarden > 0) {
// $data = array("instrument" => $instrument,
// "organisatie" => $organisatie,
// "periodenaam" => $geldigvanaf . ' t/m ' . $geldigtm,
// "vandaag" => $today,
// "versievorm" => $orgversie->vorm,
// "bgs" => $bgs,
// "ijkpunten" => $ijkpunten,
// "labels" => $labels,
// "kleurtabel" => $kleurtabel);
// }
// else{ $data = null;
// }
// $html = $this->load->view("monpas/reports/resultaatmatrix", $data, true);
// $filenaam="resultaatmatrix";
// $this->Phantom_model->create_pdf($html, $filenaam, FALSE, FALSE, FALSE);
// }
// function getscores()
// {
// //TODO clean input
// if (!$this->userid) die;
// $orgversieid = $this->clean_input("orgversieid");
// $orgid = $this->clean_input("orgid");
//
// $organisatie = $this->Organisaties_model->get_record_by_id($orgid);
// $orgversie = $this->Orgversies_model->get_record_by_id($orgversieid);
//
// // als school en orgversie = "ikvorm" =haal de resultaten van de medewerkers op
// $bgs = new stdClass;
// $bgs->bg = new stdClass;
// $bgs->bg->naam = null;
//
// // $bgs->bg->rijen = new stdClass;
// $bgs->bg->rijen = [];
// if (!$organisatie) return;
// if ($organisatie->soort ==4 && $orgversie->vorm == 2){
// $bgs->bg->rijen = $this->Filledversions_model->getlks($orgid,$orgversieid);
// } // if soort = 4 & ikvorm
//
// if ($organisatie->soort == 4 && $orgversie->vorm != 2) {
// $rij = new stdClass;
// $rij->filledversionid = $orgversieid;
// $rij->orgid = $orgid;
// $rij->fullname = $organisatie->naamkort;
// $bgs->bg->rijen[] = $rij;
//// if(!array($bgs->bg->rijen)){
//// $bgs->bg->rijen = (array)$bgs->bg->rijen;
//// }
////var_dump($bgs->bg->rijen);
//
// }; // if soort =4 en schoolvorm
// //
// if ($organisatie->soort == 3) {
// $bgs->bg->rijen = $this->Organisaties_model->getorgs2($orgid);
// }; // if soort --3
//
// if ($organisatie->soort == 2) {
// $bgs = $this->Organisaties_model->getorgsdetails(3, $orgid);
// if ($bgs) {
// foreach ($bgs as $bg) {
// $bg->rijen = new stdClass;
// $bg->rijen = $this->Organisaties_model->getorgs2($bg->id);
// }
// }; // if bgs
// };// if soort ==2
//
// if ($organisatie->soort == 1) {
// $bgs = $this->Organisaties_model->getbgsonderswv($orgid);
//
// if ($bgs) {
// foreach ($bgs as $bg) {
// $bg->rijen = $this->Organisaties_model->getorgs2($bg->id);
//
// }
// }; // if bgs
// }; // if soort ==1
// // nu de (gemiddelde) scores ophalen
//
// if ($bgs) {
//
// foreach ($bgs as $bg) {
// if ($bg->rijen) {
// if (!is_array($bg->rijen)) {
// $tijdelijk = $bg->rijen;
// $bg->rijen = null;
// $bg->rijen [] = null;
// array_unshift($bg->rijen[], $tijdelijk);
//
// }
// foreach ($bg->rijen as $rij) {
// $rij->scores = new stdClass;
// if($organisatie->soort == 4 && $orgversie->vorm == 2) {
// $rij->scores = $this->Scores_model->getlkscores($rij->filledversionid);
// }
// else
// if ($organisatie->soort == 4 && $orgversie->vorm != 2) {
//
// $scores = $this->Scores_model->getgemscores($orgversieid, $orgid);
//
// $rij->scores = $scores;
//
// } else {
// $rij->scores = $this->Scores_model->getgemscores($orgversieid, $rij->orgid);
// }
// }
// }
// }
// if (!$bg->rijen) {
// unset($bg);
// }
// }
// $ijkpunten = $this->Orgversies_model->getijkpunten($orgversieid);
// $aantalY = count($ijkpunten);
// // nu bepaal het gemiddeld per rij en het gemiddelde van een BG
//
// $waarden = 0;
//
// if ($bgs) {
// //$aantalscores = 0;
// foreach ($bgs as $bg) {
// for ($i = 0; $i < $aantalY; $i++) {
// $sumscore[$i] = 0;
// };
// $aantalrijen = 0;
// $aantalresults = array();
// for ($i = 0; $i < $aantalY; $i++) {
// $aantalresults[$i] = 0;
// }; // for i
// if ($bg->rijen) {
// foreach ($bg->rijen as $rij) {
// $sumscorerij = 0;
// $aantalscores = 0;
// if ($rij->scores) {
// $aantalrijen = $aantalrijen + 1;
// for ($i = 0; $i < $aantalY; $i++) {
// if ($rij->scores[$i]->gem == '' || $rij->scores[$i]->gem == null) {
// // doe niks
// } else {
// $aantalscores++;
// $sumscore[$i] = $sumscore[$i] + $rij->scores[$i]->gem;
// $aantalresults[$i] = $aantalresults[$i] + 1;
// $sumscorerij = $sumscorerij + $rij->scores[$i]->gem;
// if ($sumscorerij > 0) {
// $waarden++;
// }
//
// }
// $rij->scores[$i]->kleur = $this->kleurcodes->getkleur($rij->scores[$i]->gem);
// };
// $rij->scores[$aantalY] = new stdClass();
// $rij->scores[$aantalY]->gem = new stdClass();
//
// if ($aantalscores > 0) {
// $rij->scores[$aantalY]->gem = round($sumscorerij / $aantalscores);
//
// } else {
// $rij->scores[$aantalY]->gem = null;
// }
// $rij->scores[$aantalY]->kleur = $this->kleurcodes->getkleur($rij->scores[$aantalY]->gem);
// } // if scores
//
// };// foreach bg rijen
// $bg->rijen = array_values($bg->rijen);
//
// if ($organisatie->soort != 4 || $orgversie->vorm == 2) {
// $rijcount = count($bg->rijen);
// $bg->rijen[$rijcount] = new stdClass();
// $bg->rijen[$rijcount]->fullname = "gemiddeld";
// $bgtot = 0;
// $bgtotaantal = 0;
// for ($i = 0; $i < $aantalY; $i++) {
// $waarden2 = 0;
// if ($aantalrijen == 0) {
// $sumscore[$i] = 0;
// } else {
// if ($aantalresults[$i] > 0) {
// if ($sumscore[$i] !== 0) {
// $sumscore[$i] = round($sumscore[$i] / $aantalresults[$i]);
// $waarden2++;
// };
// $bgtot = $bgtot + $sumscore[$i];
// $bgtotaantal++;
// } else {
// $sumscore[$i] = 0;
// }
// }
// $bg->rijen[$rijcount]->scores[$i] = new stdClass();
// if ($waarden2 > 0) {
// $bg->rijen[$rijcount]->scores[$i]->gem = $sumscore[$i];
// $bg->rijen[$rijcount]->scores[$i]->kleur = $this->kleurcodes->getkleur($bg->rijen[$rijcount]->scores[$i]->gem);
// }
//
// };
// $bg->rijen[$rijcount]->scores[$aantalY] = new stdClass();
// if ($bgtotaantal > 0 && round($bgtot / $bgtotaantal) > 0) {
// $bg->rijen[$rijcount]->scores[$aantalY]->gem = round($bgtot / $bgtotaantal);
// } else {
// $bg->rijen[$rijcount]->scores[$aantalY]->gem = null;
// };
// if ($bg->rijen[$rijcount]->scores[$aantalY]->gem) {
//
// $bg->rijen[$rijcount]->scores[$aantalY]->kleur = $this->kleurcodes->getkleur($bg->rijen[$rijcount]->scores[$aantalY]->gem);
// }
// }
// }; // if bg->rijen
// }
// }
//
// $kleurtabel = $this->kleurcodes->getkleurlegenda();
// if ($waarden > 0) {
// echo json_encode(array("bgs" => $bgs,
// "vorm" => $orgversie->vorm,
// "ijkpunten" => $ijkpunten,
// "kleurtabel" => $kleurtabel));
// } else echo json_encode(false);
// }
}