Files
monpas/public/js/monpas/models/monfin2/monfinoverzicht2.js
T
2024-02-22 15:12:14 +01:00

295 lines
9.5 KiB
JavaScript

$(function(){
ls.initMonfinOverzicht2Model = function(){
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.MonfinOverzicht2Model.selectedOrg(this);
}
}
function fAddKalenderjaar(p){
this.jaarnr = p.jaarnr;
this.naam = p.naam;
}
if (ls.MonfinOverzicht2Model !== undefined){
ls.MonfinOverzicht2Model.initModel();
}
else {
ls.MonfinOverzicht2Model = {
orgs : ko.observableArray(),
selectedOrg : ko.observable(),
targetOrg : ko.observable(),
otherOrgs : ko.observableArray(),
pmsTargetOrg : ko.observable(),
otherPMSOrgs : ko.observableArray(),
sumotherPMS : ko.observableArray(),
sumtotPMS : ko.observableArray(),
subTot : ko.observable(),
grandTot : ko.observable(),
//schoolbedragen : ko.observableArray([]),
schooltotaal : ko.observable(''),
kalenderjaren : ko.observableArray(),
selectedKalenderjaar : ko.observable(),
zelfjanee : ko.observable('1'),
opmerking : ko.observable(),
uitgavetypes : ko.observableArray(),
basis : ko.observableArray(),
extra : ko.observableArray(),
sombasisperuitgavetype : ko.observableArray(),
somextraperuitgavetype : ko.observableArray(),
totsomperuitgavetype : ko.observableArray(),
basisgeopend : ko.observable(false),
extrageopend : ko.observable(false),
budgetten : ko.observableArray(),
selectedSubsoort : ko.observable(),
totsombudget : ko.observable(),
totuitgavenpct : ko.observable('0,0'),
initBindings :function(){
var self = ls.MonfinOverzicht2Model;
if (!ko.dataFor(document.getElementById('pagmonfinoverzicht2')) ) {
ko.applyBindings(ls.MonfinOverzicht2Model, document.getElementById("pagmonfinoverzicht2"));
}
$.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
let datum = new Date();
let maand = datum.getMonth()
if(maand < 5)self.selectedKalenderjaar(self.kalenderjaren()[1]);
else 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.MonfinOverzicht2Model;
self.fGetBedragen();
},
fGetBedragen: function(){
var self = ls.MonfinOverzicht2Model;
if (!self.selectedOrg() || !self.selectedKalenderjaar()) return;
if (self.selectedOrg().soort == 4) { self.zelfjanee('1');};
if (self.zelfjanee()==1 || self.selectedOrg().soort==4){
var sd={orgid : self.selectedOrg().id,
jaarnr : self.selectedKalenderjaar().jaarnr}
$.post("index.php/monfin2/monfin2overzicht/getschoolbedragen", sd, function(result){
self.schooltotaal( result.schooltotaal) ;
self.uitgavetypes(result.uitgavetypes);
self.basis(result.basis);
self.extra(result.extra);
self.sombasisperuitgavetype(result.sombasisperuitgavetype);
self.somextraperuitgavetype(result.somextraperuitgavetype);
self.totsomperuitgavetype(result.totsomperuitgavetype);
self.totuitgavenpct('0,0')
self.budgetten(result.budgetten);
if(self.budgetten()){
if((self.budgetten().basisbedragpct
&& self.budgetten().basisbedragpct !== '0,0' )||
(self.budgetten().extrabedragpct && self.budgetten().extrabedragpct !== '0,0')){
self.totuitgavenpct('100,0')
}
}
self.totsombudget()
self.opmerking(result.opmerking);
},'json');
} // if zelfjanee = true
else{
if (self.zelfjanee() == 0 ){
var sd={orgid : self.selectedOrg().id,
jaarnr : self.selectedKalenderjaar().jaarnr}
$.post("index.php/monfin2/monfin2overzicht/getbestuursbedragen", sd, function(result){
self.otherOrgs.removeAll();
self.otherOrgs(result.others);
self.subTot(result.subtot);
self.grandTot(result.grandtot);
self.targetOrg(result.targetorg);
},'json');
} else if ( self.zelfjanee() ==3){
var sd={orgid : self.selectedOrg().id,
jaarnr : self.selectedKalenderjaar().jaarnr,
zelfjanee : self.zelfjanee()}
$.post("index.php/monfin2/monfin2overzicht/getschoolbedragenNieuw", sd, function(result){
self.schooltotaal( result.schooltotaal) ;
self.uitgavetypes(result.uitgavetypes);
self.basis(result.basis);
self.extra(result.extra);
self.sombasisperuitgavetype(result.sombasisperuitgavetype);
self.somextraperuitgavetype(result.somextraperuitgavetype);
self.totsomperuitgavetype(result.totsomperuitgavetype);
self.totuitgavenpct('0,0')
self.budgetten(result.budgetten);
if(self.budgetten()){
if((self.budgetten().basisbedragpct && self.budgetten().basisbedragpct !== '0,0' )||
(self.budgetten().extrabedragpct && self.budgetten().extrabedragpct !== '0,0')){
self.totuitgavenpct('100,0')
}
}
self.opmerking(result.opmerking);
},'json');
} else {
var sd={orgid : self.selectedOrg().id,
jaarnr : self.selectedKalenderjaar().jaarnr}
$.post("index.php/monfin2/monfin2overzicht/getbestuurperuitgavetype", sd, function(result){
self.pmsTargetOrg(result.targetorg);
self.otherPMSOrgs(result.otherorgs);
self.sumotherPMS(result.sumother);
self.sumtotPMS(result.sumtot);
},'json');
}
}
return true;
},
fMaakPDF : function(){
var self = ls.MonfinOverzicht2Model;
var data = {html : $("#finoverzichtpage").html(),
jaar : self.selectedKalenderjaar().naam,
org : self.selectedOrg().fnaam,
soort : self.zelfjanee()}
data=JSON.stringify(data);
var $form = $("<form method='post' action='index.php/monfin2/monfin2overzicht/PdfFinancien' target='_blank'>").append($('<input type = "hidden" name="data" id ="data">').val(data) );
$form.appendTo("body").submit();
},
fToggle: function(wat){
var self = ls.MonfinOverzicht2Model;
switch (wat){
case "BASIS" : self.basisgeopend(! self.basisgeopend()); break;
case "EXTRA" : self.extrageopend(! self.extrageopend()); break;
}
},
fToelichting: function(waarop){
var self = ls.MonfinOverzicht2Model;
var message = '';
switch(waarop){
case 'KOSTEN' : message = 'Uitgaven afgerond op hele euros.';
break;
case 'SOM' : message = 'Totale uitgaven afgerond op hele euros.';
break;
case 'BUDGET' : message = 'Budget afgerond op hele euros. Klik op i in de regel voor een uitsplitsing van het budget.';
break;
case 'VERSCHIL' : message = 'Het verschil tussen het budget en de uitgaven afgerond op hele euros.';
break;
case '%BUDGET' : message = 'Het gebudgetteerde bedrag als percentage van het totale budget.';
break;
case '%UITGAVEN' : message = 'Uitgaven als percentage van de totale uitgaven.';
break;
}
apprise(message);
},
fToggleOrg :function(){
this.geopend(!this.geopend());
},
fSetSelected: function(){
var self = ls.MonfinOverzicht2Model;
self.selectedOrg(this);
self.fGetBedragen()
},
fOpenDetails: function(niveau){
var self = ls.MonfinOverzicht2Model;
self.selectedSubsoort('');
switch(niveau){
case 'BASIS' : self.selectedSubsoort(
{
'naam' : 'Basisondersteuning gebudgetteerd',
'uitgavetypes' : self.sombasisperuitgavetype()
});
break;
case 'DETAIL': self.selectedSubsoort(this);
break;
case 'EXTRA': self.selectedSubsoort(
{'naam' : 'Extra ondersteuning gebudgetteerd',
'uitgavetypes' : self.somextraperuitgavetype()
});
break;
case 'TOTAAL': self.selectedSubsoort(
{'naam' : 'Totaal gebudgetteerd',
'uitgavetypes' : self.totsomperuitgavetype()
});
break;
}
$("#modFindetails").modal('show');
},
fShowComment: function(){
// var self = ls.MonfinOverzicht2Model;
// apprise('Het eerste getal is het percentage van de gebudgetteerde interventie ten opzichte van het totaal gebedugetteerde bedrag. ' +
// 'Het tweede getal is het percentage van de gebudgetteerde interventie in verhouding tot het totaalbudget.');
},
} ; // definition van model
ls.MonfinOverzicht2Model.initBindings();
}; // elses
}// function initMonfinOverzicht2Model
});