diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index 476c717..a48f08e 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -55,7 +55,7 @@ class Bestemmingen extends MY_Controller{ } else { $orgid = $this->globorgid; - $jaarnr = $this->input->post('jaarnr'); + $jaarnr = $this->clean_input('jaarnr'); $jaarclosed = FALSE; $jaartoewijzing = $this->Toewijzingen_model->gettoewijzingperjaar($orgid, $jaarnr); if ($jaartoewijzing){ diff --git a/application/controllers/monfin2/Monfin2overzicht.php b/application/controllers/monfin2/Monfin2overzicht.php index b79cbfc..df54fd9 100644 --- a/application/controllers/monfin2/Monfin2overzicht.php +++ b/application/controllers/monfin2/Monfin2overzicht.php @@ -50,52 +50,35 @@ class Monfin2overzicht extends MY_Controller{ $totbesteed = $this->sommeeralles($totsomperuitgavetype, 'BEDRAG'); $totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET'); - $subbedragbasis = $sombasisperuitgavetype[3]->som; - $subbudgetbasis = $sombasisperuitgavetype[3]->budgetsom; - $sommen = $this->get_som_regel($basis, $subbedragbasis, $subbudgetbasis, $budgetten->basis); + + $sommen = $this->get_som_regel($basis, $budgetten->basis); $basis = $sommen['soorten']; - $somgebudgetpct = $sommen['somgebudgetpct']; $sombudgetpct = $sommen['sombudgetpct']; $sombedragpct = $sommen['sombedragpct']; - $sombedragbudgetpct = $sommen['sombedragbudgetpct']; - $subbedragextra = $somextraperuitgavetype[3]->som; - $subbudgetextra = $somextraperuitgavetype[3]->budgetsom; - $sommenex = $this->get_som_regel($extra, $subbedragextra, $subbudgetextra, $budgetten->extra); + $sommenex = $this->get_som_regel($extra, $budgetten->extra); $extra = $sommenex['soorten']; - $somgebudgetpctex = $sommenex['somgebudgetpct']; $sombudgetpctex = $sommenex['sombudgetpct']; $sombedragpctex = $sommenex['sombedragpct']; - $sombedragbudgetpctex = $sommenex['sombedragbudgetpct']; // todo // bereken budget - besteding verschil per basis/extra/overig $budgetten->basisverschil = number_format($budgetten->basis - $sombasisperuitgavetype[3]->som, 0, ',' , '.' ); $budgetten->extraverschil = number_format($budgetten->extra - $somextraperuitgavetype[3]->som, 0, ',' , '.' ); $budgetten->totaalverschil = $budgetten->totaal - ($sombasisperuitgavetype[3]->som +$somextraperuitgavetype[3]->som); - $budgetten->basisverschilgeb = number_format($sombasisperuitgavetype[3]->budgetsom - $sombasisperuitgavetype[3]->som, 0, ',' , '.' ); - $budgetten->extraverschilgeb = number_format($somextraperuitgavetype[3]->budgetsom - $somextraperuitgavetype[3]->som, 0, ',' , '.' ); - $budgetten->totaalverschilgeb = $totgebudgeteerd - ($sombasisperuitgavetype[3]->som +$somextraperuitgavetype[3]->som); - $budgetten->basisbudgetpct = number_format($sombudgetpct, 2,',', '.'); - $budgetten->basisgebudgetpct = number_format($somgebudgetpct, 2,',', '.'); - $budgetten->basisbedragpct = number_format($sombedragpct, 2,',', '.'); - $budgetten->basisbedragbudgetkaal = $sombedragbudgetpct; - $budgetten->basisbedragbudgetpct = number_format($sombedragbudgetpct, 2,',', '.'); - $budgetten->extrabudgetpct = number_format($sombudgetpctex, 2,',', '.'); - $budgetten->extragebudgetpct = number_format($somgebudgetpctex, 2,',', '.'); - $budgetten->extrabedragpct = number_format($sombedragpctex, 2,',', '.'); - $budgetten->extrabedragbudgetkaal = $sombedragpctex; - $budgetten->extrabedragbudgetpct = number_format($sombedragbudgetpctex, 2,',', '.'); + $budgetten->basisbudgetpct = number_format($sombudgetpct, 1,',', '.'); + $budgetten->basisbedragpct = number_format($sombedragpct, 1,',', '.'); + $budgetten->extrabudgetpct = number_format($sombudgetpctex, 1,',', '.'); + $budgetten->extrabedragpct = number_format($sombedragpctex, 1,',', '.'); $bedrag = $budgetten->totaal > 0 ? ($totbesteed/$budgetten->totaal) *100: 0; $budgetten->totbedragbudgetkaal = $bedrag; - $budgetten->totbedragbudgetpct = number_format($bedrag, 2, ',', '.'); - $budgetten->totbedragpct = $totbesteed > 0 ? '100,00': 0; + $budgetten->totbedragbudgetpct = number_format($bedrag, 1, ',', '.'); $bedrag2 = $budgetten->totaal > 0 ?($totgebudgeteerd/$budgetten->totaal)*100 : 0; - $budgetten->totbudgetpct = number_format($bedrag2, 2, ',', '.'); - $budgetten->totgebudgetpct= $totgebudgeteerd > 0 ? '100,00': 0; + $budgetten->totbudgetpct = number_format($bedrag2, 1, ',', '.'); + // todo // zorg dat alle getallen geformateerd zijn met een duizendtalscheidingsteken $budgetten->totaal = number_format($budgetten->totaal, 0 , ',' , '.'); @@ -121,7 +104,13 @@ class Monfin2overzicht extends MY_Controller{ } - $schooltot = array( 'budget' => $budgetten->totaal , + + + + + + + $schooltot = array( 'budget' => $budgetten->totaal , "bestemd" => number_format($totbesteed, 0, ',' , '.' ), "gebudget" => number_format($totgebudgeteerd, 0, ',' , '.' ), "verschil" => number_format($budgetten->totaalverschil, 0, ',' , '.' )); @@ -192,7 +181,7 @@ class Monfin2overzicht extends MY_Controller{ $totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET'); $subbedragbasis = $sombasisperuitgavetype[3]->som; $subbudgetbasis = $sombasisperuitgavetype[3]->budgetsom; - $sommen = $this->get_som_regel($basis, $subbedragbasis, $subbudgetbasis, $budgetten->basis); + $sommen = $this->get_som_regel($basis, $budgetten->basis); $basis = $sommen['soorten']; $somgebudgetpct = $sommen['somgebudgetpct']; $sombudgetpct = $sommen['sombudgetpct']; @@ -201,7 +190,7 @@ class Monfin2overzicht extends MY_Controller{ $subbedragextra = $somextraperuitgavetype[3]->som; $subbudgetextra = $somextraperuitgavetype[3]->budgetsom; - $sommenex = $this->get_som_regel($extra,$subbedragextra, $subbudgetextra, $budgetten->extra ); + $sommenex = $this->get_som_regel($extra, $budgetten->extra ); $extra = $sommenex['soorten']; $somgebudgetpctex = $sommenex['somgebudgetpct']; $sombudgetpctex = $sommenex['sombudgetpct']; @@ -228,7 +217,7 @@ class Monfin2overzicht extends MY_Controller{ $budgetten->totbedragpct = $totbesteed > 0 ? '100,00': 0; $bedrag2 = $budgetten->totaal > 0 ?($totgebudgeteerd/$budgetten->totaal)*100 : 0; $budgetten->totbudgetpct = number_format($bedrag2, 2, ',', '.'); - $budgetten->totgebudgetpct= $totgebudgeteerd > 0 ? '100,00': 0; + // todo @@ -294,7 +283,7 @@ class Monfin2overzicht extends MY_Controller{ return $totsom; } - function get_som_regel($soorten, $bedrag, $gebudget, $budget ){ + function get_som_regel($soorten, $budget ){ $somgebudgetpct = 0; $sombudgetpct = 0; $sombedragpct = 0; @@ -315,33 +304,23 @@ class Monfin2overzicht extends MY_Controller{ } $subsoort->uitgavetypes[3]= new stdClass; $bedragpct = 0; - $bedragbudgetpct = 0; - $gebudgetpct = 0; $budgetpct = 0; $subsoort->uitgavetypes[3]->bedrag =number_format($som,0, ',' , '.'); $subsoort->uitgavetypes[3]->budget =number_format($budgetsom,0, ',' , '.'); - if($budget > 0) $bedragbudgetpct = ($som/$budget)*100; - $subsoort->uitgavetypes[3]->bedragbudgetpct= number_format($bedragbudgetpct,2, ',' , '.'); - - if($subsoort->uitgavetypes[3]->bedrag> 0 && $bedrag > 0) $bedragpct = ($som/$bedrag) * 100; - $subsoort->uitgavetypes[3]->bedragpct= number_format($bedragpct,2, ',' , '.'); - - - if($subsoort->uitgavetypes[3]->budget> 0 &&$gebudget > 0) $gebudgetpct = ($budgetsom/$gebudget) * 100; - $subsoort->uitgavetypes[3]->gebudgetpct =number_format($gebudgetpct,2, ',' , '.'); - - if($subsoort->uitgavetypes[3]->budget> 0 && $budget > 0) $budgetpct =($budgetsom/$budget) * 100; - $subsoort->uitgavetypes[3]->budgetpct =number_format($budgetpct,2, ',' , '.'); + if($subsoort->uitgavetypes[3]->budget> 0 && $budget > 0) { + $budgetpct = ($budgetsom / $budget) * 100; + $subsoort->uitgavetypes[3]->budgetpct = number_format($budgetpct, 1, ',', '.'); + $bedragpct = ($som/$budget) * 100; + $subsoort->uitgavetypes[3]->bedragpct= number_format($bedragpct,1, ',' , '.'); + } $subsoort->uitgavetypes[3]->verschil = number_format(($budgetsom - $som), 0,',', '.'); $subsoort->uitgavetypes[3]->code ='REGELSOM'; $sombudgetpct =$sombudgetpct + $budgetpct; - $somgebudgetpct = $somgebudgetpct +$gebudgetpct; $sombedragpct = $sombedragpct +$bedragpct; - $sombedragbudgetpct = $sombedragbudgetpct + $bedragbudgetpct; } diff --git a/application/controllers/monpas/Streefcijfers.php b/application/controllers/monpas/Streefcijfers.php index ff8f14d..972d17b 100644 --- a/application/controllers/monpas/Streefcijfers.php +++ b/application/controllers/monpas/Streefcijfers.php @@ -272,14 +272,11 @@ class Streefcijfers extends MY_Controller{ } } - $orgversie = $this->Orgversies_model->getOrgVersie($this->globorgid, $module); - if($orgversie) { - $ambitie = $this->Ambities_model->mh_get_ambities($module, $this->globorgid, $orgversie->orgversieID); - if ($ambitie) $ambities = array_merge($ambities, $ambitie); - else { - $standaardSWVNodig = true; - - } + $ambitie = $this->Ambities_model->mh_get_ambities($module, $this->globorgid, $this->globorgid); + if($ambitie) $ambities = array_merge($ambities,$ambitie); + else{ + $standaardSWVNodig = true; + $orgversie = $this->Orgversies_model->getOrgVersie($this->globorgid, $module); } } @@ -386,7 +383,6 @@ class Streefcijfers extends MY_Controller{ if (!$this->userid) die; $orgversieid = $this->clean_input("orgversieid"); - $id = false; if($this->super == false) { $result = $this->Autorisatienivos_model->checkmanage($this->userid, $this->globorgid); diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index c6e50ca..74963da 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -82,7 +82,7 @@ class MY_Controller extends CI_Controller{ // public $version = '1.19.01';// compactdiv met orgid ipv globorg // public $version = '1.19.05';// ambities per org incl kamerversies // public $version = '1.19.06';// monfin met budgetten - public $version = '1.20.00';// monfin met budgetten + public $version = '1.20.01';// monfin met budgetten public $partituurid; public $globProfielVersieID = 1; public $userid; //id of the user that is logged in diff --git a/application/models/monfin2/Finbestemmingen_model.php b/application/models/monfin2/Finbestemmingen_model.php index 8e1379d..1c503d7 100644 --- a/application/models/monfin2/Finbestemmingen_model.php +++ b/application/models/monfin2/Finbestemmingen_model.php @@ -201,7 +201,7 @@ class Finbestemmingen_model extends MY_Model{ function get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoortID, $uitgavetype){ $this->sql = "SELECT id, FORMAT(sum(bedrag) / 100,2) as bedrag, - FORMAT(budget / 100,2) as budget, + FORMAT(sum(budget) / 100,2) as budget, uitgavetype as code FROM finbestemmingen WHERE organisatie_id in ({$orglist}) diff --git a/application/models/shared/Licenties_model.php b/application/models/shared/Licenties_model.php index a84ad79..77f0f2d 100644 --- a/application/models/shared/Licenties_model.php +++ b/application/models/shared/Licenties_model.php @@ -48,7 +48,7 @@ class Licenties_model extends MY_Model{ JOIN tb_cluster C on C.id = M.cluster_id WHERE O.id = {$orgid} AND actief = 1 - GROUP BY C.naam "; + GROUP BY C.id "; return $this->get_query_result(); } diff --git a/application/views/monpas/pages/monfin2/bestemmingen.php b/application/views/monpas/pages/monfin2/bestemmingen.php index a5c3c58..ed60be7 100644 --- a/application/views/monpas/pages/monfin2/bestemmingen.php +++ b/application/views/monpas/pages/monfin2/bestemmingen.php @@ -9,7 +9,7 @@ -
+

Er zijn nog geen budgetgegevens voor dit kalenderjaar

@@ -32,7 +32,8 @@ - + + @@ -56,7 +57,7 @@ Som - + Percentage budget - + - -
+
-
- + +
+ + +
+
@@ -107,7 +117,7 @@ -
+ +
@@ -125,13 +135,23 @@
-
+
+ +
+ + +
+ @@ -146,13 +166,17 @@ + + +
Gebudgeteerd per kostenpost +
- Totaal budget + Totaalbudget @@ -172,111 +196,133 @@ - + + - - - - - - - - - - - - - - - - - - - Som - - - Percentage - - - - - - - - budget - - - - - - - + + + + + + + + + + + + + + + + + + + + Som + + + Percentage + + + - -
+ budget + + + + + + + + +
- -
- - -
- -
- - - - - - uitgaven - - - - - - - - - -
+
+ + +
+ + +
+ + +
+ + +
+ + + + + uitgaven + + + + + + + + +
+ visible: ! $root.jaarclosed()"> -
- - -
+
+ + +
-
- - - - +
+ + +
+ + +
+ + + + + + +
@@ -287,13 +333,16 @@ +
Gebudgeteerd per kostenpost + data-bind="text: gebudgetextra() "> + +
- Totaal budget + Totaalbudget diff --git a/application/views/monpas/pages/monfin2/overzicht.php b/application/views/monpas/pages/monfin2/overzicht.php index fc72346..9ddd4c6 100644 --- a/application/views/monpas/pages/monfin2/overzicht.php +++ b/application/views/monpas/pages/monfin2/overzicht.php @@ -77,50 +77,38 @@ style="padding: 3px; width: 22%; vertical-align:bottom; background-color: #968026;">Basisondersteuning - - + + - som + uitgavensom - % budget - - - - % uitgaven - - - - Budget - - + budgetsom + + - % gebudgett. - - - - % budget - - - - verschil - + % uitgaven + + + + % budget + + + @@ -131,7 +119,8 @@ Totaal basis - + + @@ -141,20 +130,21 @@ 0,00 - - - - - + - + + + + + + - @@ -164,41 +154,35 @@ - - - - 0, click: $root.fOpenDetails.bind($data, 'DETAIL')"> - +
- - - - - + + + @@ -225,18 +209,6 @@ data-bind="click: fToelichting.bind($data, 'SOM')"> - - % budget - - - - - % uitgaven - - - Budget - - % gebuggett. - - - - - % budget - - - Verschil + + % uitgaven + + + + + % budget + + + + @@ -285,23 +258,24 @@ 0,00 - - - - - - - - + > + + + + + + + + @@ -311,39 +285,35 @@ + style: {color: uitgavetypes[0].budget && Number(uitgavetypes[0].budget.replace(/\./g,'') ) < Number(uitgavetypes[0].bedrag.replace(/\./g,'')) ? 'red' : 'black' }" + style="text-align:right; width:98px "> + style: {color: uitgavetypes[1].budget && Number(uitgavetypes[1].budget.replace(/\./g,'')) < Number(uitgavetypes[1].bedrag.replace(/\./g,'')) ? 'red' : 'black' }" + style="text-align:right; width:91px "> + style: {color: uitgavetypes[2].budget && Number(uitgavetypes[2].budget.replace(/\./g,'')) + style: {color: uitgavetypes[3].budget && Number(uitgavetypes[3].budget.replace(/\./g,'')) < Number(uitgavetypes[3].bedrag.replace(/\./g,'')) ? 'red' : 'black' }" + style="text-align:right;width:91px"> - - - - - + + data-bind="visible: Number(uitgavetypes[3].budget.replace(/\./g,''))> 0, + click: $root.fOpenDetails.bind($data, 'EXTRA')"> - - - - + + + @@ -355,7 +325,7 @@ - Totaal besteed + Totaal @@ -367,29 +337,25 @@ 0,00 + + + + + + + - - - - - - - - - - - + diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index 0360d44..55e9042 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -8,8 +8,6 @@ ls.initBestemmingenModel = function(){ } function fAddBasissoort(j,k, budget, totbudget, bedrag ){ - - var dit = this; this.soortID = k.soortID this.naam = k.naam @@ -30,16 +28,19 @@ ls.initBestemmingenModel = function(){ var bedragtot = 0; var centbudget = 0; var budgettot2 = 0; - var centbudget2 = 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.subbudget = ko.observable(0); - this.subbudgetform = ko.observable(''); + 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); if (b.uitgavetypes) { @@ -51,17 +52,29 @@ ls.initBestemmingenModel = function(){ }); 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, '.', ',')); centbudget = dit.subbudgetform(); centbudget = centbudget.replace(/[.| ,]/g, ''); + uitgaven = dit.formtotaal(); + uitgaven = uitgaven.replace(/[.| ,]/g, ''); 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) { @@ -70,15 +83,20 @@ ls.initBestemmingenModel = function(){ budgetpct2 = budgetpct2.replace('.', ',') dit.gebudgetprocent(budgettot2 > 0 ? budgetpct2 + '%' : '') } + else dit.gebudgetprocent(''); if(totbedrag) { bedragtot = totbedrag.replace(/[.| ,]/g, ''); - uitgaven = dit.formtotaal(); - uitgaven = uitgaven.replace(/[.| ,]/g, ''); - uitgaven = ((Number(uitgaven) / Number(bedragtot)) * 100).toFixed(1) - dit.procent(uitgaven > 0 ? uitgaven + '%' : '') + + + var uitgavenF = ((Number(uitgaven) / Number(bedragtot)) * 100).toFixed(1) + dit.procent(Number(uitgaven) > 0 ? uitgavenF + '%' : '') } + else dit.procent(''); + + + } } @@ -116,11 +134,15 @@ ls.initBestemmingenModel = function(){ basisgeopend : ko.observable(false), extrageopend : ko.observable(false), - totaalextra : ko.observable(), - totaalbasis : ko.observable(0), - gebudgetbasis : ko.observable(0), - budgetUnformatted : ko.observable(0), - gebudgetextra : 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(){ @@ -133,6 +155,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]); @@ -161,7 +184,8 @@ ls.initBestemmingenModel = function(){ self.basissoorten.removeAll(); self.extrasoorten.removeAll(); var sd ={jaarnr:self.selectedKalenderjaar().jaarnr} - $.post("index.php/monfin2/bestemmingen/getBestemmingen", sd, function(data){ + + $.post("index.php/monfin2/bestemmingen/getBestemmingen ", sd, function(data){ if (data.jaartoewijzing){ self.jaartoewijzing(data.jaartoewijzing); } @@ -169,6 +193,10 @@ ls.initBestemmingenModel = function(){ self.jaarclosed(data.jaarclosed); var budget = 0; var bedrag = 0; + var totbudget = self.jaartoewijzing().basis + totbudget = totbudget.replace(/[.| ,]/g, ''); + var totbasispct = ''; + var gebudgetbasispct = ''; if (data.basisbestemmingen){ $.each(data.basisbestemmingen, function(i, b){ $.each(b.subsoorten, function(x, s){ @@ -178,11 +206,26 @@ ls.initBestemmingenModel = function(){ } ) } ) }) + 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); - var totbudget = self.jaartoewijzing().basis; + $.each(data.basisbestemmingen,function(j,k){ self.basissoorten.push(new fAddBasissoort(j,k, budget, totbudget, bedrag)); }); @@ -190,6 +233,8 @@ ls.initBestemmingenModel = function(){ 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){ @@ -199,11 +244,28 @@ ls.initBestemmingenModel = function(){ } ) } ) }) + + 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.totextrapct(totextrapct); + self.gebudgetextrapct(gebudgetextrapct) budget = self.fSetTotalValue(budget); self.gebudgetextra(budget); bedrag = self.fSetTotalValue(bedrag); self.totaalextra(bedrag); - totbudget = self.jaartoewijzing().extra; + $.each(data.extrabestemmingen,function(j,k){ self.extrasoorten.push(new fAddBasissoort(j, k, budget, totbudget, bedrag)); }); @@ -222,96 +284,125 @@ ls.initBestemmingenModel = function(){ return bedrag; }, - - fSaveBedrag:function(subsoortid, soort){ + fSaveBedrag: function( subsoortid, soort ){ var self = ls.BestemmingenModel; if (self.jaarclosed()) return; - var dit = this; - var uitgave = 0; - var formuitgave = 0; - var totaaluitgaven = 0; - var totaaluitgavenR = 0; - // if( Number(dit.budget()) <= 0){ - // apprise("Vul eerst een budget in.") - // return; - // } - var invoer = dit.formatted(); + var dit = this; + var subtotaal = 0; + var subtotaalForm = ''; + var totuitgaven = 0; + var totuitgavenForm = 0; + var uitgavenpct = '0,0'; + var budgetpct = ''; + var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, '')); + + // update bedrag en bedragformat + var invoer = dit.formatted(); if ( ! invoer) invoer = '0' invoer = invoer.split('.').join(''); invoer= invoer.replace(',' , '.'); - if (isNaN( parseFloat(invoer) ) ) { - return; - } - else { - invoer=parseFloat(invoer) - } + if (isNaN( parseFloat(invoer) ) ) invoer = 0; + else invoer = parseFloat(invoer) + + if(Number(invoer) > 0) dit.formatted(parseFloat(invoer).format(2, 3, '.', ',')); + else dit.formatted(''); - dit.formatted(parseFloat(invoer).format(2,3,'.',',')); - if (invoer <= 0) dit.formatted(''); dit.bedrag(invoer); - $.each(soort === 'BASIS' ? self.basissoorten() : self.extrasoorten(), function(i, b){ - $.each(b.subsoorten(), function(x, s){ - if (s.uitgavetypes()) { - $.each(s.uitgavetypes(), function (i, k) { - totaaluitgaven = Number(totaaluitgaven) + Number(k.bedrag()); - }); - if(s.subsoortID === subsoortid) { - $.each(s.uitgavetypes(), function (i, k) { - uitgave = Number(uitgave) + Number(k.bedrag()); - }); - s.totaal(uitgave); - s.formtotaal(parseFloat(uitgave) === 0 ? '' : parseFloat(uitgave).format(2, 3, '.', ',')); - } - - } - }) - }) - totaaluitgaven = totaaluitgaven.format(2, 3, '.', ','); - totaaluitgavenR = totaaluitgaven.replace(/[.| ,]/g, ''); - - $.each(soort === 'BASIS' ? self.basissoorten() : self.extrasoorten(), function(i, b){ + // update subtotalen + $.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){ $.each(b.subsoorten(), function(x, s){ if (s.uitgavetypes()) { - let procent = 0; - formuitgave = s.formtotaal(); - formuitgave = formuitgave.replace(/[.| ,]/g, ''); - if (Number(totaaluitgavenR) > 0) procent = ((Number(formuitgave) / Number(totaaluitgavenR)) * 100).toFixed(1) - else formuitgave = 0; - s.procent(Number(totaaluitgavenR) > 0 && Number(procent) > 0 ? procent + '%' : '') + if (s.subsoortID === subsoortid) { + $.each(s.uitgavetypes(), function (z, k) { + subtotaal = Number(subtotaal) + Number(k.bedrag()); + }); + s.totaal(subtotaal); + //zonder nullen van centen + if (Number(subtotaal) > 0) { + subtotaalForm = Number(subtotaal).format(2, 3, '.', ','); + s.formtotaal(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()); + }); } + }) }) + if (parseFloat(totuitgaven) > 0) { + totuitgavenForm = parseFloat(totuitgaven).format(2, 3, '.', ','); + totuitgaven = totuitgavenForm.replace(/[.| ,]/g, ''); + } - soort === 'BASIS' ? self.totaalbasis(totaaluitgaven): self.totaalextra(totaaluitgaven) ; + // 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 (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.procent(uitgavenpct + '%'); + budgetpct = ((Number(subtotaal) / Number(totaalbudget)) * 100).toFixed(1); + budgetpct = budgetpct.replace('.', ',') + s.totaalbudgetprocent(budgetpct + '%'); + } + } + else{ + s.procent(''); + s.totaalbudgetprocent(''); + } - invoer = Math.round(invoer * 100) ; - var sd = {'id': dit.finbestemmingID, - 'bedrag' : invoer - } + } + + }) + }) + 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, + } $.post("index.php/monfin2/bestemmingen/updatebedrag", sd); }, - fSaveBudget:function( subsoortid, soort ){ + + + + fSaveBudget: function( subsoortid, soort ){ var self = ls.BestemmingenModel; if (self.jaarclosed()) return; var dit = this; var budgetoud = dit.budget(); - var budgetoudForm = dit.budget() > 0 ? parseFloat(budgetoud).format(2, 3, '.', ',') : ''; + var budgetoudForm = Number(dit.budget()) > 0 ? parseFloat(budgetoud).format(2, 3, '.', ',') : ''; var subbudget = 0; - var subbudgetoud = 0; var subbudgetForm = ''; - var subbudgetFormoud = ''; var totaalgebudget = 0; - var totaalgebudgetR = 0; - var totaalgebudgetRoud = 0; - var totaalgebudgetpct = ''; - var totaalgebudgetpctoud = ''; - var subbudgetpct = ''; - var subbudgetpctoud = ''; - - + var totaalgebudgetForm = 0; + var totaalgebudgetpct = 0; + var budgetpct = ''; + var gebudgetpct = ''; var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, '')); // update budget en budgetformat @@ -319,15 +410,12 @@ ls.initBestemmingenModel = function(){ if ( ! invoer) invoer = '0' invoer = invoer.split('.').join(''); invoer= invoer.replace(',' , '.'); - if (isNaN( parseFloat(invoer) ) ) invoer =0; + if (isNaN( parseFloat(invoer) ) ) invoer = 0; else invoer = parseFloat(invoer) - dit.budgetFormat(parseFloat(invoer).format(2, 3, '.', ',')); - if (invoer <= 0){ - dit.budgetFormat(budgetoudForm); - invoer = 0; - return; - } + if(Number(invoer) > 0) dit.budgetFormat(parseFloat(invoer).format(2, 3, '.', ',')); + else dit.budgetFormat(''); + dit.budget(invoer); // update subtotalen @@ -335,14 +423,11 @@ ls.initBestemmingenModel = function(){ $.each(b.subsoorten(), function(x, s){ if (s.uitgavetypes()) { if (s.subsoortID === subsoortid) { - subbudgetoud = s.subbudget(); - subbudgetFormoud= s.subbudgetform(); - subbudgetpctoud = s.budgetprocent(); - totaalgebudgetpctoud = s.gebudgetprocent(); $.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, '.', ','); } @@ -351,11 +436,7 @@ ls.initBestemmingenModel = function(){ if (Number(subbudget) > 0) { subbudget = subbudgetForm.replace(/[.| ,]/g, ''); } - - subbudgetpct = (Number(totaalbudget) > 0 ? ((Number(subbudget) / Number(totaalbudget)) * 100).toFixed(1) : 0); - subbudgetpct = subbudgetpct.replace('.', ','); - s.budgetprocent(Number(totaalbudget) > 0 ? subbudgetpct + '%' : '') - + //met extra nullen van centen } $.each(s.uitgavetypes(), function (z, k) { totaalgebudget = Number(totaalgebudget) + Number(k.budget()); @@ -366,60 +447,86 @@ ls.initBestemmingenModel = function(){ }) if (parseFloat(totaalgebudget) > 0) { - totaalgebudgetR = parseFloat(totaalgebudget).format(2, 3, '.', ','); - totaalgebudgetR = totaalgebudgetR.replace(/[.| ,]/g, ''); - - + totaalgebudgetForm = parseFloat(totaalgebudget).format(2, 3, '.', ','); + totaalgebudget = totaalgebudgetForm.replace(/[.| ,]/g, ''); } - totaalgebudgetpct = (Number(totaalgebudgetR) > 0 ? ((Number(subbudget) / Number(totaalgebudgetR)) * 100).toFixed(1) : 0); - totaalgebudgetpct = totaalgebudgetpct.replace('.', ','); + //waarden terugzetten als totaal budget wordt overschreden - // update procenten - $.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){ - $.each(b.subsoorten(), function(x, s){ - if (s.uitgavetypes()) { - if (s.subsoortID === subsoortid) { - s.gebudgetprocent(totaalgebudgetpct + '%' ); - } - } - }) - }) - - if(Number(totaalgebudget) > Number(totaalbudget) ){ - dit.budgetFormat(budgetoudForm); + 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(subbudgetoud); - s.subbudgetform(subbudgetFormoud); - s.budgetprocent(subbudgetpctoud); - s.gebudgetprocent(totaalgebudgetpctoud); + s.subbudget(s.subbudgetReserve()); + s.subbudgetform(s.subbudgetformReserve()); } + } + }) }) - - - - //hier alle oude waarden invullen - apprise("Het budget overschrijdt het totaalbudget") + var string = "Het budget overschrijdt het totaalbudget." + if(Number(totaalbudget) ===0) string = 'Er is nog geen budget.' + apprise(string); return; + } - else { - soort=== 'BASIS' ? self.gebudgetbasis(totaalgebudget): self.gebudgetextra(totaalbudget); + + // 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()) { + 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()); + } + + } + + }) + }) + + //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); - } }, @@ -433,10 +540,10 @@ ls.initBestemmingenModel = function(){ fToelichting: function(){ - apprise('

In de regel budget geeft het eerste getal de som van het budget weer als percentage van het toaal gebudgetteerde bedrag.

' + - '

Het tweede getal is de som ban het budget als percentage van het totaal toegewezen budget.

' + - '

In de regel uitgave wordt de som van de uitgave weergegeven als percentage van de totale uitgaven.

') - }, + apprise('

De eerste kolom geeft de som weer van het budget als percentage van het totaal gebudgetteerde bedrag (rij budget). ' + + 'De tweede rij (uitgaven) geeft de som van de uitgaven als percentage van de totale uitgaven.

' + + '

De tweede kolom geeft de som van resp. het budget/de uitgaven als percentage van het totaalbudget weer.

' ) + }, fSaveOpmerking: function(){ var self= ls.BestemmingenModel; diff --git a/public/js/monpas/models/monfin2/monfinoverzicht2.js b/public/js/monpas/models/monfin2/monfinoverzicht2.js index aecd77d..7fb64e4 100644 --- a/public/js/monpas/models/monfin2/monfinoverzicht2.js +++ b/public/js/monpas/models/monfin2/monfinoverzicht2.js @@ -198,17 +198,14 @@ ls.initMonfinOverzicht2Model = function(){ break; case 'SOM' : message = 'Totale uitgaven afgerond op hele euros.'; break; - case '%BUDGET' : message = 'Uitgaven als percentage van het totale toegewezen budget.'; - break; - case '%UITGAVEN' : message = 'Uitgaven als percentage van de totale uitgaven.'; - 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 '%GEBUDGET': message ='Budget als percentage van het totaal gebudgetteerde bedrag.'; + case '%BUDGET' : message = 'Het gebudgetteerde bedrag als percentage van het totale budget.'; break; - case '%BUDGET2' : message='Budget als percentage van het totaal toegewezen budget.'; + case '%UITGAVEN' : message = 'Uitgaven als percentage van het totale budget.'; break; - case 'VERSCHIL' : message = 'Het verschil tussen het toegewezen budget en de uitgaven afgerond op hele euros.'; } apprise(message); @@ -251,7 +248,7 @@ ls.initMonfinOverzicht2Model = function(){ 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 ten opzichte van het toegewezen budget.'); + 'Het tweede getal is het percentage van de gebudgetteerde interventie ten opzichte van het totaalbudget.'); },