From 1f6d7e6465e00c8aeca1931a31dbcb139e122a4b Mon Sep 17 00:00:00 2001 From: Monique Date: Mon, 31 Jan 2022 15:55:04 +0100 Subject: [PATCH 1/3] tussenopslag --- .../compactsop/overzicht/_criterium.php | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 application/views/monpas/compactsop/overzicht/_criterium.php diff --git a/application/views/monpas/compactsop/overzicht/_criterium.php b/application/views/monpas/compactsop/overzicht/_criterium.php new file mode 100644 index 0000000..0b8a736 --- /dev/null +++ b/application/views/monpas/compactsop/overzicht/_criterium.php @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + +
DownloadSoortOrganisatie
+
+ + +
\ No newline at end of file From 89baf9bfd96ad8d4443f07d9b440ea0ed42eeed3 Mon Sep 17 00:00:00 2001 From: Monique Date: Mon, 31 Jan 2022 15:55:14 +0100 Subject: [PATCH 2/3] tussenopslag --- .../controllers/monpas/Overzichtsop.php | 180 ++++++++------ .../models/monpas/Compactsop_model.php | 4 + .../models/monpas/Sorteerlabels_model.php | 22 +- .../monpas/compactsop/overzicht/_swv.php | 2 +- .../views/monpas/pages/sopoverzicht.php | 35 ++- public/js/monpas/models/menumodel.js | 1 - public/js/monpas/models/sopoverzichtmodel.js | 223 +++++++++--------- 7 files changed, 277 insertions(+), 190 deletions(-) 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 @@ + data-bind="with: $root.selectedOrg() "> 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 @@

Selecteer een schooljaar:

- +
+

Kies een sorteercriterium:

