214 lines
5.6 KiB
PHP
214 lines
5.6 KiB
PHP
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
class Gemiddeldescores
|
|
{
|
|
private $CI;
|
|
private $ijkpunten;
|
|
private $ijkpunt;
|
|
private $leerkrachten;
|
|
private $leerkracht;
|
|
private $scores = [];
|
|
private $score;
|
|
private $wensen;
|
|
private $aantalY;
|
|
private $scoreteller;
|
|
private $slaover = false;
|
|
private $ambities;
|
|
private $gemiddeldescores;
|
|
private $aantalnvt = 0;
|
|
|
|
public function __construct($orgversieid, $orgid)
|
|
{
|
|
$this->CI =& get_instance();
|
|
$this->orgversieid = $orgversieid;
|
|
$this->orgid = $orgid;
|
|
|
|
$this->handle();
|
|
}
|
|
|
|
public function getGemiddeldeScores()
|
|
{
|
|
return $this->gemiddeldescores;
|
|
}
|
|
|
|
public function getLeerkrachten()
|
|
{
|
|
return $this->leerkrachten;
|
|
}
|
|
|
|
public function getAantalLeerkrachten()
|
|
{
|
|
return count($this->leerkrachten);
|
|
}
|
|
|
|
public function getAmbities()
|
|
{
|
|
return $this->ambities;
|
|
}
|
|
|
|
public function getIJkpunten()
|
|
{
|
|
return $this->ijkpunten;
|
|
}
|
|
|
|
public function getWensen()
|
|
{
|
|
return $this->wensen;
|
|
}
|
|
|
|
private function handle()
|
|
{
|
|
$this->setIJkpunten();
|
|
$this->setLeerkrachten();
|
|
$this->setLeerkrachtScores();
|
|
$this->telIJkpunten();
|
|
$this->loopIJkpunten();
|
|
$this->setAmbities();
|
|
$this->setWensen();
|
|
$this->setGemiddeldeScores();
|
|
}
|
|
|
|
private function setIJkpunten(){
|
|
$this->ijkpunten = $this->CI->Ijkpunten_model->getijkpuntenMetIndicatoren($this->orgversieid);
|
|
}
|
|
|
|
private function setLeerkrachten()
|
|
{
|
|
$this->leerkrachten = $this->CI->Filledversions_model->getlks($this->orgid, $this->orgversieid);
|
|
}
|
|
|
|
private function setLeerkrachtScores()
|
|
{
|
|
if (!$this->leerkrachten) return;
|
|
foreach ($this->leerkrachten as $index => $this->leerkracht) {
|
|
$this->leerkracht->scores = $this->CI->Scores_model->calculateindividualscores(
|
|
$this->orgversieid, $this->orgid, $this->leerkracht->user_id);
|
|
|
|
}
|
|
}
|
|
|
|
private function telIJkpunten(){
|
|
if($this->ijkpunten){
|
|
foreach($this->ijkpunten as $ijkpunt){
|
|
if($ijkpunt->disabled == 'F'){
|
|
$this->aantalY++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private function loopIJkpunten()
|
|
{
|
|
foreach ($this->ijkpunten as $index => $this->ijkpunt) {
|
|
$this->ijkpunt->disablenvt = 'F';
|
|
$this->ijkpunt->totaal = 0;
|
|
$this->ijkpunt->aantallkrtn = 0;
|
|
if($this->ijkpunt->disabled == 'F') {
|
|
$this->loopLeerkrachten();
|
|
$this->setNietvanToepassing();
|
|
$this->setIJkpuntGemiddeldeScores();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private function loopLeerkrachten()
|
|
{
|
|
if (!isset($this->leerkrachten) || !$this->leerkrachten) return;
|
|
foreach ($this->leerkrachten as $this->leerkracht) {
|
|
$this->slaover = false;
|
|
$this->scoreteller = 0;
|
|
$this->loopLeerkrachtScores();
|
|
$this->setVoldoendeAantal();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
private function loopLeerkrachtScores()
|
|
{
|
|
if (!isset($this->leerkracht->scores) || $this->leerkracht->scores == false) return;
|
|
$this->scoreteller = 0;
|
|
foreach ($this->leerkracht->scores as $index => $this->score) {
|
|
$this->setAantalScores();
|
|
if ($this->slaover == false) {
|
|
$this->setIJkpuntTotaal();
|
|
$this->telNietVanToepassing();
|
|
}
|
|
}
|
|
}
|
|
|
|
private function setAantalScores(){
|
|
if (!isset($this->leerkracht->scores) || $this->leerkracht->scores == false) return;
|
|
if($this->score->num > 0){
|
|
$this->scoreteller++;
|
|
}
|
|
|
|
}
|
|
|
|
private function setIJkpuntTotaal()
|
|
{
|
|
if ($this->score->nummer == $this->ijkpunt->nummer) {
|
|
if ($this->score->num > 0) {
|
|
$lkrtscore = $this->score->somscore / $this->score->num;
|
|
$this->ijkpunt->totaal = $this->ijkpunt->totaal + $lkrtscore;
|
|
$this->ijkpunt->aantallkrtn++;
|
|
$this->slaover = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
private function telNietvanToepassing(){
|
|
if($this->score->scoretype != 4) return;
|
|
if ($this->score->nummer == $this->ijkpunt->nummer) {
|
|
if($this->score->aantalnvt == $this->score->aantalvier )
|
|
$this->aantalnvt++;
|
|
|
|
}
|
|
}
|
|
|
|
private function setVoldoendeAantal(){
|
|
if (!isset($this->leerkracht->scores) || $this->leerkracht->scores == false) return;
|
|
if ($this->scoreteller < 5){
|
|
$this->leerkrachtscores = false;
|
|
}
|
|
}
|
|
|
|
private function setNietVanToepassing(){
|
|
if($this->ijkpunt->aantallkrtn == $this->aantalnvt){
|
|
$this->ijkpunt->disablenvt = 'T';
|
|
}
|
|
}
|
|
|
|
private function setIJkpuntGemiddeldeScores()
|
|
{
|
|
if ($this->ijkpunt->aantallkrtn > 0) {
|
|
$this->ijkpunt->score = $this->ijkpunt->totaal / $this->ijkpunt->aantallkrtn;
|
|
}
|
|
}
|
|
|
|
private function setAmbities()
|
|
{
|
|
$this->ambities = $this->CI->Ambities_model->getOrgAmbities($this->orgversieid, $this->orgid);
|
|
}
|
|
|
|
private function setWensen()
|
|
{
|
|
$this->wensen = $this->CI->Wenssituaties_model->getgewenst($this->orgversieid, $this->orgid);
|
|
}
|
|
|
|
private function setGemiddeldeScores()
|
|
{
|
|
|
|
$this->gemiddeldescores = [
|
|
"ijkpunten" => $this->ijkpunten,
|
|
"leerkrachten" => $this->leerkrachten,
|
|
"ambities" => $this->ambities,
|
|
"wensen" => $this->wensen
|
|
];
|
|
|
|
|
|
}
|
|
} |