Files
monpas/public/js/monpas/models/invulmodel.js
T
2021-10-08 12:52:42 +02:00

563 lines
21 KiB
JavaScript

$(function(){
var timeout;
mh.initInvulModel = function(){
function fAddSchooljaar(s){
this.nummer = s.schooljaarnr;
this.naam = s.naam;
}
function fAddArrangement( x, a){
var dit = this;
this.arrangementid = a.id;
this.naam = a.naam;
this.looptijd = a && a.lengte ==='L' ?'≥ 6 wkn': '< 6 wkn';
this.leeftijd = a.leeftijd;
this.aantal = ko.observable(a && a.huidig.aantal ? a.huidig.aantal : 0);
this.bewaarAantal = ko.observable(a && a.huidig.aantal ? a.huidig.aantal : 0);
this.selected = ko.observable(false);
this.archief = ko.observable(false);
if(a.huidig.archief && a.huidig.archief === 'T'){
dit.archief(true);
}
}
function fAddTLV(y,t){
this.tlvid = t.id;
this.aantal = ko.observable(t.aantal ? t.aantal : 0);
this.soort = ko.observable(t.soort ? t.soort.toLowerCase(): '');
}
if (mh.InvulModel !== undefined){
mh.InvulModel.initModel();
}
else {
mh.InvulModel = {
schooljaren : ko.observableArray([]),
arrangementen : ko.observableArray([]),
selectedSchooljaar : ko.observable(''),
schooljanee : ko.observable(false),
editok : ko.observable(false),
meetellen : ko.observable(false),
heeftleerlingen : ko.observable(false),
aantalleerlingen : ko.observable(0),
bewaarleerlingen : ko.observable(0),
toontabel : ko.observable(false),
druk : ko.observable(false),
nieuwArrangement : ko.observable(false),
naamNieuw : ko.observable(''),
leeftijdNieuw : ko.observable(''),
aantalNieuw : ko.observable(''),
looptijdNieuw : ko.observable('L'),
laag : ko.observable(0),
bewaarLaag : ko.observable(0),
laagID : ko.observable(0),
midden : ko.observable(0),
bewaarMidden : ko.observable(0),
middenID : ko.observable(0),
hoog : ko.observable(0),
bewaarHoog : ko.observable(0),
hoogID : ko.observable(0),
licht : ko.observable(0),
bewaarLicht : ko.observable(0),
lichtID : ko.observable(0),
zwaar : ko.observable( 0),
bewaarZwaar : ko.observable(0),
zwaarID : ko.observable(0),
notitie : ko.observable(''),
totaalTLVs : ko.pureComputed(function(){
var som = 0;
if(mh.InvulModel){
som = Number(mh.InvulModel.laag()) + Number(mh.InvulModel.midden()) +
Number(mh.InvulModel.hoog())+ Number(mh.InvulModel.licht())+
Number(mh.InvulModel.zwaar())
return som;
}
}),
totaalSO : ko.pureComputed(function(){
var som = 0;
if(mh.InvulModel){
som = Number(mh.InvulModel.laag()) + Number(mh.InvulModel.midden()) +
Number(mh.InvulModel.hoog());
return som;
}
}),
totaalSBO : ko.pureComputed(function(){
var som = 0;
if(mh.InvulModel){
som = Number(mh.InvulModel.licht())+
Number(mh.InvulModel.zwaar())
return som;
}
}),
totaalArr : ko.pureComputed(function(){
var som = 0;
if(mh.InvulModel){
if(mh.InvulModel.arrangementen() || mh.InvulModel.aantalNieuw()){
if(mh.InvulModel.arrangementen()) {
for(var x = 0; x < mh.InvulModel.arrangementen().length; x++){
if(mh.InvulModel.arrangementen()[x].archief()== false) {
som = som + Number(mh.InvulModel.arrangementen()[x].aantal());
}
}
}
if(mh.InvulModel.aantalNieuw()){
som = som + Number(mh.InvulModel.aantalNieuw());
}
}
return som;
}
}),
tekensTeGaan : ko.pureComputed(function(){
var aantal = 20;
if(mh.InvulModel && mh.InvulModel.naamNieuw()){
aantal = 20 - Number(mh.InvulModel.naamNieuw().length)
}
return aantal;
}),
initBindings :function(){
var self = mh.InvulModel;
ko.applyBindings(mh.InvulModel, document.getElementById("paginvullenextra"));
$.post('index.php/monpas/omvang/getrechten', function (result) {
self.editok(result);
self.initModel();
}, 'json');
},
initModel: function(){
var self = mh.InvulModel;
$.post("index.php/shared/organisaties/controleerschool", function (result){
self.schooljanee(result);
if (self.schooljanee() ){
self.druk(true);
self.fGetSchooljaren();
}
},'json');
},
fGetSchooljaren: function(callback){
var self = mh.InvulModel;
$.post("index.php/shared/schooljaren/getschooljaren", function(data){
self.selectedSchooljaar('')
self.schooljaren.removeAll();
if(data) {
$.each(data, function (i, s) {
self.schooljaren.push(new fAddSchooljaar(s));
});//each
} // if
},'json')
},
fSelecteerSchooljaar: function(){
var self = mh.InvulModel;
if(self.selectedSchooljaar() && self.selectedSchooljaar().nummer > 0){
self.fGetOmvang();
}
},
fGetOmvang: function(){
var self = mh.InvulModel;
self.aantalleerlingen(0);
self.bewaarleerlingen(0);
self.laag(0);
self.bewaarLaag(0);
self.laagID(0);
self.midden(0);
self.bewaarMidden(0);
self.middenID(0);
self.hoog(0);
self.bewaarHoog(0);
self.hoogID(0);
self.licht(0);
self.bewaarLicht(0);
self.lichtID(0);
self.zwaar( 0);
self.bewaarZwaar(0);
self.zwaarID(0);
self.notitie('');
self.arrangementen.removeAll();
$.post("index.php/monpas/omvang/getextraomvang/" + self.selectedSchooljaar().nummer, function(result){
if(result){
self.meetellen(false);
if((result.aantal)) {
self.aantalleerlingen(Number(result.aantal.aantal));
self.bewaarleerlingen(Number(result.aantal.aantal));
self.notitie(result.aantal.notitie);
if(result.aantal.meetellen == 'T'){
self.meetellen(true);
}
else{self.meetellen(false)}
}
if(result.tlvs){
$.each(result.tlvs, function(i, t){
if(t.zwaarte)
switch(t.zwaarte){
case 'LAAG' : self.laag(t.aantal);
self.bewaarLaag(t.aantal)
self.laagID(t.id);
break;
case 'MIDDEN': self.midden(t.aantal);
self.bewaarMidden(t.aantal);
self.middenID(t.id);
break;
case 'HOOG' : self.hoog(t.aantal);
self.bewaarHoog(t.aantal);
self.hoogID(t.id)
break;
case 'LICHT' : self.licht(t.aantal);
self.bewaarLicht(t.aantal);
self.lichtID(t.id);
break;
case 'ZWAAR' : self.zwaar(t.aantal);
self.bewaarZwaar(t.aantal);
self.zwaarID(t.id)
}
})
}
if(result.arrangementen){
$.each(result.arrangementen, function(x, a){
self.arrangementen.push(new fAddArrangement(x,a))
});
}
}
self.toontabel(true)
},'json');
},
fSaveAantalLeerlingen: function(){
var self = mh.InvulModel;
if(isNaN(self.aantalleerlingen())){
apprise("Vul gehele getallen in.");
self.aantalleerlingen(self.bewaarleerlingen());
return;
}
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(function () {
var submitData = {
'aantalleerlingen' : self.aantalleerlingen(),
'schooljaarnr' : self.selectedSchooljaar().nummer
};
$.post("index.php/monpas/omvang/saveAantalLeerlingen", submitData, function (result) {
if(result){}
}, 'json');
}, 1000);
},
fSaveSO: function(){
var self = mh.InvulModel;
var message = false;
if(isNaN(self.laag())){
self.laag(self.bewaarLaag());
message = true;
}
if(isNaN(self.midden())){
self.midden(self.bewaarMidden());
message = true;
}
if(isNaN(self.hoog())){
self.hoog(self.bewaarHoog());
message = true;
}
if(message){
apprise("Vul gehele getallen in.");
return;
}
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(function () {
var submitData = {
'laag' : self.laag(),
'midden' : self.midden(),
'hoog' : self.hoog(),
'laagID' : self.laagID(),
'middenID' : self.middenID(),
'hoogID' :self.hoogID(),
'schooljaarnr': self.selectedSchooljaar().nummer,
};
$.post("index.php/monpas/omvang/saveTlvsSO", submitData, function (result) {
if(result){
if(result.laag) self.laagID(result.laag);
if(result.midden) self.middenID(result.midden);
if(result.hoog) self.hoogID(result.hoog);
}
}, 'json');
});
},
fSaveSBO: function(){
var self = mh.InvulModel;
var message = false;
if(isNaN(self.licht())){
self.licht(self.bewaarLicht());
message = true;
}
if(isNaN(self.zwaar())){
self.zwaar(self.bewaarZwaar());
message = true;
}
if(message){
apprise("Vul gehele getallen in.");
return;
}
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(function () {
var submitData = {
'licht' : self.licht(),
'zwaar' : self.zwaar(),
'lichtID' : self.lichtID(),
'zwaarID' : self.zwaarID(),
'schooljaarnr': self.selectedSchooljaar().nummer,
};
$.post("index.php/monpas/omvang/saveTlvsSBO", submitData, function (result) {
if(result){
if(result.licht) self.lichtID(result.licht);
if(result.zwaar) self.zwaarID(result.zwaar);
}
}, 'json');
});
},
fSaveLlnArr: function(versie){
var self = mh.InvulModel;
var dit = this;
if(isNaN(dit.aantal())){
apprise("Vul gehele getallen in.");
dit.aantal(dit.bewaarAantal());
return;
}
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(function () {
var submitData = {
'aantal' : dit.aantal(),
'id' : dit.arrangementid,
'schooljaar' : self.selectedSchooljaar().nummer
};
$.post("index.php/monpas/omvang/saveLlnArrangement/", submitData, function () {
});
}, 600);
},
fDeleteArrangement: function(){
var self = mh.InvulModel;
$.post("index.php/monpas/omvang/deleteArrangement/" + this.arrangementid, function (result) {
if(result) {
if (result !== "gelukt") {
apprise( result);
}
else{
$.post("index.php/monpas/omvang/getArrangementen/" + self.selectedSchooljaar().nummer, function(arr){
self.arrangementen.removeAll();
if(arr){
self.arrangementen.removeAll();
$.each(arr, function(i, a){
self.arrangementen.push(new fAddArrangement(i, a));
});
}
}, 'json');
}
}
}, 'json'); // delete arrangement
},
fVerbergArrangement: function(versie, data) {
var self = mh.InvulModel;
var dit = this;
if(Number(this.aantal()) > 0){
apprise("Aan dit arrangement zijn in het gekozen schooljaar leerlingen gekoppeld. <br> " +
"Het kan daarom niet worden verborgen"
);
return;
}
if(Number(this.aantal()) === 0){
this.archief(true);
var submitData ={
'arrangementid' : dit.arrangementid,
'schooljaarnr' : self.selectedSchooljaar().nummer
};
$.post("index.php/monpas/omvang/archiveerArrangement/" ,submitData, function (result) {
}, 'json');
}
},
fToggleNieuwArrangement: function(){
var self = mh.InvulModel;
self.nieuwArrangement(!self.nieuwArrangement());
if(!self.nieuwArrangement()){
self.naamNieuw('');
self.leeftijdNieuw('');
self.looptijdNieuw('L');
self.aantalNieuw(0);
}
},
fSaveNieuwArrangement: function(){
var self = mh.InvulModel;
if(isNaN(self.aantalNieuw())){
apprise("Vul gehele getallen in.");
self.aantalNieuw(0);
return;
}
var naam = self.naamNieuw().trim();
if(naam.length < 3){
apprise("De naam moet minstens 3 tekens lang zijn.");
return;
}
if(naam.length > 20){
apprise("De naam mag maximaal 20 tekens lang zijn.");
return;
}
var submitData = {
'naam' : self.naamNieuw(),
'leeftijd' : self.leeftijdNieuw(),
'aantal' : self.aantalNieuw(),
'looptijd' : self.looptijdNieuw(),
'schooljaarnr': self.selectedSchooljaar().nummer
};
$.post("index.php/monpas/omvang/saveNieuwArrangement/", submitData, function (result) {
if (result) {
self.nieuwArrangement(false);
self.naamNieuw('');
self.leeftijdNieuw('');
self.looptijdNieuw('L');
self.aantalNieuw(0);
$.post("index.php/monpas/omvang/getArrangementen/" + self.selectedSchooljaar().nummer, function(arr){
if(arr){
self.arrangementen.removeAll();
$.each(arr, function(i, a){
self.arrangementen.push(new fAddArrangement(i, a));
});
} // if arr
},'json')
} // if result
},'json');
},
fToonArchief: function(){
var self = mh.InvulModel;
$.each(self.arrangementen(), function(i, a){
a.archief(false);
});
$.post("index.php/monpas/omvang/toonAlleArrangmenten/" + self.selectedSchooljaar().nummer, function (result) {
}, 'json');
},
fUpdateNotitie: function(){
var self = mh.InvulModel;
if(Number(self.aantalleerlingen() == 0)){
apprise("Vul eerst het aantal leerlingen in.");
return;
}
if (timeout){
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(function(){
var submitData= {
'notitie' : self.notitie(),
'schooljaarnr': self.selectedSchooljaar().nummer
}
$.post("index.php/monpas/omvang/bewaarNotitie/", submitData, function (result) {
}, 'json');
}, 600);
},
fTelMee: function(){
var self = mh.InvulModel;
if(Number(self.aantalleerlingen() == 0)){
apprise("Vul eerst het aantal leerlingen in.");
return;
}
self.meetellen(!self.meetellen());
var dit = this;
var meetellen ='T';
if(!dit.meetellen()){
meetellen = 'F';
}
var submitData = {
'meetellen' : meetellen,
'schooljaar': self.selectedSchooljaar().nummer
}
$.post("index.php/monpas/omvang/gegevensmeetellen", submitData);
},
} ; // definition van model
mh.InvulModel.initBindings();
} // else
}// function init
});