218 lines
8.2 KiB
JavaScript
218 lines
8.2 KiB
JavaScript
$(function(){
|
|
|
|
|
|
ls.initMonfinOverzichtModel = function(){
|
|
if (ls.MonfinOverzichtModel !== undefined){
|
|
ls.MonfinOverzichtModel.initModel();
|
|
}
|
|
else {
|
|
ls.MonfinOverzichtModel = {
|
|
orgs : ko.observableArray(),
|
|
selectedOrg : ko.observable(),
|
|
schoolbedragen : ko.observableArray([]),
|
|
schooltotaal : ko.observable(''),
|
|
kalenderjaren : ko.observableArray(),
|
|
selectedKalenderjaar : ko.observable(),
|
|
zelfjanee : ko.observable('1'),
|
|
basisextra : ko.observable(true),
|
|
borganisaties : ko.observableArray([]), //organisatiebudgetten en uitgaven
|
|
sumarray : ko.observable(''),
|
|
targetorg : ko.observable(''),
|
|
grandtot : ko.observable(''),
|
|
opmerking : ko.observable(''),
|
|
|
|
initBindings :function(){
|
|
var self = ls.MonfinOverzichtModel;
|
|
if (!ko.dataFor(document.getElementById('pagmonfinoverzicht')) ) {
|
|
ko.applyBindings(ls.MonfinOverzichtModel, document.getElementById("pagmonfinoverzicht"));
|
|
}
|
|
$.post("index.php/monpas/monfinoverzicht/getkalenderjaren", function(data){
|
|
self.kalenderjaren.removeAll();
|
|
if (data){
|
|
$.each(data, function(j,k){
|
|
self.kalenderjaren.push(new fAddKalenderjaar(k));
|
|
}); // each
|
|
self.selectedKalenderjaar(self.kalenderjaren()[0]);
|
|
}
|
|
$.post("index.php/monpas/monfinbeheer/getorgs", function(result){
|
|
self.orgs.removeAll();
|
|
|
|
if (result.structuur) {
|
|
self.orgs.push(new fAddOrg(result.structuur,result.org.id));
|
|
};
|
|
if (self.selectedOrg()) {self.fGetBedragen();}
|
|
},'json');
|
|
},'json'); //getkalenderjaren
|
|
},
|
|
initModel: function(){
|
|
var self = ls.MonfinOverzichtModel;
|
|
self.fGetBedragen();
|
|
},
|
|
|
|
fGetBedragen: function(){
|
|
var self = ls.MonfinOverzichtModel;
|
|
if (!self.selectedOrg() || !self.selectedKalenderjaar()) return;
|
|
|
|
if (self.zelfjanee()==1 || self.selectedOrg().soort==4){
|
|
console.log('in schoolbedragen')
|
|
var sd={orgid : self.selectedOrg().id,
|
|
jaarnr : self.selectedKalenderjaar().jaarnr}
|
|
$.post("index.php/monpas/monfinoverzicht/getschoolbedragen", sd, function(result){
|
|
self.schoolbedragen.removeAll();
|
|
self.schooltotaal( result.schooltotaal) ;
|
|
if (result.sompersoort){
|
|
$.each(result.sompersoort, function(i,p){
|
|
self.schoolbedragen.push(new fAddBedrag(i,p));
|
|
});// each
|
|
}; // if
|
|
self.opmerking(result.opmerking);
|
|
},'json');
|
|
} // if zelfjanee = true
|
|
else{
|
|
console.log('in bestuurbedragen')
|
|
var sd={orgid : self.selectedOrg().id,
|
|
jaarnr : self.selectedKalenderjaar().jaarnr}
|
|
|
|
$.post("index.php/monpas/monfinoverzicht/getbestuursbedragen", sd, function(result){
|
|
|
|
self.basisextra(result.basisextra);
|
|
self.borganisaties.removeAll();
|
|
if (result.organisaties){
|
|
$.each(result.organisaties, function(i,p){
|
|
self.borganisaties.push(new fAddBorganisatie(p));
|
|
}); // each
|
|
}; // if organisaties
|
|
self.sumarray('');
|
|
self.sumarray({basis : (parseFloat(result.sumarray.basisuit) / 100).format(0,3, '.' , ','),
|
|
extra : (parseFloat(result.sumarray.extrauit) / 100).format(0,3, '.' , ','),
|
|
besom : (parseFloat(result.sumarray.besomuit) / 100).format(0,3, '.' , ','),
|
|
overig : (parseFloat(result.sumarray.overiguit) / 100).format(0,3, '.' , ','),
|
|
totaal : (parseFloat(result.sumarray.totaaluit) / 100).format(0,3, '.' , ','),
|
|
totaalbudget: (parseFloat(result.sumarray.totaalbudget) / 100).format(0,3, '.' , ','),
|
|
verschil : (parseFloat(parseInt(result.sumarray.totaalbudget) - parseInt(result.sumarray.totaaluit)) / 100).format(0,3, '.' , ',')
|
|
});
|
|
self.targetorg('');
|
|
self.targetorg(new fAddBorganisatie(result.targetorg));
|
|
|
|
self.grandtot('');
|
|
self.grandtot({basis : (parseFloat(result.grandtot.basisuit) / 100).format(0,3, '.' , ','),
|
|
extra : (parseFloat(result.grandtot.extrauit) / 100).format(0,3, '.' , ','),
|
|
besom : (parseFloat(result.grandtot.besomuit) / 100).format(0,3, '.' , ','),
|
|
overig : (parseFloat(result.grandtot.overiguit) / 100).format(0,3, '.' , ','),
|
|
totaal : (parseFloat(result.grandtot.totaaluit) / 100).format(0,3, '.' , ','),
|
|
totaalbudget: (parseFloat(result.grandtot.totaalbudget) / 100).format(0,3, '.' , ','),
|
|
verschil : (parseFloat(result.grandtot.verschil) / 100).format(0,3, '.' , ',')
|
|
});
|
|
|
|
},'json');
|
|
}
|
|
return true;
|
|
},
|
|
fToggle :function(){
|
|
this.geopend(!this.geopend());
|
|
},
|
|
fSetSelected: function(){
|
|
var self = ls.MonfinOverzichtModel;
|
|
self.selectedOrg(this);
|
|
self.fGetBedragen()
|
|
},
|
|
fMaakPDF: function(){
|
|
var self = ls.MonfinOverzichtModel;
|
|
if (!self.selectedOrg() || !self.selectedKalenderjaar()) {return;};
|
|
if (self.selectedOrg().soort == 4 || self.zelfjanee() == 1){
|
|
var orgtable = document.getElementById("mytesttable").outerHTML;
|
|
}
|
|
else{
|
|
var orgtable=document.getElementById("suborgtable").outerHTML;
|
|
}
|
|
var data ={ orgnaam : self.selectedOrg().fnaam,
|
|
kalenderjaar : self.selectedKalenderjaar().naam,
|
|
orgtable : orgtable}
|
|
data=JSON.stringify(data);
|
|
var $form = $("<form method='post' action='index.php/monpas/monfinoverzicht/overzichtPDF' target='_blank'>").append($('<input type = "hidden" name="data" id ="data">').val(data) );
|
|
$form.appendTo("body").submit();
|
|
}
|
|
} ; // definition van model
|
|
ls.MonfinOverzichtModel.initBindings();
|
|
}; // else
|
|
|
|
}// function initMonfinOverzichtModel
|
|
|
|
function fAddOrg(p, targetid){
|
|
var dit = this;
|
|
this.geopend = ko.observable(true);
|
|
|
|
this.id = p.id
|
|
if (this.id !== undefined || this.id <=0) {this.geopend(false);}
|
|
|
|
this.fnaam = p.brin + ' - ' + p.naamkort;
|
|
this.soort = p.soort
|
|
this.suborgs = ko.observableArray([]);
|
|
if (p.kamers){
|
|
$.each(p.kamers, function(j,k){
|
|
dit.suborgs.push(new fAddOrg(k,targetid));
|
|
});
|
|
}
|
|
if (p.bgs){
|
|
$.each(p.bgs, function(j,k){
|
|
dit.suborgs.push(new fAddOrg(k,targetid));
|
|
});
|
|
}
|
|
if (p.scholen){
|
|
$.each(p.scholen, function(j,k){
|
|
dit.suborgs.push(new fAddOrg(k,targetid));
|
|
});
|
|
}
|
|
if (p.id == targetid){
|
|
ls.MonfinOverzichtModel.selectedOrg(this);
|
|
}
|
|
}
|
|
|
|
function fAddKalenderjaar(p){
|
|
this.jaarnr = p.jaarnr;
|
|
this.naam = p.naam;
|
|
}
|
|
|
|
function fAddBedrag(i,p){
|
|
var dit = this;
|
|
dit.soortbestemming= p.naam;
|
|
|
|
var verschil = parseFloat(p.budget) - parseFloat(p.totsoort);
|
|
this.soorttotaal = (parseFloat(p.totsoort) / 100).format(2,3, '.' , ',');
|
|
this.soortbudget = (parseFloat(p.budget)/ 100).format(2,3, '.' , ',');
|
|
this.soortverschil = (verschil / 100).format(2,3, '.' , ',');
|
|
this.labels = ko.observableArray([]);
|
|
if (p.labels){
|
|
$.each(p.labels, function(j,k){
|
|
k.som=(parseFloat(k.som) / 100).format(2,3, '.' , ',')
|
|
|
|
if (k.details){
|
|
$.each(k.details, function(teller, detail){
|
|
detail.bedrag = (parseFloat(detail.bedrag) / 100).format(2,3, '.' , ',');
|
|
}); //each
|
|
}
|
|
dit.labels.push( {k:k,
|
|
geopend: ko.observable(false) });
|
|
});
|
|
}; // if p.labels
|
|
}
|
|
function fAddBorganisatie(p){
|
|
this.naam = p.brin + ' ' + p.naamkort;
|
|
this.basis = (parseFloat(p.bestedingen.basis) / 100).format(0,3, '.' , ',');
|
|
this.extra = (parseFloat(p.bestedingen.extra) / 100).format(0,3, '.' , ',');
|
|
this.besom = (parseFloat(p.bestedingen.besom) / 100).format(0,3, '.' , ',');
|
|
this.overig = (parseFloat(p.bestedingen.overig) / 100).format(0,3, '.' , ',');
|
|
this.totaal = (parseFloat(p.bestedingen.totaal) / 100).format(0,3, '.' , ',');
|
|
|
|
this.basisbudget = (parseFloat(p.budgetten.basis) / 100).format(0,3, '.' , ',');
|
|
this.extrabudget = (parseFloat(p.budgetten.extra) / 100).format(0,3, '.' , ',');
|
|
this.besombudget = (parseFloat(p.budgetten.som) / 100).format(0,3, '.' , ',');
|
|
this.overigbudget = (parseFloat(p.budgetten.overig) / 100).format(0,3, '.' , ',');
|
|
this.totaalbudget = (parseFloat(p.budgetten.totaal) / 100).format(0,3, '.' , ',');
|
|
var verschil = 0;
|
|
if (p.budgetten){
|
|
verschil= parseInt(p.budgetten.totaal) - parseInt(p.bestedingen.totaal);
|
|
}
|
|
this.verschil = (parseFloat(verschil) / 100).format(0,3, '.' , ',');
|
|
}
|
|
}); |