Files
monpas/public/js/monpas/models/overzichtscoresmodel.js
T
2021-07-10 16:25:16 +02:00

322 lines
9.1 KiB
JavaScript

$(function(){
ls.initOverzichtScoresModel= function(){
function fAddSWV(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.brin = p.brin
this.naam = p.naamkort
this.plaats = p.plaats
this.geopend = ko.observable(false);
dit.kamers = ko.observableArray([]);
if (p.kamers ){
$.each(p.kamers, function(j,k){
dit.kamers.push(new fAddKamer(k));
})
}
}
function fAddKamer(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.brin = p.brin
this.naam = p.naamkort
this.plaats = p.plaats
this.geopend = ko.observable(false);
this.bgs = ko.observableArray([]);
if (p.bgs){
$.each(p.bgs, function(x,z){
dit.bgs.push(new fAddBG(z));
})
}
}
function fAddBG(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.brin = p.brin
this.naam = p.naamkort
this.plaats = p.plaats
this.geopend = ko.observable(false);
this.scholen = ko.observableArray([]);
if (p.scholen){
$.each(p.scholen, function(a,b){
dit.scholen.push(new fAddSchool(b));
})
}
}
function fAddSchool(p){
var dit = this;
this.id = p.id;
this.soort = p.soort
this.brin = p.brin
this.naam = p.naamkort
this.plaats = p.plaats
}
function fAddOrgversion(p){
this.id = p.id; //orgversion id
this.periodenummer = p.periodenummer
this.versie_id = p.versie_id
this.vorm = p.vorm
this.scoretype = p.scoretype
this.naam = p.naam
this.geldigvanaf = p.geldigvanaf;
this.geldigtm = p.geldigtm;
this.invullentm = p.invullentm;
this.info = ko.computed(function(){
var infostr=this.naam + " - periode " + this.periodenummer ;
infostr += " van " + this.geldigvanaf + " t/m " + this.geldigtm;
return infostr;
},this)
}
function fAddUser(p){
this.userid = p.id;
this.naam = p.fullname;
}
function fAddStandaard(p){
this.naam = p.omschrijving;
this.onvoldoende = p.onvol;
this.voldoende = p.vol;
this.goed = p.goed;
this.fvID = p. fvID;
this.ijkpuntID = p.ijkpuntID;
this.oordeelid = ko.observable(p.oordeelid);
this.normid = ko.observable(p.normid);
this.norm = ko.observable(p.norm);
this.toelichting = p.toelichting;
}
if (ls.OverzichtScoresModel !== undefined){
ls.OverzichtScoresModel.initModel();
}
else {
ls.OverzichtScoresModel = {
toporg : ko.observableArray([]),
selectedOrg : ko.observable(''),
orgsoort : ko.observable(1),
orgversions : ko.observableArray([]),
selectedOrgversion : ko.observable(''),
standaarden : ko.observableArray([]),
normen : ko.observableArray([
{normid: 4, norm:'goed'},
{normid: 3, norm:'voldoende'},
{normid: 2, norm:'onvoldoende'},
{normid: 1, norm:'zeer zwak'}
]),
users : ko.observableArray(),
selectedUser : ko.observable(),
usernivo : ko.observable(), // het nivo van de ingelogde user; nodig om te bepalen of individuele gegevens moeten worden opgehaald
magWijzigen : ko.observable(false),
bezig : ko.observable(false),
initBindings :function(){
var self = ls.OverzichtScoresModel;
if (!ko.dataFor(document.getElementById('pagoverzichtscores')) ) {
ko.applyBindings(ls.OverzichtScoresModel, document.getElementById("pagoverzichtscores"));
}
self.initModel();
},
initModel: function(){
var self =ls.OverzichtScoresModel;
self.toporg('');
$.post("index.php/monpas/rapijkpunten/getorgs", function(data){
if (data.organisatie){
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
$.post('index.php/monpas/rapijkpunten/getusernivo', function(result){
self.usernivo(result);
self.selectedOrg(self.toporg());
self.fCheckEditRecht();
},'json');
}
},'json');
},
fCheckEditRecht: function(){
var self =ls.OverzichtScoresModel;
$.post('index.php/monpas/overzichtscores/geteditrecht/'+self.selectedOrg().id, function(data){
if (data){
self.magWijzigen(data);
}
self.fSwitchLevel();
}, 'json');
},
fToggleGeopend: function(){
this.geopend(!this.geopend());
},
fSwitchOrg: function(){
var self = ls.OverzichtScoresModel;
if (self.selectedOrg() == undefined) return;
if (this.id == self.selectedOrg().id) return;
self.selectedOrg(this);
self.fCheckEditRecht();
},
fSwitchLevel: function(){
var self = ls.OverzichtScoresModel;
if (self.selectedOrg() == undefined) return;
if (this.id == self.selectedOrg().id) return;
self.orgversions.removeAll();
if (self.selectedOrg().soort < 4) return;
$.post("index.php/monpas/rapijkpunten/getperiodes3/" + self.selectedOrg().id, function(data){
if (data){
$.each(data,function(i,p){
self.orgversions.push(new fAddOrgversion(p));
})
}
},'json');
},
fChangeUser: function(){
var self = ls.OverzichtScoresModel;
if (self.selectedOrgversion() == undefined) return;
if (self.selectedOrg() == undefined) return;
var submitData = {orgversie : self.selectedOrgversion().id,
orgid : self.selectedOrg().id}
$.post("index.php/monpas/rapijkpunten/getusers", submitData, function(results){
self.users.removeAll();
if (results){
$.each(results, function(i,p){
self.users.push(new fAddUser(p));
}); // each
self.selectedUser(self.users()[0]);
}
if (self.selectedUser()) {self.fGetUserScores(); }
},'json'); // post
},
fGetUserScores: function(){
var self = ls.OverzichtScoresModel;
if (! self.selectedOrgversion()) return;
var submitData ='';
if ( self.selectedOrg() == undefined ||
self.selectedOrgversion() == undefined ||
self.users() == undefined ||
self.usernivo > 1 ) return;
var orguserid =false;
if (self.selectedUser() != undefined){ orugserid= self.selectedUser().userid; }
submitData = { orguserid : orguserid,
orgid : self.selectedOrg().id,
orgversieid : self.selectedOrgversion().id}
$.post("index.php/monpas/overzichtscores/getscores" , submitData, function(data){
self.fFillScores(data)
},'json');
},
fFillScores: function(data){
var self =ls.OverzichtScoresModel;
self.standaarden.removeAll();
if (data ){
$.each(data, function(i,p){
self.standaarden.push(new fAddStandaard(p));
})
}
},
fChangeVersion2: function(){
var self = ls.OverzichtScoresModel;
if (self.selectedOrgversion() == undefined) return;
if (self.selectedOrg().soort == 4 && self.selectedOrgversion().vorm==2 && self.usernivo()<=1) {
self.fChangeUser();
}
else {
self.users.removeAll();
var submitData = { orguserid : false,
orgversieid : self.selectedOrgversion().id,
orgid : self.selectedOrg().id}
if (! self.selectedOrgversion()) return;
self.standaarden.removeAll();
$.post("index.php/monpas/overzichtscores/getscores", submitData, function(results){
if (results ){
$.each(results, function(i,p){
self.standaarden.push(new fAddStandaard(p));
})
}
},'json');
}
},
fToonToelichting: function(){
var self = ls.OverzichtScoresModel;
var dit = this;
var toelichting = '';
if (dit.toelichting != undefined) toelichting = dit.toelichting;
apprise( dit.naam + '<br/>Toelichting: ' + toelichting);
},
fPrintStandaarden :function(){
var self = ls.OverzichtScoresModel;
if (! self.selectedOrg() ) return;
if (! self.selectedOrg().soort == 4) return;
var versie = self.selectedOrgversion().naam+' - periode ' +
self.selectedOrgversion().periodenummer + ' van ' +
self.selectedOrgversion().geldigvanaf + ' t/m ' +
self.selectedOrgversion().geldigtm;
var data = {school : self.selectedOrg().naam,
versie: versie,
standaarden: ko.toJSON(self.standaarden())}
data=JSON.stringify(data);
var $form = $("<form method='post' action='index.php/monpas/overzichtscores/pdfstandaarden' target='_blank'>").append($('<input type = "hidden" name="data" id ="data">').val(data) );
$form.appendTo("body").submit();
},
fSaveOordeel: function(){
var self =ls.OverzichtScoresModel;
if (! self.magWijzigen()) return;
var dit = this;
$.each(self.normen(), function(i,p){
if (p.normid == dit.normid()) {
return false;
}
});
var sd = {'oordeelID' : this.oordeelid(),
'fvID' : this.fvID,
'ijkID' : this.ijkpuntID,
'normID' : this.normid()
}
$.post("index.php/monpas/overzichtscores/saveOordeel", sd, function(newid){
if (newid){
self.fGetUserScores();
}
});
}
} ; // definition van model
ls.OverzichtScoresModel.initBindings();
}; // else
}// function initOverzichtScoresModel
});