Files
monpas/application/libraries/monpas/Gemiddeldescores.php
T
2021-11-16 21:40:12 +01:00

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
];
}
}