Merge branch 'feature/budgetmonfin' into feature/labels
This commit is contained in:
@@ -112,6 +112,19 @@ a.email:before {
|
||||
padding-top: 5px;
|
||||
margin-top:2px;
|
||||
}
|
||||
|
||||
.blokheader2{
|
||||
border-radius:3px;
|
||||
text-transform:lowercase;
|
||||
background-color:#968026;
|
||||
width:99%;
|
||||
height:15px;
|
||||
text-align:center;
|
||||
margin-left:0.5%;
|
||||
color:#ffffff;
|
||||
padding-top: 5px;
|
||||
margin-top:2px;
|
||||
}
|
||||
.bloksubheader{
|
||||
float:left;
|
||||
font-size:0.8em;
|
||||
|
||||
@@ -109,7 +109,6 @@ ls.initIJkpuntenModel = function(){
|
||||
|
||||
function fAddLijst(i, l, nieuw){
|
||||
|
||||
console.log(l, "lijst")
|
||||
var dit = this;
|
||||
this.tooninfo = ko.observable(false);
|
||||
if(nieuw === l.orgversie.id) {
|
||||
@@ -470,8 +469,6 @@ ls.initIJkpuntenModel = function(){
|
||||
self.scorekleuren(new fAddKleur(result.kleuren));
|
||||
|
||||
}
|
||||
console.log(result.ijkpunten, "ijkpunten");
|
||||
console.log(result.lijsten, "lijsten")
|
||||
|
||||
if(result.ijkpunten){
|
||||
$.each(result.ijkpunten, function(y, k){
|
||||
@@ -691,11 +688,6 @@ ls.initIJkpuntenModel = function(){
|
||||
}
|
||||
});
|
||||
|
||||
console.log(balkGegevens, "balkgegevens")
|
||||
|
||||
|
||||
|
||||
|
||||
self.ijkgrafiek = Highcharts.chart('hc-chart1', {
|
||||
chart: {
|
||||
margin: [10,45,100,5],
|
||||
|
||||
@@ -7,38 +7,93 @@ ls.initBestemmingenModel = function(){
|
||||
this.naam = p.naam;
|
||||
}
|
||||
|
||||
function fAddBasissoort(k){
|
||||
function fAddBasissoort(j,k, totbudget, bedrag ){
|
||||
var dit = this;
|
||||
this.soortID = k.soortID
|
||||
this.naam = k.naam
|
||||
this.subsoorten = ko.observableArray([]);
|
||||
if (k.subsoorten){
|
||||
$.each(k.subsoorten, function(a,b){
|
||||
dit.subsoorten.push(new fAddSubsoort(b, k.categorie));
|
||||
dit.subsoorten.push(new fAddSubsoort(a, b, totbudget, bedrag, k.categorie));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function fAddSubsoort(p,categorie){
|
||||
var dit = dit;
|
||||
this.subsoortID = p.subsoortID;
|
||||
this.naam = p.naam;
|
||||
this.categorie = categorie
|
||||
this.uitgavetypes = ko.observableArray()
|
||||
function fAddSubsoort(a,b, totbudget, totbedrag, categorie) {
|
||||
var dit = this;
|
||||
if (p.uitgavetypes){
|
||||
$.each(p.uitgavetypes, function(i,k){
|
||||
this.subsoortID = b.subsoortID;
|
||||
this.naam = b.naam;
|
||||
this.categorie = categorie;
|
||||
this.bedragpct = ko.observable(0);
|
||||
this.bedragpctFormat = ko.observable('');
|
||||
this.budgetpct = ko.observable(0);
|
||||
this.budgetpctFormat = ko.observable('');
|
||||
this.uitgavetypes = ko.observableArray([]);
|
||||
var subbudget = 0;
|
||||
var subbedrag = 0;
|
||||
|
||||
|
||||
if (b.uitgavetypes || b.uitgavetypes()) {
|
||||
if (b.uitgavetypes) {
|
||||
|
||||
subbudget = b.uitgavetypes[0].budget;
|
||||
subbedrag = b.uitgavetypes[0].bedrag;
|
||||
|
||||
$.each(b.uitgavetypes, function (i, k) {
|
||||
dit.uitgavetypes.push(new fAddUitgavetype(k));
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ( Number(totbudget) > 0) {
|
||||
if(Number(subbudget) > 0) subbudget = subbudget.replace(/[.| ,]/g, '');
|
||||
var budgettot = totbudget.replace(/[.| ,]/g, '');
|
||||
var budgetpct = Number(subbudget) / Number(budgettot)
|
||||
budgetpct = budgetpct * 100
|
||||
budgetpct = budgetpct.toFixed(1);
|
||||
dit.budgetpct(budgetpct);
|
||||
var format = budgetpct.replace('.', ',') + '%'
|
||||
dit.budgetpctFormat(Number(budgetpct) > 0 ? format : '' );
|
||||
}
|
||||
|
||||
if( Number(totbedrag) > 0) {
|
||||
if(Number(subbedrag) > 0) subbedrag = subbedrag.replace(/[.| ,]/g, '')
|
||||
var bedragtot = totbedrag.replace(/[.| ,]/g, '');
|
||||
var bedragpct = Number(subbedrag) / Number(bedragtot);
|
||||
bedragpct = bedragpct * 100;
|
||||
bedragpct = bedragpct.toFixed(1);
|
||||
dit.bedragpct(bedragpct);
|
||||
var format2 = bedragpct.replace('.', ',') + '%';
|
||||
dit.bedragpctFormat(Number(bedragpct) > 0 ? format2 : '' );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function fAddUitgavetype(k){
|
||||
this.finbestemmingID = k.id
|
||||
this.code = k.code
|
||||
this.bedrag = ko.observable(k.bedrag);
|
||||
this.formatted = ko.observable(parseFloat(k.bedrag).format(2,3,'.',','));
|
||||
if (parseFloat(k.bedrag) <= 0) this.formatted('');
|
||||
this.finbestemmingID = k.id;
|
||||
this.code = k.code;
|
||||
this.bedrag = ko.observable(0);
|
||||
this.bedragFormat = ko.observable('');
|
||||
this.budget = ko.observable(0);
|
||||
this.budgetFormat = ko.observable('');
|
||||
if(k.bedrag && Number(k.bedrag) !== 0) {
|
||||
var bedrag = Math.round(k.bedrag.replace(/[.| ,]/g, '') / 100).toFixed(2);
|
||||
this.bedrag(bedrag);
|
||||
bedrag = Number(bedrag).format(2,3,'.',',');
|
||||
this.bedragFormat(bedrag);
|
||||
}
|
||||
|
||||
if(k.budget && Number(k.budget) !== 0) {
|
||||
var budget = Math.round(k.budget.replace(/[.| ,]/g, '') / 100).toFixed(2);
|
||||
this.budget(budget);
|
||||
budget = Number(budget).format(2,3,'.',',');
|
||||
this.budgetFormat = ko.observable(budget);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -51,9 +106,9 @@ ls.initBestemmingenModel = function(){
|
||||
kalenderjaren : ko.observableArray([]),
|
||||
selectedKalenderjaar : ko.observable(),
|
||||
jaartoewijzing : ko.observable(),
|
||||
targetjaar : ko.observable(2017), //het jaar waarin met moet werken
|
||||
erIsBudget : ko.observable(false),
|
||||
targetjaar : ko.observable(2017), //het jaar waarin met moet werken
|
||||
uitgavetypes : ko.observableArray(),
|
||||
|
||||
basissoorten : ko.observableArray(),
|
||||
extrasoorten : ko.observableArray(),
|
||||
|
||||
@@ -63,8 +118,16 @@ ls.initBestemmingenModel = function(){
|
||||
basisgeopend : ko.observable(false),
|
||||
extrageopend : ko.observable(false),
|
||||
|
||||
totaalextra : ko.observable(),
|
||||
totaalbasis : ko.observable(),
|
||||
totaalextra : ko.observable(),
|
||||
totaalbasis : ko.observable(0),
|
||||
gebudgetbasis : ko.observable(0),
|
||||
gebudgetbasispct : ko.observable(''),
|
||||
gebudgetextrapct : ko.observable(''),
|
||||
totbasispct : ko.observable(''),
|
||||
totextrapct : ko.observable(''),
|
||||
budgetUnformatted : ko.observable(0),
|
||||
gebudgetextra : ko. observable(),
|
||||
|
||||
|
||||
initBindings :function(){
|
||||
var self = ls.BestemmingenModel;
|
||||
@@ -76,6 +139,7 @@ ls.initBestemmingenModel = function(){
|
||||
self.writer(result.writer);
|
||||
if (result.kalenderjaren){
|
||||
$.each(result.kalenderjaren, function(i,p){
|
||||
|
||||
self.kalenderjaren.push(new fAddKalenderjaar(p));
|
||||
}); // each
|
||||
self.selectedKalenderjaar(self.kalenderjaren()[0]);
|
||||
@@ -101,57 +165,475 @@ ls.initBestemmingenModel = function(){
|
||||
fGetBestemmingen: function(){
|
||||
var self = ls.BestemmingenModel;
|
||||
if (!self.selectedKalenderjaar()) return;
|
||||
self.basissoorten.removeAll();
|
||||
self.extrasoorten.removeAll();
|
||||
var sd ={jaarnr:self.selectedKalenderjaar().jaarnr}
|
||||
$.post("index.php/monfin2/bestemmingen/getBestemmingen", sd, function(data){
|
||||
if (data.jaartoewijzing){
|
||||
self.jaartoewijzing(data.jaartoewijzing);
|
||||
|
||||
$.post("index.php/monfin2/bestemmingen/getBestemmingen ", sd, function(data) {
|
||||
if (data.jaartoewijzing) {
|
||||
self.jaartoewijzing(data.jaartoewijzing);
|
||||
|
||||
}
|
||||
|
||||
self.jaarclosed(data.jaarclosed);
|
||||
self.fUpdateSubbedragen(function (){self.fGetUpdatedBestemmingen()}, data);
|
||||
},'json')
|
||||
},
|
||||
fUpdateSubbedragen: function(callback, data) {
|
||||
var self = ls.BestemmingenModel;
|
||||
self.bezig(true);
|
||||
if (data.basisbestemmingen) {
|
||||
$.each(data.basisbestemmingen, function (i, b) {
|
||||
$.each(b.subsoorten, function (x, s) {
|
||||
if (s.uitgavetypes) {
|
||||
|
||||
var subtotaal = Number(s.uitgavetypes[1].bedrag) + Number(s.uitgavetypes[2].bedrag) + Number(s.uitgavetypes[3].bedrag);
|
||||
subtotaal = subtotaal.format(2, 3, '.', ',');
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '')
|
||||
|
||||
var id = s.uitgavetypes[0].id;
|
||||
|
||||
var sd = {
|
||||
'id': id,
|
||||
'bedrag': subtotaal,
|
||||
}
|
||||
|
||||
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd, function(data){
|
||||
|
||||
}, 'json');
|
||||
}
|
||||
})
|
||||
if(i=== data.basisbestemmingen.length -1 ) self.bezig(false);
|
||||
})
|
||||
}
|
||||
if (data.extrabestemmingen) {
|
||||
$.each(data.extrabestemmingen, function (i, b) {
|
||||
$.each(b.subsoorten, function (x, s) {
|
||||
if (s.uitgavetypes) {
|
||||
var subtotaal = Number(s.uitgavetypes[1].bedrag) + Number(s.uitgavetypes[2].bedrag) + Number(s.uitgavetypes[3].bedrag);
|
||||
subtotaal = subtotaal.format(2, 3, '.', ',');
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '')
|
||||
var id = s.uitgavetypes[0].id;
|
||||
|
||||
var sd = {
|
||||
'id': id,
|
||||
'bedrag': subtotaal
|
||||
}
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd, function(data){
|
||||
|
||||
}, 'json');
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
if(! self.bezig()) if (typeof callback == "function") callback()
|
||||
},
|
||||
|
||||
|
||||
fGetUpdatedBestemmingen(){
|
||||
var self = ls.BestemmingenModel;
|
||||
var budget = 0;
|
||||
var bedrag = 0;
|
||||
var totbudget = self.jaartoewijzing().basis
|
||||
totbudget = totbudget.replace(/[.| ,]/g, '');
|
||||
var totbasispct = '';
|
||||
var gebudgetbasispct = '';
|
||||
|
||||
var sd ={jaarnr:self.selectedKalenderjaar().jaarnr}
|
||||
|
||||
$.post("index.php/monfin2/bestemmingen/getBestemmingen ", sd, function(data) {
|
||||
|
||||
|
||||
if (data.basisbestemmingen){
|
||||
$.each(data.basisbestemmingen, function(i, b){
|
||||
$.each(b.subsoorten, function(x, s) {
|
||||
if (s.uitgavetypes) {
|
||||
|
||||
|
||||
$.each(s.uitgavetypes, function (z, t) {
|
||||
if (t.code == 'TOTAAL') {
|
||||
budget += Number(t.budget);
|
||||
bedrag += Number(t.bedrag);
|
||||
}
|
||||
})
|
||||
}
|
||||
else {self.jaartoewijzing(false);}
|
||||
self.jaarclosed(data.jaarclosed);
|
||||
|
||||
self.basissoorten.removeAll();
|
||||
if (data.basisbestemmingen){
|
||||
$.each(data.basisbestemmingen,function(j,k){
|
||||
self.basissoorten.push(new fAddBasissoort(k));
|
||||
});
|
||||
} )
|
||||
})
|
||||
if(Number(totbudget) > 0) {
|
||||
var bedrag2 = bedrag.format(2, 3, '.', ',');
|
||||
bedrag2 = bedrag2.replace(/[.| ,]/g, '')
|
||||
var budget2 = budget.format(2, 3, '.', ',');
|
||||
budget2 = budget2.replace(/[.| ,]/g, '')
|
||||
|
||||
totbasispct = ((bedrag2 / totbudget) * 100).toFixed(1);
|
||||
totbasispct = totbasispct.replace('.', ',');
|
||||
gebudgetbasispct = ((budget2/totbudget) * 100).toFixed(1);
|
||||
gebudgetbasispct = gebudgetbasispct.replace('.', ',');
|
||||
}
|
||||
|
||||
self.totbasispct(totbasispct);
|
||||
self.gebudgetbasispct(gebudgetbasispct )
|
||||
|
||||
budget = self.fSetTotalValue(budget);
|
||||
self.gebudgetbasis(budget);
|
||||
bedrag = self.fSetTotalValue(bedrag);
|
||||
self.totaalbasis(bedrag);
|
||||
|
||||
bedrag = bedrag.replace(/[.|,]/g, '');
|
||||
|
||||
$.each(data.basisbestemmingen,function(j,k){
|
||||
self.basissoorten.push(new fAddBasissoort(j,k, totbudget, bedrag));
|
||||
});
|
||||
}
|
||||
budget = 0;
|
||||
bedrag = 0;
|
||||
totbudget = 0;
|
||||
var totextrapct = '';
|
||||
var gebudgetextrapct = '';
|
||||
if (data.extrabestemmingen){
|
||||
$.each(data.extrabestemmingen, function(i, b){
|
||||
$.each(b.subsoorten, function(x, s){
|
||||
$.each(s.uitgavetypes, function(z, t){
|
||||
if(t.code == 'TOTAAL') {
|
||||
budget += Number(t.budget);
|
||||
bedrag += Number(t.bedrag);
|
||||
}
|
||||
} )
|
||||
} )
|
||||
})
|
||||
|
||||
totbudget = self.jaartoewijzing().extra;
|
||||
|
||||
totbudget = totbudget.replace(/[.| ,]/g, '')
|
||||
if(Number(totbudget > 0)) {
|
||||
bedrag2 = bedrag.format(2, 3, '.', ',');
|
||||
bedrag2 = bedrag2.replace(/[.| ,]/g, '')
|
||||
budget2 = budget.format(2, 3, '.', ',');
|
||||
budget2 = budget2.replace(/[.| ,]/g, '')
|
||||
totextrapct = ((bedrag2 / totbudget) * 100).toFixed(1);
|
||||
totextrapct = totextrapct.replace('.', ',')
|
||||
gebudgetextrapct = ((budget2/totbudget) * 100).toFixed(1)
|
||||
gebudgetextrapct = gebudgetextrapct.replace('.',',');
|
||||
}
|
||||
self.extrasoorten.removeAll();
|
||||
if (data.extrabestemmingen){
|
||||
$.each(data.extrabestemmingen,function(j,k){
|
||||
self.extrasoorten.push(new fAddBasissoort(k));
|
||||
});
|
||||
}
|
||||
|
||||
self.opmerking(data.opmerking);
|
||||
|
||||
self.totextrapct(totextrapct);
|
||||
self.gebudgetextrapct(gebudgetextrapct)
|
||||
budget = self.fSetTotalValue(budget);
|
||||
self.gebudgetextra(budget);
|
||||
bedrag = self.fSetTotalValue(bedrag);
|
||||
self.totaalextra(bedrag);
|
||||
bedrag = bedrag.replace(/[.|,]/g, '');
|
||||
|
||||
$.each(data.extrabestemmingen,function(j,k){
|
||||
self.extrasoorten.push(new fAddBasissoort(j, k, totbudget, bedrag));
|
||||
});
|
||||
}
|
||||
|
||||
self.opmerking(data.opmerking);
|
||||
|
||||
},'json');
|
||||
},
|
||||
|
||||
fSaveBedrag:function(){
|
||||
fSetTotalValue: function(value){
|
||||
var self = ls.BestemmingenModel;
|
||||
var bedrag = value;
|
||||
bedrag = parseFloat(bedrag).format(2, 3, '.', ',');
|
||||
|
||||
return bedrag;
|
||||
},
|
||||
|
||||
fSaveBedrag: function( subsoortid, soort ){
|
||||
var self = ls.BestemmingenModel;
|
||||
if (self.jaarclosed()) return;
|
||||
var dit = this;
|
||||
var dit = this;
|
||||
|
||||
invoer = dit.formatted();
|
||||
if (invoer <= '' || ! invoer) invoer = '0'
|
||||
invoer = invoer.split('.').join('');
|
||||
invoer= invoer.replace(',' , '.');
|
||||
|
||||
if (isNaN( parseFloat(invoer) ) ) {
|
||||
invoer =0;
|
||||
}
|
||||
else {
|
||||
invoer=parseFloat(invoer)
|
||||
var subtotaal = 0;
|
||||
var subtotaalForm = '';
|
||||
var totuitgaven = 0;
|
||||
var totuitgavenForm = 0;
|
||||
var uitgavenpct = '0,0';
|
||||
var subtotID = 0;
|
||||
var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, ''));
|
||||
|
||||
// update bedrag en bedragformat
|
||||
var invoer = dit.bedragFormat();
|
||||
|
||||
if ( ! invoer) invoer = '0'
|
||||
invoer = invoer.split('.').join('');
|
||||
|
||||
invoer= invoer.replace(',' , '.');
|
||||
|
||||
if (isNaN( parseFloat(invoer) ) ) invoer = 0;
|
||||
else invoer = parseFloat(invoer)
|
||||
|
||||
|
||||
if(Number(invoer) > 0) dit.bedragFormat(parseFloat(invoer).format(2, 3, '.', ','));
|
||||
else dit.bedragFormat('');
|
||||
|
||||
dit.bedrag(invoer);
|
||||
var code = dit.code;
|
||||
|
||||
// update subtotalen
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
$.each(b.subsoorten(), function(x, s){
|
||||
if (s.uitgavetypes()) {
|
||||
if (s.subsoortID === subsoortid) {
|
||||
subtotID = s.uitgavetypes()[0].finbestemmingID;
|
||||
|
||||
switch(code){
|
||||
case 'PERSONEEL' : s.uitgavetypes()[0].bedrag(invoer+Number(s.uitgavetypes()[2].bedrag()) +Number(s.uitgavetypes()[3].bedrag()));
|
||||
break;
|
||||
case 'MATRIEEL': s.uitgavetypes()[0].bedrag(Number(s.uitgavetypes()[1].bedrag()) +invoer +Number(s.uitgavetypes()[3].bedrag()));
|
||||
break;
|
||||
case 'SCHOLING':s.uitgavetypes()[0].bedrag(Number(s.uitgavetypes()[1].bedrag()) +Number(s.uitgavetypes()[2].bedrag()) +invoer);
|
||||
break;
|
||||
}
|
||||
//zonder nullen van centen
|
||||
if (Number(s.uitgavetypes()[0].bedrag()) > 0) {
|
||||
subtotaalForm = Number(s.uitgavetypes()[0].bedrag()).format(2, 3, '.', ',');
|
||||
s.uitgavetypes()[0].bedragFormat(subtotaalForm)
|
||||
}
|
||||
}
|
||||
}
|
||||
totuitgaven = Number(totuitgaven) + Number(s.uitgavetypes()[0].bedrag());
|
||||
|
||||
})
|
||||
})
|
||||
if (parseFloat(totuitgaven) > 0) {
|
||||
totuitgavenForm = parseFloat(totuitgaven).format(2, 3, '.', ',');
|
||||
totuitgaven = totuitgavenForm.replace(/[.| ,]/g, '');
|
||||
}
|
||||
|
||||
// update procenten en reserve totalen van subsoorten
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
$.each(b.subsoorten(), function(x, s){
|
||||
subtotaal = Number(s.uitgavetypes()[0].bedrag());
|
||||
if (parseFloat(subtotaal) > 0) {
|
||||
subtotaal = parseFloat(subtotaal).format(2, 3, '.', ',');
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '');
|
||||
if (Number(totuitgaven) > 0) {
|
||||
uitgavenpct = ((Number(subtotaal) / Number(totuitgaven)) * 100).toFixed(1);
|
||||
uitgavenpct = uitgavenpct.replace('.', ',');
|
||||
s.bedragpctFormat(uitgavenpct + '%');
|
||||
|
||||
} else {
|
||||
s.bedragpct(0);
|
||||
s.bedragpctFormat('')
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
if(Number(totuitgaven) > 0) {
|
||||
uitgavenpct = ((Number(totuitgaven) / Number(totaalbudget)) * 100).toFixed(1);
|
||||
uitgavenpct = uitgavenpct.replace('.', ',');
|
||||
|
||||
}
|
||||
|
||||
soort ==='BASIS' ? self.totbasispct(uitgavenpct): self.totextrapct(uitgavenpct);
|
||||
soort=== 'BASIS' ? self.totaalbasis(totuitgavenForm): self.totaalextra(totuitgavenForm);
|
||||
|
||||
|
||||
|
||||
invoer = Math.round(invoer * 100);
|
||||
var sd = {
|
||||
'id' : dit.finbestemmingID,
|
||||
'bedrag': invoer
|
||||
|
||||
}
|
||||
console.log(sd, 'bedrag')
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd);
|
||||
|
||||
var sd2 = {
|
||||
'id' : subtotID,
|
||||
'bedrag': subtotaal
|
||||
|
||||
}
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd2);
|
||||
console.log(sd, 'regeltotaal')
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
fSaveBudget: function( subsoortid, soort ){
|
||||
var self = ls.BestemmingenModel;
|
||||
if (self.jaarclosed()) return;
|
||||
var dit = this;
|
||||
var budgetoud = dit.budget();
|
||||
var code = dit.code;
|
||||
var budgetoudForm = Number(dit.budget()) > 0 ? parseFloat(budgetoud).format(2, 3, '.', ',') : '';
|
||||
var subbudget = 0;
|
||||
var totaalgebudget = 0;
|
||||
var totaalgebudgetForm = 0;
|
||||
var totaalgebudgetpct = 0;
|
||||
var budgetpct = '';
|
||||
var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, ''));
|
||||
var stuurMelding = true;
|
||||
var restantOud = 0;
|
||||
var restantOudForm = '';
|
||||
|
||||
// update budget en budgetformat
|
||||
var invoer = dit.budgetFormat();
|
||||
if ( ! invoer) invoer = '0';
|
||||
invoer = invoer.split('.').join('');
|
||||
invoer= invoer.replace(',' , '.');
|
||||
if (isNaN( parseFloat(invoer) ) ) invoer = 0;
|
||||
else invoer = parseFloat(invoer)
|
||||
|
||||
// update budget
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
$.each(b.subsoorten(), function(x, s){
|
||||
if (s.uitgavetypes()) {
|
||||
if (s.subsoortID === subsoortid) {
|
||||
switch(code){
|
||||
case 'TOTAAL' : subbudget = Number(s.uitgavetypes()[1].budget()) +Number(s.uitgavetypes()[2].budget()) + Number(s.uitgavetypes()[3].budget());
|
||||
if(Number(invoer) >= Number(subbudget)) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
}
|
||||
totaalgebudget = Number(totaalgebudget) +Number(invoer);
|
||||
|
||||
break;
|
||||
case 'PERSONEEL': subbudget = Number(invoer) +Number(s.uitgavetypes()[2].budget()) + Number(s.uitgavetypes()[3].budget());
|
||||
if(Number(s.uitgavetypes()[0].budget()) >= Number(subbudget)) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget())
|
||||
}
|
||||
break;
|
||||
case 'MATERIEEL': subbudget = Number(s.uitgavetypes()[1].budget()) + Number(invoer)+ Number(s.uitgavetypes()[3].budget());
|
||||
if(Number(s.uitgavetypes()[0].budget()) >= subbudget) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget());
|
||||
}
|
||||
break;
|
||||
case 'SCHOLING': subbudget = Number(s.uitgavetypes()[1].budget()) + Number(s.uitgavetypes()[2].budget())+ Number(invoer) ;
|
||||
if(Number(s.uitgavetypes()[0].budget() >= subbudget)) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget())
|
||||
|
||||
console.log(subbudget , 'subbudget bij wijzigen scholing')
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
restantOud = s.uitgavetypes()[4].budget();
|
||||
restantOudForm = parseFloat(restantOud).format(2, 3, '.', ',');
|
||||
if(stuurMelding) {
|
||||
apprise('Het totaalbudget is kleiner dan de deelbudgetten.');
|
||||
dit.budgetFormat('');
|
||||
}
|
||||
else{
|
||||
|
||||
if(Number(invoer) > 0) dit.budgetFormat(parseFloat(invoer).format(2, 3, '.', ','));
|
||||
else dit.budgetFormat('');
|
||||
var restant = Number(s.uitgavetypes()[0].budget()) - subbudget;
|
||||
s.uitgavetypes()[4].budget(restant);
|
||||
Number(restant) === 0 ? s.uitgavetypes()[4].budgetFormat(''): s.uitgavetypes()[4].budgetFormat(parseFloat(restant).format(2, 3, '.', ','));
|
||||
|
||||
}
|
||||
}
|
||||
else{
|
||||
totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
|
||||
if(stuurMelding) return;
|
||||
if (parseFloat(totaalgebudget) > 0) {
|
||||
totaalgebudgetForm = parseFloat(totaalgebudget).format(2, 3, '.', ',');
|
||||
totaalgebudgetForm = parseFloat(totaalgebudget).format(2, 3, '.', ',');
|
||||
totaalgebudget = totaalgebudgetForm.replace(/[.| ,]/g, '');
|
||||
}
|
||||
|
||||
//waarden terugzetten als totaal budget wordt overschreden
|
||||
|
||||
if(Number(totaalgebudget) > Number(totaalbudget)){
|
||||
dit.budget(budgetoud);
|
||||
dit.budgetFormat(budgetoudForm);
|
||||
|
||||
//terugzetten restanten
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b) {
|
||||
$.each(b.subsoorten(), function (x, s) {
|
||||
if (s.uitgavetypes()) {
|
||||
if (s.subsoortID === subsoortid) {
|
||||
s.uitgavetypes()[4].budget(restantOud);
|
||||
s.uitgavetypes()[4].budgetFormat(Number(restantOud) > 0 ? restantOudForm: '');
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
var string = "Het budget overschrijdt het totaalbudget."
|
||||
if(Number(totaalbudget) ===0) string = 'Er is nog geen budget.'
|
||||
apprise(string);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// update procenten
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
|
||||
$.each(b.subsoorten(), function(x, s) {
|
||||
if (s.uitgavetypes()) {
|
||||
if (Number(totaalgebudget) > 0) {
|
||||
var subtotaal = s.uitgavetypes()[0].budget();
|
||||
subtotaal = parseFloat(subtotaal).format(2, 3, '.', ',')
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '')
|
||||
budgetpct = subtotaal / totaalbudget;
|
||||
budgetpct = budgetpct * 100;
|
||||
budgetpct = budgetpct.toFixed(1)
|
||||
budgetpct = budgetpct.replace('.', ',')
|
||||
s.budgetpctFormat(budgetpct + '%');
|
||||
}
|
||||
else {
|
||||
s.budgetpctFormat('');
|
||||
}
|
||||
}
|
||||
|
||||
dit.formatted(parseFloat(invoer).format(2,3,'.',','));
|
||||
if (invoer <= 0) dit.formatted('');
|
||||
dit.bedrag(invoer);
|
||||
})
|
||||
})
|
||||
|
||||
//update totalen
|
||||
|
||||
|
||||
if(Number(totaalgebudget) > 0) {
|
||||
totaalgebudgetpct = ((Number(totaalgebudget) / Number(totaalbudget)) * 100).toFixed(1);
|
||||
totaalgebudgetpct = totaalgebudgetpct.replace('.', ',');
|
||||
totaalgebudgetpct = ' (' + totaalgebudgetpct + '%)'
|
||||
}
|
||||
else totaalgebudgetpct = '';
|
||||
|
||||
soort=== 'BASIS' ? self.gebudgetbasis(totaalgebudgetForm): self.gebudgetextra(totaalgebudgetForm);
|
||||
soort ==='BASIS' ? self.gebudgetbasispct(totaalgebudgetpct): self.gebudgetextrapct(totaalgebudgetpct);
|
||||
|
||||
|
||||
invoer = Math.round(invoer * 100);
|
||||
var sd = {
|
||||
'id' : dit.finbestemmingID,
|
||||
'budget': invoer
|
||||
|
||||
}
|
||||
$.post("index.php/monfin2/bestemmingen/updatebudget", sd);
|
||||
},
|
||||
|
||||
|
||||
invoer = Math.round(invoer * 100) ;
|
||||
var sd = {id : dit.finbestemmingID,
|
||||
bedrag : invoer}
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd);
|
||||
},
|
||||
|
||||
fToggle: function(wat){
|
||||
switch(wat){
|
||||
@@ -160,6 +642,14 @@ ls.initBestemmingenModel = function(){
|
||||
};// switch
|
||||
},
|
||||
|
||||
fToelichting: function(){
|
||||
|
||||
apprise(
|
||||
'<p><span>In de rijen </span><span style="font-style: italic">budget </span><span>geeft het</span> <span style="font-weight: bold">percentage </span><span>het gebugeteerde bedrag uit de kolom TOTAAL weer in verhouding tot het totaalbudget.</span></p>'+
|
||||
' <p><span>In de rijen </span><span style="font-style: italic">uitgaven </span><span>geeft het</span> <span style="font-weight: bold">percentage </span><span>de uitgaven weer in de kolom TOTAAL in verhouding tot de totale uitgaven.</span></p>'
|
||||
)
|
||||
},
|
||||
|
||||
fSaveOpmerking: function(){
|
||||
var self= ls.BestemmingenModel;
|
||||
if (self.jaarclosed()) return;
|
||||
@@ -175,51 +665,8 @@ ls.initBestemmingenModel = function(){
|
||||
}
|
||||
} ; // definition van model
|
||||
|
||||
ls.BestemmingenModel.totaalbasis = ko.computed(function(){
|
||||
var som =0;
|
||||
var invoer = 0;
|
||||
if (this.basissoorten()) {
|
||||
$.each(this.basissoorten(), function(i,p){
|
||||
if (p.subsoorten()) {
|
||||
$.each(p.subsoorten(), function(a,b){
|
||||
$.each(b.uitgavetypes(), function(o,s){
|
||||
invoer=String(s.bedrag());
|
||||
invoer= invoer.replace(',' , '');
|
||||
if (! isNaN(invoer) ) {
|
||||
invoer=parseFloat(invoer)
|
||||
invoer = Math.round(invoer * 100) / 100;
|
||||
som = som + invoer;
|
||||
}
|
||||
}); // each uitgavetypes
|
||||
}); // each subsoorten
|
||||
} // if subsoorten
|
||||
}) // each soorten
|
||||
} // if basissoorten
|
||||
return som.format(2,3,'.',',');
|
||||
},ls.BestemmingenModel);
|
||||
|
||||
ls.BestemmingenModel.totaalextra = ko.computed(function(){
|
||||
var som =0;
|
||||
var invoer = 0;
|
||||
if (this.extrasoorten()) {
|
||||
$.each(this.extrasoorten(), function(i,p){
|
||||
if (p.subsoorten()) {
|
||||
$.each(p.subsoorten(), function(a,b){
|
||||
$.each(b.uitgavetypes(), function(o,s){
|
||||
invoer=String(s.bedrag());
|
||||
invoer= invoer.replace(',' , '');
|
||||
if (! isNaN(invoer) ) {
|
||||
invoer=parseFloat(invoer)
|
||||
invoer = Math.round(invoer * 100) / 100;
|
||||
som = som + invoer;
|
||||
}
|
||||
}); // each uitgavetypes
|
||||
}); // each subsoorten
|
||||
} // if subsoorten
|
||||
}) // each soorten
|
||||
} // if basissoorten
|
||||
return som.format(2,3,'.',',');
|
||||
},ls.BestemmingenModel);
|
||||
|
||||
|
||||
ls.BestemmingenModel.initBindings();
|
||||
}; // else
|
||||
|
||||
@@ -57,28 +57,29 @@ ls.initMonfinOverzicht2Model = function(){
|
||||
subTot : ko.observable(),
|
||||
grandTot : ko.observable(),
|
||||
//schoolbedragen : ko.observableArray([]),
|
||||
schooltotaal : ko.observable(''),
|
||||
kalenderjaren : ko.observableArray(),
|
||||
selectedKalenderjaar : ko.observable(),
|
||||
zelfjanee : ko.observable('1'),
|
||||
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(),
|
||||
basis : ko.observableArray(),
|
||||
extra : ko.observableArray(),
|
||||
sombasisperuitgavetype : ko.observableArray(),
|
||||
somextraperuitgavetype : ko.observableArray(),
|
||||
somextraperuitgavetype : ko.observableArray(),
|
||||
totsomperuitgavetype : ko.observableArray(),
|
||||
basisgeopend : ko.observable(false),
|
||||
extrageopend : ko.observable(false),
|
||||
budgetten : ko.observableArray(),
|
||||
budgetten : ko.observableArray(),
|
||||
selectedSubsoort : ko.observable(),
|
||||
|
||||
initBindings :function(){
|
||||
var self = ls.MonfinOverzicht2Model;
|
||||
if (!ko.dataFor(document.getElementById('pagmonfinoverzicht2')) ) {
|
||||
ko.applyBindings(ls.MonfinOverzicht2Model, document.getElementById("pagmonfinoverzicht2"));
|
||||
}
|
||||
$.post("index.php/monpas/monfinoverzicht/getkalenderjarenMetMax", function(data){
|
||||
$.post("index.php/monpas/monfinoverzicht/getkalenderjaren", function(data){
|
||||
self.kalenderjaren.removeAll();
|
||||
if (data){
|
||||
$.each(data, function(j,k){
|
||||
@@ -105,14 +106,18 @@ ls.initMonfinOverzicht2Model = function(){
|
||||
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);
|
||||
@@ -187,6 +192,28 @@ ls.initMonfinOverzicht2Model = function(){
|
||||
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());
|
||||
},
|
||||
@@ -195,6 +222,41 @@ ls.initMonfinOverzicht2Model = function(){
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user