Files
monpas/public/js/monpas/models/compactsopmodel.js
T
2022-10-25 14:24:10 +02:00

929 lines
37 KiB
JavaScript

$(function(){
var timeout;
mh.initCompactSopModel = function(){
function fAddSchooljaar(s){
this.id = s.schooljaarnr;
this.naam = s.naam;
}
function fAddSchool(s){
this.schoolid = s.id;
this.naam = s.naam;
this.straat = ko.observable(s && s.straat ? s.straat: '');
this.brin = s.brin;
this.plaats = ko.observable(s && s.plaats? s.plaats :'');
this.foon = ko.observable(s && s.telefoon ? s.telefoon : '');
this.email = ko.observable(s && s.email1 ? s.email1: '');
this.site = ko.observable(s && s.web ? s.web: '')
this.logo = ko.observable(s.logo)
}
function fAddOnderdeel(i, o) {
var dit = this;
this.sopid = o.id;
this.modulenr = o.modulenr;
this.toonnummer = i+1;
this.type = o.type;
this.naam = o.naam;
this.naamkort = o.naamkort;
this.groepen = ko.observable(o && o.groepen && o.groepen > 8 ? o.groepen : 0);
this.schooltype = o.schooltype;
this.versie = o.versie;
this.schooljaar = o.schooljaar;
this.aantallln = ko.observable(o && o.aantallln ? o.aantallln : 0);
this.erZijnOrgVersies = o.erZijnOrgVersies === 'T';
this.gekozenVersie = ko.observable('');
this.selected = ko.observable(false); // selected om geplaatst te worden
this.opA4 = ko.observable(false); // op een pagina gezet
this.gekozenVergelijking = ko.observable();
this.orgversies = ko.observableArray([]);
this.budgetversies = ko.observableArray([]);
this.omvangschooljaren = ko.observableArray([]);
this.selectedLijstId = ko.observable(0);
if(o.filledversies){
$.each(o.filledversies, function(z,v){
dit.orgversies.push(new fAddOrgversie(z, v))
});
}
if(o.budgetversies){
$.each(o.budgetversies, function(n,b){
dit.budgetversies.push(new fAddBudgetversie(n, b))
});
}
if(o.gevuldeschooljaren){
$.each(o.gevuldeschooljaren, function(v, g){
dit.omvangschooljaren.push(new fAddOmvangSchooljaar(v,g))
});
}
this.geenGegevens = ko.pureComputed(function(){
if (o.gegevens == "F") return true
else return false
},this)
this.versies = ko.observable(false);
this.isBreedBlok = ko.pureComputed(function(){
if (this.groepen() >=9 ) return true
if (this.type == "FIN" || this.type=="LIJSTBREED") return true
return false
}, this)
this.infotekst = ko.pureComputed(function(){
var schooljaar = mh.CompactSopModel.selectedSchooljaar() ? mh.CompactSopModel.selectedSchooljaar().naam : '' ;
var tekst = ''
var diversiteit = o.erIsDiversiteit === 'T' ? true : false
if(this.type=="DIV") {
if (diversiteit) return this.versie
if (!diversiteit && (Number(this.modulenr) == 660 && Number(mh.CompactSopModel.selectedSchooljaar().id) > 8)
||!diversiteit && (Number(mh.CompactSopModel.orgsoortnummer()) < 4))
return "De diversiteitsmeter " + schooljaar + " is niet ingevuld."
else
return "Vul eerst de diversiteitsmeter " + schooljaar + " in.";
}
if (this.type== "FIN"){
var jaar1 = mh.CompactSopModel.selectedSchooljaar() ? mh.CompactSopModel.selectedSchooljaar().naam.substr(0, 4) : "" ;
var jaar2 = mh.CompactSopModel.selectedSchooljaar() ? mh.CompactSopModel.selectedSchooljaar().naam.substr(5, 4) : "" ;
var jaren = jaar1 + ' en ' + jaar2;
if (!this.budgetversies() || this.budgetversies().length === 0) return "De monitoren financiën " + jaren + " zijn niet ingevuld."
if (this.budgetversies().length == 1) return "Kalenderjaar: " + this.budgetversies()[0].kalenderjaar()
if (this.budgetversies().length > 1) return "Meerdere versies beschikbaar."
return 'fout'
}
if (this.type=="OMVANG"){
if(this.omvangschooljaren().length > 1) return "Meerdere schooljaren beschikbaar."
if(this.omvangschooljaren().length == 1){
var tlvs = "geen tlvs, ";
var arr = "geen arrangementen";
if(this.omvangschooljaren()[0].erZijnTLVs == true){
tlvs = "tlvs, ";
}
if(this.omvangschooljaren()[0].erZijnArrangementen == true){
arr = "arrangementen ";
}
return "Schooljaar " + this.omvangschooljaren()[0].schooljaarnaam + ', '+ tlvs + arr
}
if(this.omvangschooljaren().length == 0){
if(Number(mh.CompactSopModel.orgsoortnummer()) < 4) return "Er zijn geen gegevens ingevuld."
else
return "Vul eerst gegevens bij dit instrument in."
}
}
if(this.type=="LIJST" || this.type =="LIJSTBREED" ) {
if (this.orgversies().length > 1) return "Meerdere versies beschikbaar."
if (this.orgversies().length == 1) return this.naam;
if (this.orgversies().length == 0 && this.erZijnOrgVersies) {
if (Number(mh.CompactSopModel.orgsoortnummer()) < 4) return "Er zijn geen lijsten ingevuld."
else return "Vul eerst een lijst bij dit instrument in."
}
if (!this.erZijnOrgVersies) return "Voor dit instrument is (nog) geen lijst beschikbaar."
return ''
}
},this)
}
function fAddTLVs(x,t){
var dit = this;
this.index = x;
this.tlvid = t.id;
this.schooljaarnr = t.schooljaarnr;
this.schooljaar = t.naam;
this.sbo = ko.observable(t && t.sbo ? t.sbo: 0 );
this.so = ko.observable(t && t.so ? t.so: 0 );
this.bewaarSbo = ko.observable(t && t.sbo ? t.sbo: 0 );
this.bewaarSo = ko.observable(t && t.so ? t.so: 0 );
this.totaal = ko.observable(parseInt(dit.sbo()) + parseInt(dit.so()));
this.selected = ko.observable(false);
}
function fAddArrangementen( a){
var dit = this;
this.arrangementid = a.id;
this.naam = ko.observable(a.naam);
this.schooljaarnr = a.schooljaarnr;
this.schooljaar = a.schooljaar;
this.looptijd = ko.observable(a && a.lengte ==='L' ?'≥ 6 wkn': '< 6 wkn' );
this.leeftijd = ko.observable(a.leeftijd);
this.aantal = ko.observable(a && a.aantal ? a.aantal : 0);
this.bewaarAantal = ko.observable(a && a.aantal ? a.aantal : 0);
this.bewaarAantalV = ko.observable(a && a.aantalV ? a.aantalV : 0);
this.aantalV = ko.observable(a && a.aantalV ? a.aantalV : 0);
this.selected = ko.observable(false);
this.archief = ko.observable(false);
if(a.archief === 'T'){
dit.archief(true);
}
this.archiefV = ko.observable(false);
if(a.archiefV === 'T'){
dit.archiefV(true);
}
}
function fAddBudgetversie(n, b){
this.budgetid = ko.observable(n + 1);
this.kalenderjaar = ko.observable(b);
}
function fAddOmvangSchooljaar(v,g){
this.schooljaarnaam = g.naam;
this.schooljaarnr = g.schooljaarnr;
this.erZijnTLVs = g.erZijnTLVs;
this.erZijnArrangementen = g.erZijnArrangementen;
this.orgsmetlln = g.orgsmetlln;
this.orgsmettlvs = g.orgsmettlvs;
this.orgsmetarrs = g.orgsmetarrs;
}
function fAddOrgversie(z, v) {
this.orgversieid = ko.observable(v.id);
this.naam = v.naam;
this.naamkort = v.naamkort;
this.aantalorgs = v.aantalorgs;
this.scoretype = v.scoretype;
this.periodenummer = v.periodenummer;
this.versieid = v.versie_id;
this.vorm = v.vorm;
this.referentieVersies = ko.observableArray([]);
}
function fAddReferentieVersie(r) {
this.orgversieid = ko.observable(r.orgversieid());
this.naam = r.naam;
this.naamkort = r.naamkort;
this.scoretype = r.scoretype;
this.periodenummer = r.periodenummer;
this.versieid = r.versieid;
this.insop = r.insop;
this.vorm = r.vorm;
this.geselecteerd = ko.observable(false);
}
function fAddPagina(index,p){
var dit = this;
this.paginanummer = index + 1;
this.blokjes = ko.observableArray();
this.selectedBlokje = ko.observable();
if(p.blokjes){
$.each(p.blokjes(), function(i,b){
dit.blokjes.push(new fAddBlokje( i, b, dit.paginanummer))
})
}
else {
var n = 0;
for (var x = 0; x < 4; x++) {
dit.blokjes.push(new fAddBlokje(x, n, dit.paginanummer))
}
}
}
function fAddBlokje(teller, bestaandBlokje, paginanummer){
this.bloknummer = ko.observable(bestaandBlokje ? bestaandblokje.bloknummer : (teller + 1));
this.paginanummer = paginanummer;
this.bovenmarge = ko.observable('5px');
if(this.bloknummer() === 1 || this.bloknummer() === 2) { this.bovenmarge('30px'); }
this.linkermarge = ko.observable('5px');
if(this.bloknummer() === 1 || this.bloknummer() === 3){this.linkermarge('20px'); }
this.breedte = ko.observable('col-xs-5');
this.naam = ko.observable(bestaandBlokje ? bestaandBlokje.naam : '');
this.toonnummer = ko.observable(bestaandBlokje.toonnummer);
this.naamkort = ko.observable(bestaandBlokje.naamkort);
this.type = ko.observable(bestaandBlokje.type) ;
this.kleur = ko.observable(bestaandBlokje ? bestaandBlokje.kleur : 'transparent');
this.groepen = ko.observable(bestaandBlokje ? bestaandBlokje.groepen : 0);
this.gevuld = ko.observable(false);
this.verborgen = ko.observable(false);
this.modulenr = ko.observable(0);
this.kalenderjaar = ko.observable(0);
this.gekozenVersie = ko.observable('');
this.gekozenVergelijking = ko.observable();
this.isBreedBlok = ko.observable(false)
}
if (mh.CompactSopModel !== undefined){
mh.CompactSopModel.initModel();
}
else {
mh.CompactSopModel = {
schooljaren : ko.observableArray([]),
organisaties : ko.observableArray([]),
onderdelen : ko.observableArray([]),
school : ko.observableArray([]),
selectedOmvangJaren : ko.observableArray([]),
orgsoort : ko.observable(''),
orgsoortnummer : ko.observable(),
label : ko.observable(''),
schoolasobject : ko.observable(),
selectedSchooljaar : ko.observable(''),
selectedSopID : ko.observable(''),
selectedOnderdeel : ko.observable(''),
tobemovedOnderdeel : ko.observable(),
selectedOrgVersie : ko.observable(''),
selectedBudgetVersie : ko.observable(''),
selectedBlokje : ko.observable(''),
ls_selectedLijstId : ko.observable(),
naamNieuw : ko.observable(""),
leeftijdNieuw : ko.observable(""),
looptijdNieuw : ko.observable('L'),
aantalNieuw : ko.observable(0),
naamNieuwV : ko.observable(""),
leeftijdNieuwV : ko.observable(""),
looptijdNieuwV : ko.observable('L'),
aantalNieuwV : ko.observable(0),
schooljanee : ko.observable(false),
// editok : ko.observable(false),
erIsEenSop : ko.observable(false),
druk : ko.observable(false),
toonOnderdelen : ko.observable(true),
pdfKnop : ko.pureComputed(function(){
var model = mh.CompactSopModel;
var erzijnonderdelen = false
if (! model) return false
if (model.onderdelen()){
$.each(model.onderdelen(), function(j,k){
if (k.opA4()) {
erzijnonderdelen = true
return
}
})
}
return erzijnonderdelen
}),
nieuwArrangement : ko.observable(false),
nieuwArrangementV : ko.observable(false),
selectedOnderdelen : ko.observableArray([]),
paginas : ko.observableArray([]),
uploadLogoNaam : ko.observable(),
showLogoNaam : ko.pureComputed(function(){
return mh.CompactSopModel.uploadLogoNaam().replace('C:\\fakepath\\', '')
}),
initBindings :function(){
var self = mh.CompactSopModel;
if (!ko.dataFor(document.getElementById('pagcompactsop')) ) {
ko.applyBindings(mh.CompactSopModel, document.getElementById("pagcompactsop"));
}
$.post("index.php/monpas/compactsop/getorgsoort", function (result){
if(result){
self.orgsoortnummer(result);
switch(result){
case '1': self.orgsoort('SWV');
self.label('SWOP');
break;
case '2': self.orgsoort('Regio');
self.label('ROP');
break;
case '3': self.orgsoort('Bestuur');
self.label('BOP');
break;
case '4': self.orgsoort('School');
self.label('SOP');
break;
}
}
self.druk(true);
self.initModel();
},'json');
},
initModel: function(){
var self =mh.CompactSopModel;
self.fGetSchooljarenEnOrgs(function(){self.fGetCompactSop()})
},
fGetSchooljarenEnOrgs: function(callback){
var self =mh.CompactSopModel;
$.post("index.php/monpas/compactsop/getSchooljarenEnOrgs", function(data){
self.selectedSchooljaar(null)
self.schooljaren.removeAll();
self.toonOnderdelen(true)
self.selectedOnderdelen.removeAll()
self.paginas.removeAll();
if(data) {
self.druk(true);
$.each(data, function (i, s) {
self.schooljaren.push(new fAddSchooljaar(s));
});//each
if (self.schooljaren() ) self.selectedSchooljaar(self.schooljaren()[0]);
} // if
self.druk(false);
if (typeof callback == "function") callback()
},'json')
},
fGetCompactSop: function(){
var self =mh.CompactSopModel;
if (self.druk()) return;
if(self.selectedSchooljaar() === undefined){
return;
}
$.post("index.php/monpas/compactsop/getCompactsop/" + self.selectedSchooljaar().id, function(result){
self.onderdelen.removeAll();
self.selectedOnderdelen.removeAll()
self.paginas.removeAll();
self.toonOnderdelen(true);
self.erIsEenSop(false);
if(result){
self.selectedSopID(result);
self.erIsEenSop(true);
}
},'json');
},
fOpenPDF: function(){
var self =mh.CompactSopModel;
window.open( "index.php/monpas/compactsop/download_pdf/" + self.selectedSopID() );
},
fGetOnderdelenEnVersies: function(){
var self =mh.CompactSopModel;
var schooljaar = self.selectedSchooljaar().id;
self.toonOnderdelen(true);
self.selectedOnderdelen.removeAll();
self.paginas.removeAll();
if(self.erIsEenSop()){
apprise("Het nieuwe Compact " + self.label() + " overschrijft het bestaande Compact " + self.label() + " bij dit schooljaar. Wilt u doorgaan?",
{verify: true, textYes: ' ja ', textNo: "nee"}, function (ans) {
if (ans) {
$.post("index.php/monpas/compactsop/getOnderdelenEnVersies/" + schooljaar + "/" + self.orgsoortnummer() , function(result){
self.onderdelen.removeAll();
if(result){
$.each(result, function(i, o){
self.onderdelen.push(new fAddOnderdeel(i,o))
self.selectedOnderdeel(self.onderdelen()[0]);
self.toonOnderdelen(true);
});
}
},'json');
} // if ans
});//apprise
} else {
$.post("index.php/monpas/compactsop/getOnderdelenEnVersies/" + schooljaar + "/" + self.orgsoortnummer() , function(result){
self.onderdelen.removeAll();
if(result){
$.each(result, function(i, o){
self.onderdelen.push(new fAddOnderdeel(i, o))
self.toonOnderdelen(true);
});
}
},'json');
} // else
},
fGetOrganisatiegegevens: function(){
var self = mh.CompactSopModel;
$.post("index.php/monpas/compactsop/getOrganisatiegegevens", function (result) {
if(result){
self.school.removeAll();
// hier kun je ook
//self.school(new fAddSchool(result)) doen.
// dan wordt het geen array maar een object
self.schoolasobject(new fAddSchool(result))
self.school.push(new fAddSchool(result));
$("#modSchool").modal('show');
}
}, 'json');
},
fSaveOrg: function(){
var self = mh.CompactSopModel;
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
var dit = this;
timeout = setTimeout(function () {
var submitData = {
'straat' : dit.straat(),
'plaats' : dit.plaats(),
'telefoon' : dit.foon(),
'email1' : dit.email(),
'web' : dit.site(),
'id' : dit.schoolid
};
// je mag ook een post doen zonder dat je resultaat terug verwacht van de server
// dan laat je result en de afsluitenden json weg
$.post("index.php/monpas/compactsop/saveSchool", submitData, function (result) {
if(result){
}
}, 'json');
}, 600);
},
fSelecteerOnderdeel: function() {
var self = mh.CompactSopModel;
var dit = this;
if (dit.geenGegevens()) return;
self.selectedOnderdeel(this);
if( (dit.orgversies() && dit.orgversies().length > 1) || dit.budgetversies().length > 1 || dit.omvangschooljaren().length > 1) {
$.each(self.onderdelen(), function (i, o) {
if (o.id !== self.selectedOnderdeel().id) {
o.versies(false);
}
});
if (dit.orgversies().length > 0) {
self.selectedOrgVersie(this.orgversies()[0]);
self.ls_selectedLijstId(this.orgversies()[0].orgversieid());
self.fGetVergelijkbareVersies();
}
if (dit.budgetversies().length > 0) {
self.selectedBudgetVersie(this.budgetversies()[0]);
self.ls_selectedLijstId(this.budgetversies()[0].budgetid());
}
dit.versies(true);
return true;
} // if meer versies
this.selected(true);
if(self.selectedOnderdeel().type === 'DIV' ){
self.selectedOnderdeel().gekozenVersie("");
}
else if(self.selectedOnderdeel().type === 'OMVANG'){
self.selectedOmvangJaren.removeAll();
if(self.selectedOnderdeel().omvangschooljaren().length == 1) {
self.selectedOmvangJaren.push(self.selectedOnderdeel().omvangschooljaren()[0].schooljaarnr);
}
}
else if(self.selectedOnderdeel().type === 'FIN') {
self.selectedOnderdeel().gekozenVersie(this.budgetversies()[0].kalenderjaar())
}
else {
self.selectedOnderdeel().gekozenVersie(this.orgversies()[0].orgversieid())
}
self.selectedOnderdelen.push(self.selectedOnderdeel());
},
fAnnuleerOnderdeel: function(){
var self = mh.CompactSopModel;
var dit = this;
this.selected(false)
this.versies(false);
var indexO;
return true;
},
fStartUploading: function(){
var self = mh.CompactSopModel;
var schoolID = self.schoolasobject().schoolid;
var vFD = new FormData(document.getElementById('upload_form'));
var oXHR = new XMLHttpRequest();
oXHR.open('POST', 'index.php/monpas/compactsop/uploadLogo/' + schoolID);
oXHR.send(vFD);
setTimeout(function(){
var sd = {schoolID : self.schoolasobject().schoolid}
$.post("index.php/monpas/compactsop/getLogo" , sd, function(result){
if (result == '') self.schoolasobject().logo(null)
else self.schoolasobject().logo(result);
self.school()[0].logo(self.schoolasobject().logo());
self.uploadLogoNaam(null);
}, 'json')
}, 500) // set timeout
},
fSelecteerBudgetVersie: function(data, parent){
var self = mh.CompactSopModel;
var onderdeel = data;
var dit = this;
if (dit.kalenderjaar()) {
self.selectedBudgetVersie(dit.kalenderjaar());
}
return true;
},
fSelecteerOrgversie: function(data, parent){
var self = mh.CompactSopModel;
var onderdeel = data;
var dit = this;
self.selectedOnderdeel(onderdeel);
if(dit.naam) {
self.selectedOrgVersie(this);
self.fGetVergelijkbareVersies();
}
return true;
},
fGetVergelijkbareVersies: function() {
var self = mh.CompactSopModel;
var dit = this;
if(self.selectedOnderdeel().orgversies()) {
$.each(self.selectedOnderdeel().orgversies(), function (x, o) {
o.referentieVersies.removeAll()
$.each(self.selectedOnderdeel().orgversies(), function(a,ref){
if (ref.versieid == o.versieid &&
ref.scoretype == o.scoretype &&
ref.orgversieid() != o.orgversieid() &&
ref.periodenummer < o.periodenummer) {
o.referentieVersies.push(new fAddReferentieVersie(ref));
}
}) // ref zoeken
});
}
},
fSelecteerVergelijking: function(parent){
var self = mh.CompactSopModel;
parent.gekozenVergelijking(this.orgversieid());
return true;
},
fSelecteerVersieOnderdeel: function(){
var self = mh.CompactSopModel;
var dit = this;
if(dit.geenGegevens()) return;
self.selectedOnderdeel(this);
if(self.selectedOmvangJaren().length > 2){
apprise("Selecteer maximaal 2 schooljaren");
return;
}
if(self.selectedOnderdeel().type == "OMVANG" && self.selectedOmvangJaren().length == 0){
apprise("Selecteer één of twee schooljaren");
return;
}
if(self.selectedOrgVersie()){
self.selectedOnderdeel().gekozenVersie(self.selectedOrgVersie().orgversieid());
}
if(self.selectedBudgetVersie()){
self.selectedOnderdeel().gekozenVersie(self.selectedBudgetVersie());
}
self.fOnderdelenInArray();
return true;
},
fSluitVersieOnderdeel(){
var self = mh.CompactSopModel;
this.versies(false);
},
fOnderdelenInArray: function() {
var self = mh.CompactSopModel;
var dit = this;
self.selectedOnderdelen.push(self.selectedOnderdeel());
self.selectedOnderdeel().selected(true);
},
fTerugNaarOnderdelen: function(){
var self = mh.CompactSopModel;
self.toonOnderdelen(true)
},
fMaakLayout: function(){
var self = mh.CompactSopModel;
self.toonOnderdelen(false);
//reset alle paginas
$.each(self.onderdelen() , function(i,onderdeel){
onderdeel.opA4(false);
})
self.paginas.removeAll();
var aantalOnderdelen =0
$.each(self.onderdelen(), function(x,onderdeel){
if (onderdeel.selected()){
if(onderdeel.type === 'FIN' || onderdeel.type === 'LIJSTBREED'||parseInt(onderdeel.groepen()) > 8 ){
aantalOnderdelen = parseInt(aantalOnderdelen) + parseInt(2);
} else {
aantalOnderdelen += 1
}
}
});
var vellen = Math.ceil(aantalOnderdelen/4);
var p = 0;
if(vellen > 6){
apprise("U kunt maximaal 6 pagina's vullen.");
vellen = 6;
}
for(var i = 0; i < vellen; i++){
self.paginas.push( new fAddPagina(i, p));
}
},
// fAllowDrop: function(data, event){
// var self = mh.CompactSopModel;
// event.stopPropagation();
// event.preventDefault();
// },
// fDragstart: function(data, event){
// var self = mh.CompactSopModel;
// var dit = this;
// data.dataTransfer.setData(event.naam, event.nummer);
// },
// fDrop: function(data, event){
// var self = mh.CompactSopModel;
// event.preventDefault();
// var data2 = event.dataTransfer.getData(event.naam, event.nummer);
// event.target.appendChild(document.getElementById(data2));
// },
fSelectVoorPlaatsing: function(){
var self = mh.CompactSopModel;
if (this == self.tobemovedOnderdeel() ){
self.tobemovedOnderdeel(null);
} else {
self.tobemovedOnderdeel(this)
}
},
fHiernaartoe: function(){
var self = mh.CompactSopModel;
if (! self.tobemovedOnderdeel() && this.gevuld()){
self.fAnnuleerPlaatsing(this);
return
}
if (this.gevuld() ) {
apprise("Deze positie is al gevuld.");
return;
}
self.fSetBlokje(this)
},
fSetBlokje:function(selectedBlokje){
var self = mh.CompactSopModel;
if (selectedBlokje.gevuld()) return;
if (! self.tobemovedOnderdeel() ) return;
if (self.tobemovedOnderdeel().opA4()) return;
if (self.tobemovedOnderdeel().isBreedBlok() && ! self.fCheckGrootBlokPast(selectedBlokje)) return;
var paginanummer = selectedBlokje.paginanummer - 1
// als het een breed blok is, ga dan uit van het eerste blok in de
//rij om alle waardes te zetten
//of dat kan is in fCheckGrootBlokPast gecontroleerd
if ((selectedBlokje.bloknummer() ==2 || selectedBlokje.bloknummer() ==4) &&
self.tobemovedOnderdeel().isBreedBlok()){
selectedBlokje = self.paginas()[paginanummer].blokjes()[selectedBlokje.bloknummer() - 2]
} ;
selectedBlokje.naamkort(self.tobemovedOnderdeel().naamkort);
selectedBlokje.groepen(self.tobemovedOnderdeel().groepen());
selectedBlokje.isBreedBlok(self.tobemovedOnderdeel().isBreedBlok());
if (selectedBlokje.isBreedBlok()) {
self.fVoegGrootBlokToe(selectedBlokje);
}
self.tobemovedOnderdeel().opA4(true);
selectedBlokje.modulenr(self.tobemovedOnderdeel().modulenr ? self.tobemovedOnderdeel().modulenr : null)
selectedBlokje.gekozenVersie(self.tobemovedOnderdeel().gekozenVersie() ? self.tobemovedOnderdeel().gekozenVersie() : null)
selectedBlokje.gekozenVergelijking(self.tobemovedOnderdeel().gekozenVergelijking() ? self.tobemovedOnderdeel().gekozenVergelijking() : null)
selectedBlokje.gevuld(true);
selectedBlokje.kleur('#930f50');
selectedBlokje.type(self.tobemovedOnderdeel().type)
selectedBlokje.naam(self.tobemovedOnderdeel().naam);
selectedBlokje.toonnummer(self.tobemovedOnderdeel().toonnummer);
self.tobemovedOnderdeel(null)
},
fCheckGrootBlokPast :function(blokje){
var self = mh.CompactSopModel;
var paginanr = parseInt(blokje.paginanummer) -1
var targetblokje= parseInt( blokje.bloknummer())
var testblokje
if (targetblokje == 1 || targetblokje == 3) {
// check of het volgende blokje leeg is
testblokje = self.paginas()[paginanr].blokjes()[targetblokje];
}
if (targetblokje == 2 || targetblokje == 4) {
// check of het vorige blokje leeg is
testblokje = self.paginas()[paginanr].blokjes()[(targetblokje - 2)];
}
if (testblokje.gevuld() || blokje.gevuld()){
apprise("Voor dit onderdeel is de volle breedte van de pagina nodig. " +
"Kies een ander plek of verwijder <i>" +
testblokje.naam() + "</i>" )
return false
}
return true
},
fVoegGrootBlokToe: function (blokje){
var self = mh.CompactSopModel;
// een groot blokje heeft altijd de bloknummer 1 of 3 want
//dat is hiervoor al getest en anders gezet op bloknummer 1 of 2
var paginanr = parseInt(blokje.paginanummer) -1
var targetblokje= parseInt( blokje.bloknummer())
var testblokje
testblokje = self.paginas()[paginanr].blokjes()[targetblokje];
testblokje.verborgen(true);
},
fAnnuleerPlaatsing: function(blokje){
var self = mh.CompactSopModel;
var geplaatst = 0;
$.each(self.onderdelen(), function(i,p){
if (p.modulenr == blokje.modulenr()) {
p.opA4(false)
}
})
blokje.gevuld(false);
blokje.verborgen(false);
blokje.modulenr('');
blokje.kalenderjaar('');
blokje.gekozenVersie('');
blokje.gekozenVergelijking('');
blokje.kleur('transparent');
blokje.naam('');
blokje.naamkort('');
if (blokje.isBreedBlok()){
blokje.isBreedBlok(false)
var paginanr = parseInt(blokje.paginanummer) -1
var targetblokje= parseInt( blokje.bloknummer()) ;
// bij een breedblokje is het bloknummer altijd 1 of 3
self.paginas()[paginanr].blokjes()[targetblokje].verborgen(false);
}
},
fMaakPDF: function(){
var self = mh.CompactSopModel;
if (! self.selectedSchooljaar()){
apprise("Geen schooljaar geselecteerd.")
return
}
var sops = [];
var sop;
$.each(self.paginas(), function(x, p){
$.each(p.blokjes(), function(i, s){
if(!s.verborgen()) {
sop = {
'paginanr' : s.paginanummer,
'bloknr' : s.bloknummer(),
'modulenr' : s.modulenr() ? s.modulenr() : '',
'breed' : s.isBreedBlok() ? 'T': 'F',
'type' : s.type() ? s.type(): '',
'naam' : s.naam() ? s.naam() : '',
'kalenderjaar': s.kalenderjaar() ? s.kalenderjaar() : '',
'orgversieid' : s.gekozenVersie() ? s.gekozenVersie() : '',
'vergelijkid' : s.gekozenVergelijking() ? s.gekozenVergelijking() : null
};
sops.push(sop);
}
});
});
if(self.selectedOmvangJaren().length > 1){
self.selectedOmvangJaren.sort(function(a,b){return a-b}) ;
}
var submitData = {
'schooljaarnr' : self.selectedSchooljaar().id,
'onderdelen' : sops,
'jaren' : self.selectedOmvangJaren(),
'paginas': self.paginas().length
};
$.post("index.php/monpas/compactsop/maakPDF/", submitData, function(result){
window.open('tmp/temp' + result + '.html');
console.log(result, "result pdf")
if(result){
self.erIsEenSop(true);
}
},'json');
},
filterSelected: function(onderdelen){
if (! onderdelen()) return false;
return onderdelen().filter(function(onderdeel){
return ( onderdeel.selected() );
});
},
filterSelected_NotPlaced: function(onderdelen){
if (! onderdelen()) return false;
return onderdelen().filter(function(onderdeel){
return ( onderdeel.selected() && ! onderdeel.opA4() );
});
},
fToonUsage: function(wat){
switch (wat){
case "plaatsen" : apprise("Klik op een onderdeel om het te selecteren. <br>" +
"Klik vervolgens onder <i>Plaats onderdelen</i> op het vak waar u het onderdeel wilt plaatsen.");
break;
case "terugplaatsen" : apprise("Klik op een geplaatst onderdeel om de plaatsing ongedaan te maken.");
break;
}
}
} ; // definition van model
mh.CompactSopModel.initBindings();
} // else
}// function init mh.SoptestModel
});