- Overzichtscores::geteditrecht: '$recht == true' en '$this->uderrole' (typfout) maakten de rechtencontrole voor kamer en bestuur onjuist - Users::getorgs: 'soort=1' overschreef de soort; blok draait bewust voor alle soorten (gebruikersmodel.js gebruikt die boom) - Sopoud: '$module = 4' -> '==' - Compacteversies: 'schooltype = 'R'' -> SBO-modules krijgen label SBO - Diversiteitmonitor: typfout $swvID -> $swvid - Monfinoverzicht::getbedragen: $budget -> $budgetten Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
337 lines
13 KiB
PHP
337 lines
13 KiB
PHP
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
class Compacteversies
|
|
{
|
|
private $CI;
|
|
|
|
private $schooljaar;
|
|
private $kalenderjaar1;
|
|
private $kalenderjaar2;
|
|
private $jaarnr1;
|
|
private $jaarnr2;
|
|
private $swvID;
|
|
private $orglist;
|
|
private $aantallln;
|
|
private $onderdelen;
|
|
private $onderdeel;
|
|
private $budgetten;
|
|
private $indexFin = -1;
|
|
private $indexDiv = -1;
|
|
private $versie;
|
|
private $gevuldeversies;
|
|
private $gevuldschooljaar;
|
|
private $vormtekst;
|
|
private $filledversie;
|
|
private $schooljaarnr;
|
|
private $orgid;
|
|
private $orgsoortnr;
|
|
|
|
public function getOnderdelen(){
|
|
return $this->onderdelen;
|
|
}
|
|
|
|
|
|
public function __construct( $schooljaarnr, $orgid, $orgsoort)
|
|
{
|
|
$this->CI =& get_instance();
|
|
$this->schooljaarnr = $schooljaarnr;
|
|
$this->orgid = $orgid;
|
|
$this->orgsoortnr = $orgsoort;
|
|
$this->handle();
|
|
}
|
|
|
|
private function handle()
|
|
{
|
|
$this->setSchooljaar();
|
|
$this->setKalenderjaren();
|
|
$this->setOrglist();
|
|
$this->setSWVID();
|
|
$this->setCompactSopOnderdelen();
|
|
$this->loopCompactSop();
|
|
$this->removeOnderdelen();
|
|
}
|
|
|
|
private function setSchooljaar(){
|
|
$jaarid = $this->CI->Schooljaren_model->get_fieldvalue(['schooljaarnr'=>$this->schooljaarnr],'id');
|
|
$this->schooljaar = $this->CI->Schooljaren_model->get_record_by_id($jaarid);
|
|
}
|
|
|
|
private function setKalenderjaren(){
|
|
$this->kalenderjaar1 = substr($this->schooljaar->naam, 0, 4 );
|
|
$this->kalenderjaar2 = substr($this->schooljaar->naam, 5, 4);
|
|
$this->jaarnr1 = $this->CI->Kalenderjaren_model->get_fieldvalue(['naam' =>$this->kalenderjaar1], 'jaarnr');
|
|
$this->jaarnr2 = $this->CI->Kalenderjaren_model->get_fieldvalue(['naam' =>$this->kalenderjaar2], 'jaarnr');
|
|
if(!$this->jaarnr2) $this->jaarnr2 = intval($this->jaarnr1) + 1;
|
|
}
|
|
|
|
private function setOrglist(){
|
|
$lijst = [];
|
|
$orglist = $this->CI->Organisaties_model->getlistrecursief($this->orgid, $lijst);
|
|
$orglist = implode('","', $orglist);
|
|
$this->orglist = '"'. $orglist .'"';
|
|
|
|
}
|
|
|
|
private function setSWVID(){
|
|
|
|
switch ($this->orgsoortnr) {
|
|
case "1":
|
|
$this->swvID = $this->orgid;
|
|
break;
|
|
case "2":
|
|
$kamer = $this->CI->Organisaties_model->get_record_by_id($this->orgid);
|
|
$this->swvID = $kamer->valtonder_id;
|
|
break;
|
|
case "3" :
|
|
$bg = $this->CI->Organisaties_model->get_record_by_id($this->orgid);
|
|
$kamer = $this->CI->Organisaties_model->get_record_by_id($bg->valtonder_id);
|
|
$this->swvID = $kamer->valtonder_id;
|
|
break;
|
|
case "4":
|
|
$school = $this->CI->Organisaties_model->get_record_by_id($this->orgid);
|
|
$bg = $this->CI->Organisaties_model->get_record_by_id($school->valtonder_id);
|
|
$kamer = $this->CI->Organisaties_model->get_record_by_id($bg->valtonder_id);
|
|
$this->swvID = $kamer->valtonder_id;
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
private function setCompactSopOnderdelen(){
|
|
$this->onderdelen = $this->CI->Compactsoponderdelen_model->getOnderdelen( $this->orgid);
|
|
}
|
|
|
|
private function loopCompactSop(){
|
|
if ($this->onderdelen){
|
|
foreach($this->onderdelen as $index=> $this->onderdeel) {
|
|
$this->onderdeel->gegevens = 'F';
|
|
$this->setExtraOmvang();
|
|
$this->setDivSchooltypes();
|
|
$this->setDiversiteit($index);
|
|
$this->setBudgetten($index);
|
|
$this->setOrgVersies();
|
|
$this->setGeopendeVersies();
|
|
$this->loopGeopendeVersies();
|
|
$this->setSelectedLijstOnderdelen();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private function setDivSchooltypes(){
|
|
switch($this->onderdeel->modulenr){
|
|
case 1: $this->onderdeel->schooltype = 'Alle';
|
|
break;
|
|
case 2:
|
|
case 6: $this->onderdeel->schooltype = 'R';
|
|
break;
|
|
case 30:
|
|
case 40:
|
|
case 230: $this->onderdeel->schooltype = 'Alle';
|
|
break;
|
|
case 270:
|
|
case 300: $this->onderdeel->schooltype = 'SBO';
|
|
break;
|
|
case 630: $this->onderdeel->schooltype = 'Alle';
|
|
break;
|
|
case 660: $this->onderdeel->schooltype = 'R';
|
|
break;
|
|
case 680: $this->onderdeel->schooltype = 'Alle';
|
|
break;
|
|
default: $this->onderdeel->schooltype = 'R';
|
|
|
|
|
|
}
|
|
}
|
|
|
|
private function setDiversiteit($index){
|
|
if($this->onderdeel->type != "DIV") return;
|
|
if($this->schooljaarnr < 9 && $this->onderdeel->modulenr == 660 ) {
|
|
$this->indexDiv = $index;
|
|
return;
|
|
}
|
|
$module = $this->onderdeel->modulenr;
|
|
$this->aantallln = $this->CI->Groepen_model->getversiesmetleerlingengoedeversie(
|
|
$this->orgid, $this->schooljaarnr, $this->onderdeel->schooltype, $module);
|
|
|
|
if(isset($this->aantallln)){
|
|
if ($this->aantallln > 0) {
|
|
$this->onderdeel->groepen = $this->CI->Groepen_model->get_AantalGroepen($this->schooljaarnr, $this->orgid, $module);
|
|
$this->onderdeel->erIsDiversiteit = 'T';
|
|
$this->onderdeel->gegevens = 'T';
|
|
// was 'schooltype = 'R'' (toewijzing): alles werd PO en schooltype werd overschreven
|
|
$this->onderdeel->schoolsoort = $this->onderdeel->schooltype == 'SBO' ? 'SBO' : 'PO';
|
|
$this->onderdeel->versie = $this->schooljaar->naam. ', '. $this->onderdeel->schoolsoort;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private function setExtraOmvang(){
|
|
|
|
if($this->onderdeel->type != "OMVANG") return;
|
|
$schooljaren = $this->CI->Aantalleerlingen_model->get_gevuldeschooljaren_Sop($this->schooljaarnr, $this->orglist);
|
|
if($schooljaren && count($schooljaren) > 0) {
|
|
$this->onderdeel->gegevens = 'T';
|
|
$this->onderdeel->gevuldeschooljaren = $schooljaren;
|
|
foreach ($this->onderdeel->gevuldeschooljaren as $this->gevuldschooljaar) {
|
|
$this->gevuldschooljaar->erZijnTLVs = false;
|
|
$this->gevuldschooljaar->erZijnArrangementen = false;
|
|
$tlvs = $this->CI->Tlvs_model->getAantalTLVsSop($this->gevuldschooljaar->schooljaarnr, $this->orglist);
|
|
if ($tlvs) {
|
|
if ($tlvs->aantal > 0) {
|
|
$this->gevuldschooljaar->erZijnTLVs = true;
|
|
$this->gevuldschooljaar->orgsmettlvs = $tlvs->orgsmettlvs;}
|
|
}
|
|
$arr = $this->CI->Arrangementen_model->getAantalLeerlingenMetArrangement($this->gevuldschooljaar->schooljaarnr, $this->orglist);
|
|
if ($arr) {
|
|
if ($arr->aantal > 0){
|
|
$this->gevuldschooljaar->erZijnArrangementen = true;
|
|
$this->gevuldschooljaar->orgsmetarrs = $arr->orgsmetarrs;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private function setBudgetten($index){
|
|
if($this->onderdeel->type != "FIN") return;
|
|
|
|
$this->onderdeel->budgetversies = [];
|
|
$this->budgetten = $this->CI->Finbestemmingen_model->getTotaalSchoolBestedingen($this->orgid, $this->jaarnr1);
|
|
if($this->budgetten > 0){
|
|
$this->onderdeel->budgetversies [] = $this->kalenderjaar1;
|
|
$this->onderdeel->erZijnBudgetten = 'T';
|
|
$this->onderdeel->gegevens = 'T';
|
|
}
|
|
$this->budgetten = $this->CI->Finbestemmingen_model->getTotaalSchoolBestedingen($this->orgid, $this->jaarnr2);
|
|
if(intval($this->budgetten) > 0){
|
|
$this->onderdeel->budgetversies [] = $this->kalenderjaar2;
|
|
$this->onderdeel->erZijnBudgetten = 'T';
|
|
$this->onderdeel->gegevens = 'T';
|
|
}
|
|
}
|
|
|
|
private function setOrgVersies(){
|
|
if($this->onderdeel->type != "LIJST" && $this->onderdeel->type != "LIJSTBREED") return;
|
|
$this->onderdeel->erZijnOrgVersies = 'F';
|
|
$this->onderdeel->gegevens = 'F';
|
|
$orgversies = $this->CI->Orgversies_model->getOrgversiesBijSOP($this->swvID, $this->onderdeel->modulenr);
|
|
if($orgversies){
|
|
$this->onderdeel->erZijnOrgVersies = 'T';
|
|
|
|
}
|
|
}
|
|
|
|
private function setGeopendeVersies(){
|
|
if($this->onderdeel->type != "LIJST" && $this->onderdeel->type != "LIJSTBREED") return;
|
|
$this->onderdeel->geopendeversies = $this->CI->Filledversions_model->getfilledversions_bij_orglist(
|
|
$this->orglist, $this->onderdeel->modulenr);
|
|
}
|
|
|
|
private function loopGeopendeVersies(){
|
|
if(($this->onderdeel->type != "LIJST" && $this->onderdeel->type != "LIJSTBREED")||!$this->onderdeel->geopendeversies ) return;
|
|
$this->onderdeel->erIsEenVersie= 'F';
|
|
$this->onderdeel->gegevens= 'F';
|
|
$this->onderdeel->filledversies = [];
|
|
foreach($this->onderdeel->geopendeversies as $index => $this->versie) {
|
|
$this->setFilledVersies();
|
|
}
|
|
}
|
|
|
|
private function setFilledVersies(){
|
|
$this->gevuldeversies = $this->CI->Scores_model->fTelGevuldeVersiesBijOrglist(
|
|
$this->versie->id, $this->orglist);
|
|
|
|
|
|
if($this->gevuldeversies) {
|
|
if($this->gevuldeversies->aantalFV > 0 ) {
|
|
if ($this->versie->vorm == 1) {
|
|
$this->vormtekst = 'schoolversie';
|
|
}
|
|
if ($this->versie->vorm == 2) {
|
|
$this->vormtekst = 'individuele versie';
|
|
}
|
|
|
|
$this->versie->naam = $this->versie->naam . ', periode: ' . $this->versie->periodenummer . ': ' .
|
|
$this->versie->geldigvanaf . ' - ' . $this->versie->geldigtm . ', ' . $this->vormtekst;
|
|
$this->versie->naamkort = 'Periode: ' . $this->versie->periodenummer . ': ' . $this->versie->geldigvanaf . ' - ' . $this->versie->geldigtm;
|
|
if($this->orgsoortnr < 4){
|
|
if($this->gevuldeversies->aantalorgs == 1) {
|
|
$this->versie->naam = $this->versie->naam . ' (' . $this->gevuldeversies->aantalorgs . ' school';
|
|
}
|
|
else{
|
|
$this->versie->naam = $this->versie->naam . ' (' . $this->gevuldeversies->aantalorgs . ' scholen';
|
|
}
|
|
$this->versie->naamkort = $this->versie->naamkort . ' ('. $this->gevuldeversies->aantalorgs;
|
|
if ($this->versie->vorm == 2) {
|
|
if($this->gevuldeversies->aantalFV == 1){
|
|
$this->versie->naam = $this->versie->naam . '/ '. $this->gevuldeversies->aantalFV . ' lijst)';
|
|
}
|
|
else{
|
|
$this->versie->naam = $this->versie->naam . '/ '. $this->gevuldeversies->aantalFV . ' lijsten)';
|
|
}
|
|
|
|
$this->versie->naamkort = $this->versie->naamkort .'/ '. $this->gevuldeversies->aantalFV . ')';
|
|
}
|
|
else{
|
|
$this->versie->naam = $this->versie->naam . ')';
|
|
$this->versie->naamkort = $this->versie->naamkort . ')';
|
|
}
|
|
}
|
|
else{
|
|
if ($this->versie->vorm == 2) {
|
|
if($this->gevuldeversies->aantalFV == 1){
|
|
$this->versie->naam = $this->versie->naam . ' (' . $this->gevuldeversies->aantalFV . ' lijst)';
|
|
}
|
|
else {
|
|
$this->versie->naam = $this->versie->naam . ' (' . $this->gevuldeversies->aantalFV . ' lijsten)';
|
|
}
|
|
$this->versie->naamkort = $this->versie->naamkort .' ('. $this->gevuldeversies->aantalFV . ')';
|
|
}
|
|
else{
|
|
$this->versie->naam = $this->versie->naam . ')';
|
|
$this->versie->naamkort = $this->versie->naamkort . ')';
|
|
}
|
|
}
|
|
|
|
|
|
$this->onderdeel->filledversies [] = $this->versie;
|
|
}
|
|
}
|
|
}
|
|
|
|
private function setSelectedLijstOnderdelen(){
|
|
if($this->onderdeel->type != "LIJST"&& $this->onderdeel->type != "LIJSTBREED") return;
|
|
if(!isset($this->onderdeel->filledversies) || count($this->onderdeel->filledversies) == 0) return;
|
|
$this->onderdeel->erIsEenVersie = "T";
|
|
$this->onderdeel->gegevens = "T";
|
|
foreach($this->onderdeel->filledversies as $index => $this->filledversie) {
|
|
$this->filledversie->selected = 'F';
|
|
$valterin = $this->CI->Filledversions_model->checkperiode($this->filledversie->id,$this->schooljaar->start,
|
|
$this->schooljaar->eind );
|
|
if($valterin){
|
|
$this->filledversie->selected = 'T';
|
|
}
|
|
}
|
|
}
|
|
private function removeOnderdelen(){
|
|
if($this->indexFin == -1 && $this->indexDiv == -1) return;
|
|
$onderdelendef = [];
|
|
foreach($this->onderdelen as $index => $this->onderdeel){
|
|
if($index != $this->indexFin && $index != $this->indexDiv) $onderdelendef [] = $this->onderdeel;
|
|
}
|
|
$this->onderdelen = $onderdelendef;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|