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 @@
-
-
-
- Download
- Soort
- Organisatie
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+ Compact SOPs per citerium
+
+
+ Download
+ Soort
+ Organisatie
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
-
+
+
+ Compact SWOP, ROPs en BOPs
+
+
Download
Soort
@@ -33,7 +38,7 @@
style=" height: 30px; width: 30px; padding-left: 8px; background-color: #8cff1a; float: left">
- ROP
+ BOP
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 @@
-
+
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 @@
-
+
+
+
+ Compact SWOP, ROPs en BOPs
+
+
Download
Soort
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');