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
-
-
+
@@ -187,90 +190,93 @@
Extra ondersteuning
-
-
+
+
- |
+ |
|
- |
- |
- |
- |
- |
-
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+
-
|
budget |
-
+
+
+
+
+
+
+
|
-
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
+
|
@@ -279,47 +285,34 @@
|
uitgaven |
-
-
+ |
+
+
+
+
+
+
|
-
-
-
-
-
-
- |
-
-
|
-
-
-
-
-
-
-
-
-
-
@@ -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