From ac46447bea6d54108f3ce25e363c666973cc0123 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Fri, 9 Jun 2023 15:50:11 +0200 Subject: [PATCH] tussenopslag --- .../controllers/monfin2/Bestemmingen.php | 2 + .../models/monfin2/Finbestemmingen_model.php | 33 +- .../monpas/pages/monfin2/bestemmingen.php | 355 ++++++------ public/css/monpas/main.css | 13 + .../js/monpas/models/monfin2/bestemmingen.js | 548 ++++++++++-------- 5 files changed, 513 insertions(+), 438 deletions(-) diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index a48f08e..b59675b 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -90,6 +90,8 @@ class Bestemmingen extends MY_Controller{ if ($targetjaar == $bestemmingjaar){ $this->Finbestemmingen_model->update_record(['bedrag'=>$this->clean_input('bedrag')], $bestemmingID); } + $record = $this->Finbestemmingen_model->get_record_by_id($bestemmingID); + json_encode(['record'=>$record]); } function updatebudget(){ diff --git a/application/models/monfin2/Finbestemmingen_model.php b/application/models/monfin2/Finbestemmingen_model.php index 1c503d7..7e6388b 100644 --- a/application/models/monfin2/Finbestemmingen_model.php +++ b/application/models/monfin2/Finbestemmingen_model.php @@ -35,6 +35,9 @@ class Finbestemmingen_model extends MY_Model{ WHERE finsoort_id = {$soortID}"; return $this->get_query_result(); } + + + function get_overig_subsoorten($soortID,$orgID){ $this->sql = "SELECT id as subsoortID, omschrijving as naam @@ -58,13 +61,31 @@ class Finbestemmingen_model extends MY_Model{ foreach($soorten as $soort){ $soort->subsoorten = $this->get_subsoorten($soort->soortID); if ($soort->subsoorten){ - foreach($soort->subsoorten as $subsoort){ - // haal per uitgavetypes de bedragen op - if ($uitgavetypes){ - foreach($uitgavetypes as $uitgavetype){ - $subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr,$subsoort->subsoortID,$uitgavetype->code); + foreach($soort->subsoorten as $index =>$subsoort){ + // haal per uitgavetypes de bedragen op + if ($uitgavetypes) { + $restant = 0; + $restantbudget = 0; + foreach ($uitgavetypes as $uitgavetype) { + + $subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr, $subsoort->subsoortID, $uitgavetype->code); } - } + if (count($subsoort->uitgavetypes) > 0) { + $restant = number_format(0, 2); + $restantbudget = floatval(str_replace(',' , '' , $subsoort->uitgavetypes[0]->budget)) - + floatval(str_replace(',' , '' , $subsoort->uitgavetypes[1]->budget)) - + floatval(str_replace(',' , '' , $subsoort->uitgavetypes[2]->budget)) - + floatval(str_replace(',' , '' , $subsoort->uitgavetypes[3]->budget)); + $restantbudget = number_format($restantbudget, 2); + } + $subsoort->uitgavetypes[] = [ + 'id' => '0', + 'bedrag' => $restant, + 'budget' => $restantbudget, + 'code' => 'RESTANT', + ]; + } + } }// if subsoorten } diff --git a/application/views/monpas/pages/monfin2/bestemmingen.php b/application/views/monpas/pages/monfin2/bestemmingen.php index fe2870c..5a7029c 100644 --- a/application/views/monpas/pages/monfin2/bestemmingen.php +++ b/application/views/monpas/pages/monfin2/bestemmingen.php @@ -23,89 +23,101 @@ Basisondersteuning
- - +
+ - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + @@ -114,47 +126,38 @@ - - - + - - - - - - - - - + - -
- - - - - Som - - Percentage - - -
+ + + + Restant + + + Percentage + + +
+
+ + + + +
budget + + 0), + style : {'backgroundColor' : code == 'TOTAAL' ? '#e6ffee' : Number($parent.uitgavetypes()[0].budget()) > 0 ? '#e6ffee' : '#cccccc' } " /> + + + + + + -
- - -
-
-
- +
uitgaven + + + + + + -
- - -
-
-
-
@@ -187,90 +190,93 @@ Extra ondersteuning
- - +
+ - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + - - - - - - - - - - - - @@ -279,47 +285,34 @@ - - - - - - - - - - - - - - @@ -351,9 +344,7 @@

Opmerkingen

- - diff --git a/public/css/monpas/main.css b/public/css/monpas/main.css index 8dabd6f..76d876b 100644 --- a/public/css/monpas/main.css +++ b/public/css/monpas/main.css @@ -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; diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index 722a8d7..894ea3b 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -7,108 +7,92 @@ ls.initBestemmingenModel = function(){ this.naam = p.naam; } - function fAddBasissoort(j,k, budget, totbudget, bedrag ){ + 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(a, b, budget, totbudget, bedrag, k.categorie)); + dit.subsoorten.push(new fAddSubsoort(a, b, totbudget, bedrag, k.categorie)); }); } } - function fAddSubsoort(a,b,gebudget, totbudget, totbedrag, categorie){ - var dit = this; - var bedrag = 0; - var budget = 0; - var uitgaven = 0; - var budgettot = 0; - var bedragtot = 0; - var centbudget = 0; - var budgettot2 = 0; - var centbedrag = 0; - this.subsoortID = b.subsoortID; - this.naam = b.naam; - this.categorie = categorie - this.uitgavetypes = ko.observableArray(); - this.totaal = ko.observable(0); - this.formtotaal = ko.observable(''); - this.procent = ko.observable(0); - this.totaalbudgetprocent = ko.observable(''); - this.subbudget = ko.observable(0); - this.subbudgetReserve = ko.observable(0); - this.subbudgetform = ko.observable(''); - this.subbudgetformReserve = ko.observable(''); - this.budgetprocent = ko.observable(0); - this.gebudgetprocent = ko.observable(0); + function fAddSubsoort(a,b, totbudget, totbedrag, categorie) { + var dit = this; + 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) { + subbudget = b.uitgavetypes[0].budget; + subbedrag = b.uitgavetypes[0].bedrag; $.each(b.uitgavetypes, function (i, k) { - bedrag = Number(bedrag) + Number(k.bedrag); - budget = Number(budget) + Number(k.budget); dit.uitgavetypes.push(new fAddUitgavetype(k)); + }); - dit.totaal(bedrag); - dit.formtotaal(parseFloat(bedrag) === 0 ? '' : parseFloat(bedrag).format(2, 3, '.', ',')); - dit.subbudget(budget); - dit.subbudgetReserve(budget); - dit.subbudgetform(parseFloat(budget) === 0 ? '' : parseFloat(budget).format(2, 3, '.', ',')); - dit.subbudgetformReserve(parseFloat(budget) === 0 ? '' : parseFloat(budget).format(2, 3, '.', ',')); + 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 : '' ); + } - centbudget = dit.subbudgetform(); - centbudget = centbudget.replace(/[.| ,]/g, ''); - uitgaven = dit.formtotaal(); - uitgaven = uitgaven.replace(/[.| ,]/g, ''); + 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 : '' ); + } - if (totbudget) { - budgettot = totbudget.replace(/[.| ,]/g, ''); - var budgetpct = ((Number(centbudget) / Number(budgettot)) * 100).toFixed(1) - budgetpct = budgetpct.replace('.', ',') - dit.budgetprocent(budgettot > 0 ? budgetpct + '%' : ''); - var budgetbedragpct = ((Number(uitgaven) / Number(budgettot)) * 100).toFixed(1) - budgetbedragpct = budgetbedragpct.replace('.', ',') - dit.totaalbudgetprocent(Number(budgettot) > 0 && Number(centbudget) > 0 ? budgetbedragpct + '%' : ''); } - else{ - dit.budgetprocent(''); - dit.totaalbudgetprocent(''); - } - - if (gebudget) { - budgettot2 = gebudget.replace(/[.| ,]/g, ''); - var budgetpct2 = ((Number(centbudget) / Number(budgettot2)) * 100).toFixed(1) - budgetpct2 = budgetpct2.replace('.', ',') - dit.gebudgetprocent(budgettot2 > 0 ? budgetpct2 + '%' : '') - } - else dit.gebudgetprocent(''); - - - if(totbedrag) { - bedragtot = totbedrag.replace(/[.| ,]/g, ''); - - - var uitgavenF = ((Number(uitgaven) / Number(bedragtot)) * 100).toFixed(1) - dit.procent(Number(uitgaven) > 0 ? uitgavenF + '%' : '') - } - else dit.procent(''); - } - } - 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.budget = ko.observable(k.budget); - this.budgetFormat = ko.observable(parseFloat(k.budget).format(2,3,'.',',')); - if (parseFloat(k.budget) <= 0) this.budgetFormat(''); - this.kleur =ko.observable('#000000'); + 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); + } + if(Number(this.bedrag) > Number(this.budget())) this.bedragKleur('red'); + if( Number(this.bedrag()) < 0) this.bedragKleur('red'); + if(Number(this.budget())< 0) this.budgetKleur('red') + + + } @@ -183,25 +167,94 @@ ls.initBestemmingenModel = function(){ 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); - } - else {self.jaartoewijzing(false);} - self.jaarclosed(data.jaarclosed); + $.post("index.php/monfin2/bestemmingen/getBestemmingen ", sd, function(data) { + if (data.jaartoewijzing) { + self.jaartoewijzing(data.jaartoewijzing); + } else { + self.jaartoewijzing(false); + } + 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){ - $.each(s.uitgavetypes, function(z, t){ - budget += Number(t.budget); - bedrag += Number(t.bedrag); - } ) + $.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); + } + }) + } } ) }) if(Number(totbudget) > 0) { @@ -224,8 +277,10 @@ ls.initBestemmingenModel = function(){ bedrag = self.fSetTotalValue(bedrag); self.totaalbasis(bedrag); + bedrag = bedrag.replace(/[.|,]/g, ''); + $.each(data.basisbestemmingen,function(j,k){ - self.basissoorten.push(new fAddBasissoort(j,k, budget, totbudget, bedrag)); + self.basissoorten.push(new fAddBasissoort(j,k, totbudget, bedrag)); }); } budget = 0; @@ -237,8 +292,10 @@ ls.initBestemmingenModel = function(){ $.each(data.extrabestemmingen, function(i, b){ $.each(b.subsoorten, function(x, s){ $.each(s.uitgavetypes, function(z, t){ - budget += Number(t.budget); - bedrag += Number(t.bedrag); + if(t.code == 'TOTAAL') { + budget += Number(t.budget); + bedrag += Number(t.bedrag); + } } ) } ) }) @@ -263,9 +320,10 @@ ls.initBestemmingenModel = function(){ 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, budget, totbudget, bedrag)); + self.extrasoorten.push(new fAddBasissoort(j, k, totbudget, bedrag)); }); } @@ -286,52 +344,58 @@ ls.initBestemmingenModel = function(){ var self = ls.BestemmingenModel; if (self.jaarclosed()) return; var dit = this; + var subtotaal = 0; var subtotaalForm = ''; var totuitgaven = 0; var totuitgavenForm = 0; var uitgavenpct = '0,0'; - var budgetpct = ''; + var subtotID = 0; var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, '')); // update bedrag en bedragformat - var invoer = dit.formatted(); + 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.formatted(parseFloat(invoer).format(2, 3, '.', ',')); - else dit.formatted(''); + + 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) { - $.each(s.uitgavetypes(), function (z, k) { - subtotaal = Number(subtotaal) + Number(k.bedrag()); - }); + subtotID = s.uitgavetypes()[0].finbestemmingID; - s.totaal(subtotaal); + 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(subtotaal) > 0) { - subtotaalForm = Number(subtotaal).format(2, 3, '.', ','); - s.formtotaal(subtotaalForm); + if (Number(s.uitgavetypes()[0].bedrag()) > 0) { + subtotaalForm = Number(s.uitgavetypes()[0].bedrag()).format(2, 3, '.', ','); + s.uitgavetypes()[0].bedragFormat(subtotaalForm) } - - if (Number(subtotaal) > 0) { - subtotaal = subtotaalForm.replace(/[.| ,]/g, ''); - } - //met extra nullen van centen } - $.each(s.uitgavetypes(), function (z, k) { - totuitgaven = Number(totuitgaven) + Number(k.bedrag()); - }); } + totuitgaven = Number(totuitgaven) + Number(s.uitgavetypes()[0].bedrag()); }) }) @@ -343,26 +407,24 @@ ls.initBestemmingenModel = function(){ // update procenten en reserve totalen van subsoorten $.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){ $.each(b.subsoorten(), function(x, s){ - if (s.uitgavetypes()) { - subtotaal = s.totaal(); + + if (s.uitgavetypes() && s.subsoortID === subsoortid) { + subtotaal = Number(s.uitgavetypes()[0].bedrag()); if (parseFloat(subtotaal) > 0) { subtotaal = parseFloat(subtotaal).format(2, 3, '.', ','); subtotaal = subtotaal.replace(/[.| ,]/g, ''); - if(Number(totuitgaven)> 0 ) { + if (Number(totuitgaven) > 0) { uitgavenpct = ((Number(subtotaal) / Number(totuitgaven)) * 100).toFixed(1); uitgavenpct = uitgavenpct.replace('.', ','); - s.procent(uitgavenpct + '%'); - budgetpct = ((Number(subtotaal) / Number(totaalbudget)) * 100).toFixed(1); - budgetpct = budgetpct.replace('.', ',') - s.totaalbudgetprocent(budgetpct + '%'); - } - } - else{ - s.procent(''); - s.totaalbudgetprocent(''); - } + s.bedragpctFormat(uitgavenpct + '%'); - } + } else { + s.bedragpct(0); + s.bedragpctFormat('') + + } + + }} }) }) @@ -383,6 +445,12 @@ ls.initBestemmingenModel = function(){ 'bedrag': invoer, } $.post("index.php/monfin2/bestemmingen/updatebedrag", sd); + + var sd2 = { + 'id' : subtotID, + 'bedrag': subtotaal, + } + $.post("index.php/monfin2/bestemmingen/updatebedrag", sd2); }, @@ -393,114 +461,142 @@ ls.initBestemmingenModel = function(){ 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 subbudgetForm = ''; var totaalgebudget = 0; var totaalgebudgetForm = 0; var totaalgebudgetpct = 0; var budgetpct = ''; - var gebudgetpct = ''; 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' + 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.budgetFormat(parseFloat(invoer).format(2, 3, '.', ',')); - else dit.budgetFormat(''); - - dit.budget(invoer); - - // update subtotalen + // 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) { - $.each(s.uitgavetypes(), function (z, k) { - subbudget = Number(subbudget) + Number(k.budget()); - }); - s.subbudget(subbudget); - //zonder nullen van centen - if (parseFloat(subbudget) > 0) { - subbudgetForm = parseFloat(subbudget).format(2, 3, '.', ','); + switch(code){ + case 'TOTAAL' : subbudget = Number(s.uitgavetypes()[1].budget()) +Number(s.uitgavetypes()[2].budget()) + Number(s.uitgavetypes()[3].budget()); + if(invoer >= subbudget) { + dit.budget(invoer); + stuurMelding = false; + } + totaalgebudget +=invoer + + break; + case 'PERSONEEL': subbudget = invoer +Number(s.uitgavetypes()[2].budget()) + Number(s.uitgavetypes()[3].budget()); + if(Number(s.uitgavetypes()[0].budget()) >= subbudget) { + dit.budget(invoer); + stuurMelding = false; + totaalgebudget+= Number(s.uitgavetypes()[0].budget()) + } + break; + case 'MATERIEEL': subbudget = Number(s.uitgavetypes()[1].budget()) + invoer+ Number(s.uitgavetypes()[3].budget()); + if(Number(s.uitgavetypes()[0].budget()) >= subbudget) { + dit.budget(invoer); + stuurMelding = false; + totaalgebudget+= Number(s.uitgavetypes()[0].budget()); + } + break; + case 'SCHOLING': subbudget = Number(s.uitgavetypes()[1].budget()) + Number(s.uitgavetypes()[2].budget())+ invoer ; + if(Number(s.uitgavetypes()[0].budget() >= subbudget)) { + dit.budget(invoer); + stuurMelding = false; + totaalgebudget+= Number(s.uitgavetypes()[0].budget()) + } + break; + } - s.subbudgetform(Number(subbudget) > 0 ? subbudgetForm : ''); + + + 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); + if(restant > 0 ) s.uitgavetypes()[4].budgetFormat(parseFloat(restant).format(2, 3, '.', ',')); - if (Number(subbudget) > 0) { - subbudget = subbudgetForm.replace(/[.| ,]/g, ''); } - //met extra nullen van centen } - $.each(s.uitgavetypes(), function (z, k) { - totaalgebudget = Number(totaalgebudget) + Number(k.budget()); - }); + else{ + totaalgebudget += 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(restantOudForm); +// +// } +// } +// }) +// }) +// +// // var string = "Het budget overschrijdt het totaalbudget." +// // if(Number(totaalbudget) ===0) string = 'Er is nog geen budget.' +// // apprise(string); +// // return; +// +// } - if(Number(totaalgebudget) > Number(totaalbudget)){ - dit.budget(budgetoud); - dit.budgetFormat(budgetoudForm); - $.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){ - $.each(b.subsoorten(), function(x, s){ - if (s.uitgavetypes()) { - if (s.subsoortID === subsoortid) { - s.subbudget(s.subbudgetReserve()); - s.subbudgetform(s.subbudgetformReserve()); - } - - } - - }) - }) - var string = "Het budget overschrijdt het totaalbudget." - if(Number(totaalbudget) ===0) string = 'Er is nog geen budget.' - apprise(string); - return; - - } - - // update procenten en reserve totalen van subsoorten + // update procenten $.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){ - $.each(b.subsoorten(), function(x, s){ - if (s.uitgavetypes()) { - subbudget = s.subbudget(); - if (parseFloat(subbudget) > 0) { - subbudget = parseFloat(subbudget).format(2, 3, '.', ','); - subbudget = subbudget.replace(/[.| ,]/g, ''); - if(Number(totaalgebudget)> 0 ) { - gebudgetpct = ((Number(subbudget) / Number(totaalgebudget)) * 100).toFixed(1); - gebudgetpct = gebudgetpct.replace('.', ','); - s.gebudgetprocent(gebudgetpct + '%'); - budgetpct = ((Number(subbudget) / Number(totaalbudget)) * 100).toFixed(1); - budgetpct = budgetpct.replace('.', ',') - s.budgetprocent(budgetpct + '%'); - } - } - else{ - s.gebudgetprocent(''); - s.budgetprocent(''); - } - - if (s.subsoortID === subsoortid) { - s.subbudgetReserve(s.subbudget()); - s.subbudgetformReserve(s.subbudgetform()); - } + $.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(''); + } + } }) }) @@ -539,8 +635,8 @@ ls.initBestemmingenModel = function(){ fToelichting: function(){ apprise( - '

In de rijen budget geeft het percentage het gebugeteerde bedrag in de rij weer in verhouding tot het toaalbudget.

'+ - '

In de rijen uitgaven geeft het percentage de uitgaven weer in de rij in verhouding tot de totale uitgaven.

' + '

In de rijen budget geeft het percentage het gebugeteerde bedrag uit de kolom TOTAAL weer in verhouding tot het totaalbudget.

'+ + '

In de rijen uitgaven geeft het percentage de uitgaven weer in de kolom TOTAAL in verhouding tot de totale uitgaven.

' ) }, @@ -558,54 +654,6 @@ ls.initBestemmingenModel = function(){ },500); } } ; // 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 } // function initBestemmingenModel
+ + + + Restant + + Percentage + + +
+ + + + +
- - - - - Som - - Percentage - - -
budget + + + + + + + -
- - -
-
-
- +
uitgaven + + + + + + + -
- - -
-
-
-