Files
monpas/public/js/monpas/models/monfin/monfinoverzicht.js
T

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, '.' , ',');
}
});