+ + +
+ + load->view("monpas/compactsop/overzicht/_school"); ?> - - 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/menumodel.js b/public/js/monpas/models/menumodel.js index 54b2496..88a3da4 100644 --- a/public/js/monpas/models/menumodel.js +++ b/public/js/monpas/models/menumodel.js @@ -247,7 +247,6 @@ ls.initMenuModel = function(){ fSetSubmenu: function(){ var self=ls.MenuModel; var that = this; - console.log(this, "this") self.toonScholen(true); $.each(self.menuitems(), function (i, m){ diff --git a/public/js/monpas/models/sopoverzichtmodel.js b/public/js/monpas/models/sopoverzichtmodel.js index 4cd2b20..f23f6c5 100644 --- a/public/js/monpas/models/sopoverzichtmodel.js +++ b/public/js/monpas/models/sopoverzichtmodel.js @@ -15,7 +15,6 @@ mh.initSopOverzichtModel = function(){ if(p.sop === 'T') dit.erIsEenSop(true); this.kamers = ko.observableArray([]); - // dit.scholen = ko.observableArray([]); if (p.kamers){ $.each(p.kamers, function(j,k){ dit.kamers.push(new fAddKamer(k)); @@ -23,11 +22,6 @@ mh.initSopOverzichtModel = function(){ } this.bgs = ko.observableArray([]) this.scholen = ko.observableArray([]); - // if (p.scholen ){ - // $.each(p.scholen, function(i,s){ - // dit.scholen.push(new fAddSchool(s)); - // }) - // } } function fAddKamer(p){ @@ -44,17 +38,11 @@ mh.initSopOverzichtModel = function(){ this.kamers = ko.observableArray() this.bgs = ko.observableArray([]); - // this.scholen = ko.observableArray([]); if (p.bgs){ $.each(p.bgs, function(x,z){ dit.bgs.push(new fAddBG(z)); }) } - // if (p.scholen){ - // $.each(p.scholen, function(i,s){ - // dit.scholen.push(new fAddSchool(s)); - // }) - // } } function fAddBG(p){ @@ -91,24 +79,65 @@ 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'; + break; + case Number(2): dit.soort = 'ROP'; + dit.kleur = '#ff8c1a'; + dit.achtergrond = '#ded0d7' + break; + case Number(3): dit.soort = 'BOP'; + dit.kleur = '#8cff1a'; + dit.achtergrond = '#f5f0f2'; + 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; + + } + + + function fAddSchooljaar(s){ this.id = s.schooljaarnr; this.naam = s.naam; } - if (mh.SopOverzichtModel !== undefined){ + function fAddCriterium(c) { + this.id = c.id; + this.naam = c.naam; + } + + + if (mh.SopOverzichtModel !== undefined){ mh.SopOverzichtModel.initModel(); } else { mh.SopOverzichtModel = { - toporg : ko.observable(''), - selectedOrg : ko.observable(''), - orgsoort : ko.observable(1), - geopend : ko.observable(false), - schooljaren : ko.observableArray([]), - selectedSchooljaar : ko.observable(''), - gegevens : ko.observable(true), - titel : ko.pureComputed( function(){ + overzicht : ko.observable(''), + orgsoort : ko.observable(4), + geopend : ko.observable(false), + schooljaren : ko.observableArray([]), + criteria : ko.observableArray([]), + selectedSchooljaar : ko.observable(''), + selectedCriterium : ko.observable(''), + selectedOrg : ko.observable(), + gegevens : ko.observable(true), + bezig : ko.observable(false), + titel : ko.pureComputed( function(){ if(mh.SopOverzichtModel && mh.SopOverzichtModel.orgsoort()){ switch(mh.SopOverzichtModel.orgsoort()){ case 4 : return 'Compact schoolondersteuningsprofiel (SOP)'; @@ -131,129 +160,99 @@ mh.initSopOverzichtModel = function(){ } }), - - initBindings :function(){ var self = mh.SopOverzichtModel; if (!ko.dataFor(document.getElementById('pagsopoverzicht')) ) { ko.applyBindings(mh.SopOverzichtModel, document.getElementById("pagsopoverzicht")); } - self.initModel(); - }, - - initModel: function(){ - var self =mh.SopOverzichtModel; - self.fGetSchooljaren(); - }, - - fGetSchooljaren: function() { - var self =mh.SopOverzichtModel; - $.post("index.php/monpas/overzichtsop/getSchooljaren", function(data){ + $.post("index.php/monpas/overzichtsop/getSchooljarenEnCriteria", function(data){ self.selectedSchooljaar(null); + self.selectedCriterium(null); self.schooljaren.removeAll(); - if(data) { - $.each(data, function (i, s) { + self.criteria.removeAll(); + self.bezig(true); + if(data){ + + $.each(data.schooljaren, function (i, s) { self.schooljaren.push(new fAddSchooljaar(s)); - });//each - if (self.schooljaren() ) self.selectedSchooljaar(self.schooljaren()[0]); + }); + + if (self.schooljaren()) self.selectedSchooljaar(self.schooljaren()[0]); + $.each(data.criteria, function (i, c) { + self.criteria.push(new fAddCriterium(c)); + }); // each + self.selectedCriterium(self.criteria()[0]); + self.orgsoort(data.orgsoort); + } // if - self.fGetMenu(); - + self.initModel(); },'json') - }, + }, - fGetMenu: function(){ + initModel: function(){ var self = mh.SopOverzichtModel; - var submitData = { - 'schooljaarnr' : self.selectedSchooljaar().id, - 'orgid' : 0 - }; - $.post("index.php/monpas/overzichtsop/getoverzicht", submitData , function(data){ - self.toporg(''); - if (data.organisatie){ - - self.orgsoort(data.soort); - self.orgsoort(data.soort); - switch (self.orgsoort()){ - case 1: self.toporg(new fAddSWV(data.organisatie)); - break; - case 2: self.toporg(new fAddKamer(data.organisatie)); - break; - case 3: self.toporg(new fAddBG(data.organisatie)); - break; - case 4: self.toporg(new fAddSchool(data.organisatie)); - break; - } // switch - self.selectedOrg(self.toporg())} - },'json'); + self.fGetOverzicht(); }, fChangeSchooljaar: function() { var self = mh.SopOverzichtModel; if (!self.selectedSchooljaar()) return; + if(self.bezig()) return; self.fGetOverzicht(); }, + fChangeCriterium: function() { + var self = mh.SopOverzichtModel; + if (!self.selectedCriterium()) return; + if(self.bezig()) return; + self.fGetOverzicht(); + }, fGetOverzicht: function(){ - var self =mh.SopOverzichtModel; + var self = mh.SopOverzichtModel; + + console.log(self.selectedSchooljaar(), 'schooljaar') + console.log(self.selectedCriterium(), 'criterium') + var submitData = { 'schooljaarnr' : self.selectedSchooljaar().id, - 'orgid' : self.selectedOrg().id + 'criteriumID' : self.selectedCriterium().id, }; + console.log(submitData) + $.post("index.php/monpas/overzichtsop/getoverzicht", submitData , function(data){ if (data.organisatie){ - self.orgsoort(data.soort); - switch (self.orgsoort()){ - case 1: self.selectedOrg(new fAddSWV(data.organisatie)); - break; - case 2: self.selectedOrg(new fAddKamer(data.organisatie)); - break; - case 3: self.selectedOrg(new fAddBG(data.organisatie)); - break; - case 4: self.selectedOrg(new fAddSchool(data.organisatie)); - break; - } // switch + + + if(Number(self.selectedCriterium().id) == 0) { + + switch (self.orgsoort()) { + case 1: + self.selectedOrg(new fAddSWV(data.organisatie)); + break; + case 2: + self.selectedOrg(new fAddKamer(data.organisatie)); + break; + case 3: + self.selectedOrg(new fAddBG(data.organisatie)); + break; + case 4: + self.selectedOrg(new fAddSchool(data.organisatie)); + 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'); }, - // fGetAlfabetisch: function(){ - // var self =mh.SopOverzichtModel; - // if(self.selectedOrg().soort === '3' || self.selectedOrg().soort === '4'){ - // self.fGetOverzicht(); - // return; - // } - // var submitData = { - // 'schooljaarnr' : self.selectedSchooljaar().id, - // 'orgid' : self.selectedOrg().id - // }; - // $.post("index.php/monpas/overzichtsop/getAlfabetisch", submitData , function(data){ - // if (data.organisatie){ - // self.orgsoort(data.soort); - // if(self.orgsoort() === '1') self.selectedOrg(new fAddSWV(data.organisatie)); - // if(self.orgsoort() === '2') self.selectedOrg(new fAddKamer(data.organisatie)); - // } - // },'json'); - // }, - - // fToggleGeopend: function(){ - // var self =mh.SopOverzichtModel; - // this.geopend(!this.geopend()); - // }, - - // fSwitchOrg: function(){ - // var self =mh.SopOverzichtModel; - // if (self.selectedOrg() === undefined) return; - // if (this.id === self.selectedOrg().id) return; - // self.orgsoort(''); - // self.selectedOrg(this); - // if (!self.alfabetisch()) self.fGetOverzicht(); - // if (self.alfabetisch()) self.fGetAlfabetisch(); - // - // }, - fOpenPDF: function(){ var self =mh.SopOverzichtModel; var dit = this; From 1e88478891cb67565df853521b772538293fa2df Mon Sep 17 00:00:00 2001 From: Monique Date: Tue, 8 Feb 2022 12:07:21 +0100 Subject: [PATCH 3/3] 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 @@ -
Download
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