sops per criterium bors,robs en swop niet

This commit is contained in:
Monique
2022-02-08 12:07:21 +01:00
parent 89baf9bfd9
commit 1e88478891
9 changed files with 221 additions and 139 deletions
+74 -44
View File
@@ -9,7 +9,8 @@ class Overzichtsop extends MY_Controller{
"shared/Organisaties_model",
"shared/Orgusers_model",
"monpas/Compactsop_model",
"monpas/Sorteringen_model"
"monpas/Sorteringen_model",
"monpas/Sorteerlabels_model",
@@ -22,16 +23,30 @@ class Overzichtsop extends MY_Controller{
if (!$this->userid) die;
$schooljaren = $this->Schooljaren_model->getschooljaren();
$org = $this->Organisaties_model->get_record_by_id($this->globorgid);
$swvID = $this->getSWVID($this->globorgid);
$criteria = $this->Sorteringen_model->get_criteriabijSWV($swvID);
if(!$criteria){
$criteria = [];
if($org->soort == 4) $criteria = false;
else {
switch ($org->soort) {
case 1:
$swvID = $this->globorgid;
break;
case 2:
$swvID = $org->valtonder_id;
break;
case 3:
$swvID = $this->Organisaties_model->get_fieldvalue(['id' => $org->valtonder_id], 'valtonder_id');
break;
}
$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);
}
$criterium = new stdClass();
$criterium->id = 0;
$criterium->swv_id = $swvID;
$criterium->naam = "bestuur";
array_unshift($criteria, $criterium);
$data = [
'schooljaren' => $schooljaren,
@@ -43,13 +58,7 @@ class Overzichtsop extends MY_Controller{
echo json_encode($data);
}
function getSWVID($orgID){
$valtonder = $this->Organisaties_model->get_fieldvalue(['id' => $orgID], 'valtonder_id');
if($orgID != $valtonder) {
$this->getSWVID($valtonder);
}
return $valtonder;
}
function getOrgsoort(){
if (!$this->userid) die;
@@ -73,24 +82,40 @@ class Overzichtsop extends MY_Controller{
'schooljaarnummer' => $schooljaarnr], 'id');
if ($compactsopID) $organisatie->sop = 'T';
if ($organisatie->soort == 4){
echo json_encode(array("organisatie" => $organisatie, "soort" => 4,));}
echo json_encode(["soort" => 4,
"organisatie" => $organisatie,
"criteriumscholen" => false]);
}
if ($criteriumID > 0){
$criteriumOrg = clone $organisatie;
$criteriumresult = $this->overzichtPerCriterium($criteriumOrg, $schooljaarnr, $criteriumID);
}
if($organisatie->soort < 3 ||$criteriumID == 0 ) $niveauresult = $this->overzichtPerNiveau($organisatie, $schooljaarnr, $criteriumID);
$niveauorgs = [];
echo json_encode([
'soort' => $organisatie->soort,
'organisatie' => isset($niveauresult)? $niveauresult : false,
'criteriumscholen' => isset($criteriumresult) ? $criteriumresult: false
]);
if ($criteriumID == 0) $this->overzichtPerNiveau($organisatie, $schooljaarnr);
if ($criteriumID > 0) $this->overzichtPerCriterium($organisatie, $schooljaarnr, $criteriumID);
}
private function overzichtPerCriterium($organisatie, $schooljaarnr, $criteriumID){
private function overzichtPerCriterium($criteriumOrg, $schooljaarnr, $criteriumID){
$orgs = $this->Organisaties_model->getlistrecursief($organisatie->id);
$lijst = [];
$orgs = $this->Organisaties_model->getlistrecursief($criteriumOrg->id, $lijst);
$orglist = implode(",", $orgs);
$organisatie->scholen = $this->Compactsop_model->orgsEnSopsPerCriterium($schooljaarnr,$criteriumID,$orglist );
echo json_encode(array("organisatie" => $organisatie, "soort" => $organisatie->soort));
$criteriumOrg->scholen = $this->Sorteerlabels_model->orgsEnSopsPerCriterium($schooljaarnr,$criteriumID,$criteriumOrg->id, $orglist );
return $criteriumOrg;
}
private function overzichtPerNiveau($organisatie, $schooljaarnr){
private function overzichtPerNiveau($organisatie, $schooljaarnr, $criteriumID){
switch ($organisatie->soort) {
case 3:
$bgid = $organisatie->id;
@@ -103,7 +128,6 @@ class Overzichtsop extends MY_Controller{
if ($compactsopID) $school->sop = 'T';
}
}
echo json_encode(array("organisatie" => $organisatie, "soort" => 3));
break;
case 2:
$kamerid = $organisatie->id;
@@ -114,16 +138,19 @@ class Overzichtsop extends MY_Controller{
$compactsopID = $this->Compactsop_model->get_fieldvalue(
['organisatie_id' => $bg->id, 'schooljaarnummer' => $schooljaarnr], 'id');
if ($compactsopID) $bg->sop = 'T';
$bg->scholen = $this->Organisaties_model->getorgsvanaf($bg->id);
foreach ($bg->scholen as $index => $school) {
$school->sop = 'F';
$compactsopID = $this->Compactsop_model->get_fieldvalue(
['organisatie_id' => $school->id, 'schooljaarnummer' => $schooljaarnr], 'id');
if ($compactsopID) $school->sop = 'T';
}
if($criteriumID == 0 ) {
$bg->scholen = $this->Organisaties_model->getorgsvanaf($bg->id);
if($bg->scholen){
foreach ($bg->scholen as $index => $school) {
$school->sop = 'F';
$compactsopID = $this->Compactsop_model->get_fieldvalue(
['organisatie_id' => $school->id, 'schooljaarnummer' => $schooljaarnr], 'id');
if ($compactsopID) $school->sop = 'T';
}
}
}
}
}
echo json_encode(array("organisatie" => $organisatie, "soort" => 2));
break;
case 1;
$swvid = $organisatie->id;
@@ -144,23 +171,26 @@ class Overzichtsop extends MY_Controller{
$compactsopID = $this->Compactsop_model->get_fieldvalue(
['organisatie_id' => $bg->id, 'schooljaarnummer' => $schooljaarnr], 'id');
if ($compactsopID) $bg->sop = 'T';
$bg->scholen = $this->Organisaties_model->getorgsvanaf($bg->id);
foreach ($bg->scholen as $index => $school) {
$school->sop = 'F';
$compactsopID = $this->Compactsop_model->get_fieldvalue(
['organisatie_id' => $school->id, 'schooljaarnummer' => $schooljaarnr], 'id');
if ($compactsopID) $school->sop = 'T';
if($criteriumID == 0) {
$bg->scholen = $this->Organisaties_model->getorgsvanaf($bg->id);
if($bg->scholen) {
foreach ($bg->scholen as $index => $school) {
$school->sop = 'F';
$compactsopID = $this->Compactsop_model->get_fieldvalue(
['organisatie_id' => $school->id, 'schooljaarnummer' => $schooljaarnr], 'id');
if ($compactsopID) $school->sop = 'T';
}
}
}
}
}
}
}
echo json_encode([
"organisatie" => $organisatie,
"soort" => 1]);
break;
}
return $organisatie;
}