tussenopslag

This commit is contained in:
Monique
2022-01-31 15:55:14 +01:00
parent 1f6d7e6465
commit 89baf9bfd9
7 changed files with 277 additions and 190 deletions
+113 -67
View File
@@ -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;
@@ -28,4 +28,8 @@ class Compactsop_model extends MY_Model
header( 'Content-Length: ' . filesize( $this->compactsoppath.$sop->pdfnaam ) );
readfile( $this->compactsoppath . $sop->pdfnaam );
}
}
@@ -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 ";
}
}
@@ -1,5 +1,5 @@
<table style="border: 1px solid #A28A29; margin-top: 30px;"
data-bind="with: $root.selectedOrg()">
data-bind="with: $root.selectedOrg() ">
<thead>
<tr style="border-bottom: 1px solid white;">
<th style="padding: 5px; color: white; background-color:#A28A29">Download</th>
@@ -11,25 +11,44 @@
<p>Selecteer een schooljaar:</p>
<select data-bind=" options: schooljaren,
<select style="height: 25px; width: 150px;"
data-bind=" options: schooljaren,
optionsText: 'naam',
value: $root.selectedSchooljaar,
event: {change: fChangeSchooljaar}">
</select>
<div data-bind="visible: criteria().length > 1 && orgsoort() != 4">
<p style="margin-top : 20px;">Kies een sorteercriterium:</p>
<select style="height: 25px; width: 150px;"
data-bind=" options : criteria,
optionsText : 'naam',
value : selectedCriterium,
event : {change: fChangeCriterium}">
</select>
</div>
<!-- ko if: orgsoort() == 4 -->
<?php $this->load->view("monpas/compactsop/overzicht/_school"); ?>
<!--/ko -->
<!-- ko if: orgsoort() == 3 -->
<?php $this->load->view("monpas/compactsop/overzicht/_bestuur"); ?>
<!-- ko if: selectedCriterium() && selectedCriterium().id == 0 -->
<!-- ko if: orgsoort() == 3 -->
<?php $this->load->view("monpas/compactsop/overzicht/_bestuur"); ?>
<!--/ko -->
<!-- ko if: orgsoort() == 2 -->
<?php $this->load->view("monpas/compactsop/overzicht/_regio"); ?>
<!--/ko -->
<!-- ko if: orgsoort() == 1 -->
<?php $this->load->view("monpas/compactsop/overzicht/_swv"); ?>
<!--/ko -->
<!--/ko -->
<!-- ko if: orgsoort() == 2 -->
<?php $this->load->view("monpas/compactsop/overzicht/_regio"); ?>
<!--/ko -->
<!-- ko if: orgsoort() == 1 -->
<?php $this->load->view("monpas/compactsop/overzicht/_swv"); ?>
<!-- ko if: selectedCriterium() && selectedCriterium().id > 0 -->
<?php $this->load->view("monpas/compactsop/overzicht/_criterium"); ?>
<!--/ko -->
</div>
-1
View File
@@ -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){
+111 -112
View File
@@ -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;