diff --git a/application/controllers/monpas/Overzichtsop.php b/application/controllers/monpas/Overzichtsop.php index cbc6c79..9fc46d2 100644 --- a/application/controllers/monpas/Overzichtsop.php +++ b/application/controllers/monpas/Overzichtsop.php @@ -8,7 +8,8 @@ class Overzichtsop extends MY_Controller{ "shared/Schooljaren_model", "shared/Organisaties_model", "shared/Orgusers_model", - "monpas/Compactsop_model" + "monpas/Compactsop_model", + "monpas/Sorteringen_model" @@ -17,10 +18,37 @@ class Overzichtsop extends MY_Controller{ $this->load->helper('string'); } - function getSchooljaren(){ + function getSchooljarenEnCriteria(){ if (!$this->userid) die; $schooljaren = $this->Schooljaren_model->getschooljaren(); - echo json_encode($schooljaren); + $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 = []; + } + $criterium = new stdClass(); + $criterium->id = 0; + $criterium->swv_id = $swvID; + $criterium->naam = "bestuur"; + array_unshift($criteria, $criterium); + + $data = [ + 'schooljaren' => $schooljaren, + 'orgsoort' => $org->soort, + 'orgID' => $this->globorgid, + 'criteria' => $criteria + ]; + + 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(){ @@ -33,90 +61,108 @@ class Overzichtsop extends MY_Controller{ } - function getoverzicht() { + function getoverzicht() + { if (!$this->userid) die; $schooljaarnr = $this->clean_input("schooljaarnr"); - $orgid = $this->clean_input("orgid"); - if ($orgid == 0) $orgid = $this->globorgid; - $organisatie = $this->Organisaties_model->getorg($orgid); + $criteriumID = $this->clean_input("criteriumID"); + + $organisatie = $this->Organisaties_model->getorg($this->globorgid); $organisatie->sop = 'F'; - $compactsopID = $this->Compactsop_model->get_fieldvalue(['organisatie_id' => $orgid, + $compactsopID = $this->Compactsop_model->get_fieldvalue(['organisatie_id' => $this->globorgid, 'schooljaarnummer' => $schooljaarnr], 'id'); if ($compactsopID) $organisatie->sop = 'T'; - switch ($organisatie->soort) { - case 4: - echo json_encode(array("organisatie" => $organisatie, "soort" => 4,)); - break; - case 3: - $bgid = $organisatie->id; - $organisatie->scholen = $this->Organisaties_model->getorgsvanaf($bgid); - if ($organisatie->scholen) { - foreach ($organisatie->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" => 3)); - break; - case 2: - $kamerid = $organisatie->id; - $organisatie->bgs = $this->Organisaties_model->getorgsvanaf($kamerid); - if ($organisatie->bgs) { - foreach ($organisatie->bgs as $bg) { - $bg->sop = 'F'; - $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) { + if ($organisatie->soort == 4){ + echo json_encode(array("organisatie" => $organisatie, "soort" => 4,));} + + if ($criteriumID == 0) $this->overzichtPerNiveau($organisatie, $schooljaarnr); + if ($criteriumID > 0) $this->overzichtPerCriterium($organisatie, $schooljaarnr, $criteriumID); + + } + + private function overzichtPerCriterium($organisatie, $schooljaarnr, $criteriumID){ + + + $orgs = $this->Organisaties_model->getlistrecursief($organisatie->id); + $orglist = implode(",", $orgs); + $organisatie->scholen = $this->Compactsop_model->orgsEnSopsPerCriterium($schooljaarnr,$criteriumID,$orglist ); + echo json_encode(array("organisatie" => $organisatie, "soort" => $organisatie->soort)); + + } + + private function overzichtPerNiveau($organisatie, $schooljaarnr){ + switch ($organisatie->soort) { + case 3: + $bgid = $organisatie->id; + $organisatie->scholen = $this->Organisaties_model->getorgsvanaf($bgid); + if ($organisatie->scholen) { + foreach ($organisatie->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; - $organisatie->kamers = $this->Organisaties_model->getorgsvanaf($swvid); - if ($organisatie->kamers) { - if (!is_array($organisatie->kamers)) { - $organisatie->kamers = objectToArray($organisatie->kamers); - } - foreach ($organisatie->kamers as $kamer) { - $kamer->sop = 'F'; - $compactsopID = $this->Compactsop_model->get_fieldvalue( - ['organisatie_id' => $kamer->id, 'schooljaarnummer' => $schooljaarnr], 'id'); - if ($compactsopID) $kamer->sop = 'T'; - $kamer->bgs = $this->Organisaties_model->getorgsvanaf($kamer->id); - if ($kamer->bgs) { - foreach ($kamer->bgs as $bg) { - $bg->sop = 'F'; + echo json_encode(array("organisatie" => $organisatie, "soort" => 3)); + break; + case 2: + $kamerid = $organisatie->id; + $organisatie->bgs = $this->Organisaties_model->getorgsvanaf($kamerid); + if ($organisatie->bgs) { + foreach ($organisatie->bgs as $bg) { + $bg->sop = 'F'; + $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' => $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'; + ['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; + $organisatie->kamers = $this->Organisaties_model->getorgsvanaf($swvid); + if ($organisatie->kamers) { + if (!is_array($organisatie->kamers)) { + $organisatie->kamers = objectToArray($organisatie->kamers); + } + foreach ($organisatie->kamers as $kamer) { + $kamer->sop = 'F'; + $compactsopID = $this->Compactsop_model->get_fieldvalue( + ['organisatie_id' => $kamer->id, 'schooljaarnummer' => $schooljaarnr], 'id'); + if ($compactsopID) $kamer->sop = 'T'; + $kamer->bgs = $this->Organisaties_model->getorgsvanaf($kamer->id); + if ($kamer->bgs) { + foreach ($kamer->bgs as $bg) { + $bg->sop = 'F'; $compactsopID = $this->Compactsop_model->get_fieldvalue( - ['organisatie_id' => $school->id, 'schooljaarnummer' => $schooljaarnr], 'id'); - if ($compactsopID) $school->sop = 'T'; + ['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'; + } } } } } - } - echo json_encode([ - "organisatie" => $organisatie, - "soort" => 1]); - break; + echo json_encode([ + "organisatie" => $organisatie, + "soort" => 1]); + break; } } + // function getAlfabetisch(){ // if (!$this->userid) die; diff --git a/application/models/monpas/Compactsop_model.php b/application/models/monpas/Compactsop_model.php index c92e1f7..c820bc5 100644 --- a/application/models/monpas/Compactsop_model.php +++ b/application/models/monpas/Compactsop_model.php @@ -28,4 +28,8 @@ class Compactsop_model extends MY_Model header( 'Content-Length: ' . filesize( $this->compactsoppath.$sop->pdfnaam ) ); readfile( $this->compactsoppath . $sop->pdfnaam ); } + + + + } \ No newline at end of file diff --git a/application/models/monpas/Sorteerlabels_model.php b/application/models/monpas/Sorteerlabels_model.php index 71f199b..d962d00 100644 --- a/application/models/monpas/Sorteerlabels_model.php +++ b/application/models/monpas/Sorteerlabels_model.php @@ -26,6 +26,26 @@ class Sorteerlabels_model extends MY_Model{ WHERE L.sortering_id = {$criteriumid} AND O.organisatie_id = {$schoolid} "; return $this->get_query_row('id'); - } + + function orgsEnSopsPerCriterium($schooljaarnr,$criteriumID,$orglist){ + $this->sql =" SELECT O.id, O.soort, O.naamkort, O.plaats, O.brin, COALESCE(L.naam, 'niet ingedeeld') AS label, + COALESCE(L.naam, 'ZZZZ') AS ordening, + CASE WHEN IS NULL C.id THEN 'F' + ELSE 'T' + END AS sop + + FROM tb_organisaties O + LEFT JOIN tb_sorteerlabels_org OL ON O.id = OL.organisatie_id + LEFT JOIN tb_sorteerlabels L ON OL.label_id = L.id + LEFT JOIN tb_sorteringen S ON L.sortering_id = S.id + LEFT JOIN tb_compactsops C ON O.id = C.organisatie_id + + WHERE O.id IN ({$orglist}) + AND (S.id = {$criteriumID} OR S.id IS NULL) + AND (C.schooljaarnummer = {$schooljaarnr} OR C.id IS NULL) + + GROUP BY O.id + ORDER BY ordening, O.soort, O.naamkort "; + } } \ No newline at end of file diff --git a/application/views/monpas/compactsop/overzicht/_swv.php b/application/views/monpas/compactsop/overzicht/_swv.php index 6c87e0b..3eac258 100644 --- a/application/views/monpas/compactsop/overzicht/_swv.php +++ b/application/views/monpas/compactsop/overzicht/_swv.php @@ -1,5 +1,5 @@
| Download | diff --git a/application/views/monpas/pages/sopoverzicht.php b/application/views/monpas/pages/sopoverzicht.php index d1e7613..9c28925 100644 --- a/application/views/monpas/pages/sopoverzicht.php +++ b/application/views/monpas/pages/sopoverzicht.php @@ -11,25 +11,44 @@
|---|