From 1e88478891cb67565df853521b772538293fa2df Mon Sep 17 00:00:00 2001 From: Monique Date: Tue, 8 Feb 2022 12:07:21 +0100 Subject: [PATCH] sops per criterium bors,robs en swop niet --- .../controllers/monpas/Overzichtsop.php | 118 +++++++++++------- .../models/monpas/Sorteerlabels_model.php | 9 +- .../monpas/compactsop/overzicht/_bestuur.php | 2 +- .../compactsop/overzicht/_criterium.php | 69 ++++++---- .../monpas/compactsop/overzicht/_regio.php | 9 +- .../monpas/compactsop/overzicht/_school.php | 2 +- .../monpas/compactsop/overzicht/_swv.php | 9 +- .../views/monpas/pages/sopoverzicht.php | 50 +++++--- public/js/monpas/models/sopoverzichtmodel.js | 92 ++++++++------ 9 files changed, 221 insertions(+), 139 deletions(-) diff --git a/application/controllers/monpas/Overzichtsop.php b/application/controllers/monpas/Overzichtsop.php index 9fc46d2..96a3ed6 100644 --- a/application/controllers/monpas/Overzichtsop.php +++ b/application/controllers/monpas/Overzichtsop.php @@ -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; } diff --git a/application/models/monpas/Sorteerlabels_model.php b/application/models/monpas/Sorteerlabels_model.php index d962d00..2289cc6 100644 --- a/application/models/monpas/Sorteerlabels_model.php +++ b/application/models/monpas/Sorteerlabels_model.php @@ -28,10 +28,10 @@ class Sorteerlabels_model extends MY_Model{ return $this->get_query_row('id'); } - function orgsEnSopsPerCriterium($schooljaarnr,$criteriumID,$orglist){ + function orgsEnSopsPerCriterium($schooljaarnr,$criteriumID,$orgid, $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' + CASE WHEN C.id IS NULL THEN 'F' ELSE 'T' END AS sop @@ -43,9 +43,12 @@ class Sorteerlabels_model extends MY_Model{ WHERE O.id IN ({$orglist}) AND (S.id = {$criteriumID} OR S.id IS NULL) + AND O.id <> {$orgid} + AND O.soort = 4 AND (C.schooljaarnummer = {$schooljaarnr} OR C.id IS NULL) - GROUP BY O.id ORDER BY ordening, O.soort, O.naamkort "; + + return $this->get_query_result(); } } \ No newline at end of file diff --git a/application/views/monpas/compactsop/overzicht/_bestuur.php b/application/views/monpas/compactsop/overzicht/_bestuur.php index f982d9d..d67f316 100644 --- a/application/views/monpas/compactsop/overzicht/_bestuur.php +++ b/application/views/monpas/compactsop/overzicht/_bestuur.php @@ -1,5 +1,5 @@ - diff --git a/application/views/monpas/compactsop/overzicht/_criterium.php b/application/views/monpas/compactsop/overzicht/_criterium.php index 0b8a736..2a3ee40 100644 --- a/application/views/monpas/compactsop/overzicht/_criterium.php +++ b/application/views/monpas/compactsop/overzicht/_criterium.php @@ -1,29 +1,44 @@ -
- - - - - - - - - - - - - - - - - -
DownloadSoortOrganisatie
-
- - -
\ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Compact SOPs per citerium
DownloadSoortOrganisatie
+
+
+ + +
\ No newline at end of file diff --git a/application/views/monpas/compactsop/overzicht/_regio.php b/application/views/monpas/compactsop/overzicht/_regio.php index 5736880..251fee0 100644 --- a/application/views/monpas/compactsop/overzicht/_regio.php +++ b/application/views/monpas/compactsop/overzicht/_regio.php @@ -1,7 +1,12 @@ - + + + + + @@ -33,7 +38,7 @@ style=" height: 30px; width: 30px; padding-left: 8px; background-color: #8cff1a; float: left"> - + diff --git a/application/views/monpas/compactsop/overzicht/_school.php b/application/views/monpas/compactsop/overzicht/_school.php index 2bc34c3..ddc98a1 100644 --- a/application/views/monpas/compactsop/overzicht/_school.php +++ b/application/views/monpas/compactsop/overzicht/_school.php @@ -1,4 +1,4 @@ -
Compact SWOP, ROPs en BOPs
Download Soort ROPBOP
+
SOP diff --git a/application/views/monpas/compactsop/overzicht/_swv.php b/application/views/monpas/compactsop/overzicht/_swv.php index 3eac258..bfc281d 100644 --- a/application/views/monpas/compactsop/overzicht/_swv.php +++ b/application/views/monpas/compactsop/overzicht/_swv.php @@ -1,6 +1,11 @@ - +
+ + + + + diff --git a/application/views/monpas/pages/sopoverzicht.php b/application/views/monpas/pages/sopoverzicht.php index 9c28925..38f1378 100644 --- a/application/views/monpas/pages/sopoverzicht.php +++ b/application/views/monpas/pages/sopoverzicht.php @@ -1,8 +1,8 @@
-
+
-
+

@@ -28,28 +28,40 @@
+
+ +
+ load->view("monpas/compactsop/overzicht/_school"); ?> +
+ - - load->view("monpas/compactsop/overzicht/_school"); ?> - + +
+ load->view("monpas/compactsop/overzicht/_criterium"); ?> +
+ - - - load->view("monpas/compactsop/overzicht/_bestuur"); ?> - + +
+ load->view("monpas/compactsop/overzicht/_bestuur"); ?> +
+ - - load->view("monpas/compactsop/overzicht/_regio"); ?> - - - load->view("monpas/compactsop/overzicht/_swv"); ?> - - + +
+ load->view("monpas/compactsop/overzicht/_regio"); ?> +
+ + + +
+ load->view("monpas/compactsop/overzicht/_swv"); ?> +
+ + +
- - load->view("monpas/compactsop/overzicht/_criterium"); ?> -
diff --git a/public/js/monpas/models/sopoverzichtmodel.js b/public/js/monpas/models/sopoverzichtmodel.js index f23f6c5..1a2f92e 100644 --- a/public/js/monpas/models/sopoverzichtmodel.js +++ b/public/js/monpas/models/sopoverzichtmodel.js @@ -3,6 +3,8 @@ $(function(){ mh.initSopOverzichtModel = function(){ function fAddSWV(p){ + console.log(p, "p") + var dit = this; this.id = p.id; this.soort = p.soort; @@ -57,6 +59,7 @@ mh.initSopOverzichtModel = function(){ this.bgs = ko.observableArray(); this.scholen = ko.observableArray([]); + this.erIsEenSop = ko.observable(false); if(p.sop === 'T') dit.erIsEenSop(true) @@ -79,38 +82,51 @@ mh.initSopOverzichtModel = function(){ if(b.sop === 'T') dit.erIsEenSop(true) } - function fAddLabelOrg(p){ - var dit = this; - this.id = p.id; - this.soort = p.soort; - this.naam = p.brin ? p.brin = ' ' + p.naamkort: p.naamkort; - this.soort = 'SOP'; - this.kleur = '#1aa3ff'; - this.achtergrond = '#ffffff'; - switch(p.soort){ - case Number(1): dit.soort = 'SWOP' - dit.kleur = '#A28A29'; - dit.achtergrond = '#a07b8e'; + function fAddLabelOrg(p) { + var dit = this; + this.id = p.id; + this.soort = p.soort; + this.naam = p.brin ? p.brin = ' ' + p.naamkort : p.naamkort; + this.soort = ' '; + this.kleur = ko.observable(''); + this.achtergrond = ko.observable(''); + switch (p.soort) { + case "1": + dit.soort = 'SWOP' + dit.kleur('#A28A29'); + dit.achtergrond('#a07b8e'); break; - case Number(2): dit.soort = 'ROP'; - dit.kleur = '#ff8c1a'; - dit.achtergrond = '#ded0d7' + case "2": + dit.soort = 'ROP'; + dit.kleur('#ff8c1a'); + dit.achtergrond('#ded0d7'); break; - case Number(3): dit.soort = 'BOP'; - dit.kleur = '#8cff1a'; - dit.achtergrond = '#f5f0f2'; - break; + case "3": + dit.soort = 'BOP'; + dit.kleur('#8cff1a'); + dit.achtergrond('#f5f0f2'); + break; + case "4": + dit.soort = 'SOP'; + dit.kleur('#1aa3ff'); + dit.achtergrond('#ffffff'); + break; + } - this.plaats = p.plaats; - this.geopend = ko.observable(false); - this.erIsEenSop = ko.observable(false); - if(p.sop === 'T') dit.erIsEenSop(true); - this.label = p.label; + this.plaats = p.plaats; + this.geopend = ko.observable(false); + this.erIsEenSop = ko.observable(false); + if (p.sop === 'T') dit.erIsEenSop(true); + this.label = p.label; + this.orgs = ko.observableArray([]); + if (p.scholen) { + $.each(p.scholen, function (a, b) { + dit.orgs.push(new fAddLabelOrg(b)); + }) + } } - - function fAddSchooljaar(s){ this.id = s.schooljaarnr; this.naam = s.naam; @@ -127,7 +143,7 @@ mh.initSopOverzichtModel = function(){ } else { mh.SopOverzichtModel = { - overzicht : ko.observable(''), + orgsoort : ko.observable(4), geopend : ko.observable(false), schooljaren : ko.observableArray([]), @@ -135,6 +151,7 @@ mh.initSopOverzichtModel = function(){ selectedSchooljaar : ko.observable(''), selectedCriterium : ko.observable(''), selectedOrg : ko.observable(), + topOrg : ko.observable(), gegevens : ko.observable(true), bezig : ko.observable(false), titel : ko.pureComputed( function(){ @@ -211,23 +228,23 @@ mh.initSopOverzichtModel = function(){ fGetOverzicht: function(){ var self = mh.SopOverzichtModel; - console.log(self.selectedSchooljaar(), 'schooljaar') - console.log(self.selectedCriterium(), 'criterium') - - var submitData = { 'schooljaarnr' : self.selectedSchooljaar().id, 'criteriumID' : self.selectedCriterium().id, }; - console.log(submitData) $.post("index.php/monpas/overzichtsop/getoverzicht", submitData , function(data){ - if (data.organisatie){ + if (data){ + self.selectedOrg(''); + self.topOrg(''); - if(Number(self.selectedCriterium().id) == 0) { + if(data.criteriumscholen){ + self.topOrg(new fAddLabelOrg(data.criteriumscholen)); + } - switch (self.orgsoort()) { + if(data.organisatie) { + switch (Number(self.orgsoort())) { case 1: self.selectedOrg(new fAddSWV(data.organisatie)); break; @@ -242,12 +259,7 @@ mh.initSopOverzichtModel = function(){ break; } // switch } - if(Number(self.selectedCriterium().id) > 0){ - $.each(data.organisatie, function(i, o){ - self.overzicht.push(new fAddLabelOrg(i, o)); - }) - } } self.bezig(false); },'json');
Compact SWOP, ROPs en BOPs
Download Soort