From 4173dd2dc56ffb54e4400adb07ad0f6281c7fce3 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Fri, 24 Mar 2023 15:00:04 +0100 Subject: [PATCH 01/17] budgetteren in monfin --- application/config/config.php | 2 +- .../controllers/monfin2/Bestemmingen.php | 15 +- .../controllers/monfin2/Monfin2overzicht.php | 554 +++++++++++++----- application/core/MY_Controller.php | 3 +- .../models/monfin2/Finbestemmingen_model.php | 33 +- .../views/monpas/modals/findetails_modal.php | 48 ++ .../monpas/pages/monfin2/bestemmingen.php | 295 ++++++++-- .../views/monpas/pages/monfin2/overzicht.php | 398 ++++++++++--- .../views/monpas/pages/monfin2/pmsorgs.php | 190 ++++-- .../js/monpas/models/monfin2/bestemmingen.js | 465 ++++++++++++--- .../monpas/models/monfin2/monfinoverzicht2.js | 76 ++- 11 files changed, 1647 insertions(+), 432 deletions(-) create mode 100644 application/views/monpas/modals/findetails_modal.php diff --git a/application/config/config.php b/application/config/config.php index 4257562..5ecbc16 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -227,7 +227,7 @@ $config['allow_get_array'] = TRUE; | your log files will fill up very fast. | */ -$config['log_threshold'] = 0; +$config['log_threshold'] = 1; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index 707cf4f..476c717 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -8,7 +8,6 @@ class Bestemmingen extends MY_Controller{ "monpas/Toewijzingen_model", "monfin2/Finuitgavetypes_model", "monfin2/Finbestemmingen_model", - "monfin2/Finsoorten_model", "monfin2/Finsubsoorten_model"); $this->load->model($models); @@ -52,7 +51,6 @@ class Bestemmingen extends MY_Controller{ function getBestemmingen(){ if($this->Autorisaties_model->check_autorisatie($this->userrole, READER) <=0) { $jaartoewijzing =array(); - $bestedingen = array(); $jaarclosed = TRUE; } else { @@ -72,7 +70,7 @@ class Bestemmingen extends MY_Controller{ } $basisbestemmingen = $this->Finbestemmingen_model->get_bestemmingen($orgid,$jaarnr,"BASIS"); $extrabestemmingen = $this->Finbestemmingen_model->get_bestemmingen($orgid,$jaarnr,"EXTRA"); - + $opmerking = $this->Bestedingopmerkingen_model->getopmerking($orgid, $jaarnr); }; @@ -90,10 +88,19 @@ class Bestemmingen extends MY_Controller{ $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); if ($targetjaar == $bestemmingjaar){ - $this->Finbestemmingen_model->update_record(['bedrag'=>$this->input->post('bedrag')], $bestemmingID); + $this->Finbestemmingen_model->update_record(['bedrag'=>$this->clean_input('bedrag')], $bestemmingID); } } + function updatebudget(){ + // TODO check autorisatie + $bestemmingID = $this->clean_input("id"); + + $this->Finbestemmingen_model->update_record(['budget'=>$this->clean_input('budget')], $bestemmingID); + + } + + function saveopmerking(){ // TODO check autorisatie $orgid = $this->globorgid; diff --git a/application/controllers/monfin2/Monfin2overzicht.php b/application/controllers/monfin2/Monfin2overzicht.php index 7a5455a..b79cbfc 100644 --- a/application/controllers/monfin2/Monfin2overzicht.php +++ b/application/controllers/monfin2/Monfin2overzicht.php @@ -22,35 +22,81 @@ class Monfin2overzicht extends MY_Controller{ $kalenderjaarnr = $this->clean_input("jaarnr"); $uitgavetypes = $this->Finuitgavetypes_model->get_uitgavetypes(); $budgetten = $this->Toewijzingen_model->gettoewijzingperjaar($orgid, $kalenderjaarnr); - $totbudget = 0; - $totbesteed = 0; $basis = array(); $extra = array(); - $sompersoort = array(); + $schooltot = 0; $opmerking = ''; - if ($budgetten){ - // $totbudget = $budgetten->basis + $budgetten->extra ; - $budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra)/100); - $budgetten->basis = ROUND($budgetten->basis / 100); - $budgetten->extra = Round($budgetten->extra/ 100); + if ($budgetten) { + $budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra) / 100); + $budgetten->basis = ROUND($budgetten->basis / 100); + $budgetten->extra = Round($budgetten->extra / 100); + } + else{ + $budgetten = new stdClass(); + $budgetten->totaal = 0; + $budgetten->basis = 0; + $budgetten->extra = 0; + + } $basis = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"BASIS"); $extra = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"EXTRA"); $sombasisperuitgavetype = $this->get_som_per_uitgavetype($basis, $uitgavetypes); $somextraperuitgavetype = $this->get_som_per_uitgavetype($extra, $uitgavetypes); $totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes); - $totbesteed = $this->sommeeralles($totsomperuitgavetype); - $basis = $this->get_som_regel($basis); - $extra = $this->get_som_regel($extra); - // todo + $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); + $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); + $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); - // todo + $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,',', '.'); + + + $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; + $bedrag2 = $budgetten->totaal > 0 ?($totgebudgeteerd/$budgetten->totaal)*100 : 0; + $budgetten->totbudgetpct = number_format($bedrag2, 2, ',', '.'); + $budgetten->totgebudgetpct= $totgebudgeteerd > 0 ? '100,00': 0; + // todo // zorg dat alle getallen geformateerd zijn met een duizendtalscheidingsteken $budgetten->totaal = number_format($budgetten->totaal, 0 , ',' , '.'); $budgetten->basis = number_format($budgetten->basis , 0 , ',' , '.'); @@ -58,34 +104,44 @@ class Monfin2overzicht extends MY_Controller{ foreach($sombasisperuitgavetype as $sompertype){ $sompertype->som = number_format($sompertype->som,0, ',' , '.' ); - } + $sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' ); + + + } foreach($somextraperuitgavetype as $sompertype){ $sompertype->som = number_format($sompertype->som,0, ',' , '.' ); - } + $sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' ); + + + } foreach($totsomperuitgavetype as $sompertype){ $sompertype->som = number_format($sompertype->som,0, ',' , '.' ); - } + $sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' ); + + + } $schooltot = array( 'budget' => $budgetten->totaal , "bestemd" => number_format($totbesteed, 0, ',' , '.' ), + "gebudget" => number_format($totgebudgeteerd, 0, ',' , '.' ), "verschil" => number_format($budgetten->totaalverschil, 0, ',' , '.' )); $opmerking = $this->Bestedingopmerkingen_model->getopmerking($orgid, $kalenderjaarnr); - }; // if budgetten +// }; // if budgetten if (! isset($sombasisperuitgavetype)) $sombasisperuitgavetype = 0; if (! isset($somextraperuitgavetype)) $somextraperuitgavetype = 0; if (! isset($totsomperuitgavetype)) $totsomperuitgavetype = 0; if (! isset($schooltot)) $schooltot = 0; echo json_encode(array('uitgavetypes' =>$uitgavetypes, - 'basis' =>$basis, - 'extra' =>$extra, - 'sombasisperuitgavetype' =>$sombasisperuitgavetype, - 'somextraperuitgavetype' =>$somextraperuitgavetype, - 'totsomperuitgavetype' =>$totsomperuitgavetype, - 'schooltotaal' => $schooltot, - 'budgetten' => $budgetten, - 'opmerking' => $opmerking)); + 'basis' =>$basis, + 'extra' =>$extra, + 'sombasisperuitgavetype' =>$sombasisperuitgavetype, + 'somextraperuitgavetype' =>$somextraperuitgavetype, + 'totsomperuitgavetype' =>$totsomperuitgavetype, + 'schooltotaal' => $schooltot, + 'budgetten' => $budgetten, + 'opmerking' => $opmerking)); } function getschoolbedragenNieuw(){ @@ -103,24 +159,24 @@ class Monfin2overzicht extends MY_Controller{ } else { $budgetten = $this->Toewijzingen_model->gettoewijzingperjaar($orgid, $kalenderjaarnr); } - $totbudget = 0; - $totbesteed = 0; + $basis = array(); $extra = array(); - $sompersoort = array(); + $schooltot = 0; $opmerking = ''; - if ($budgetten){ - if ($soortoverzicht == 3){ - $budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra)); - $budgetten->basis = ROUND($budgetten->basis ); - $budgetten->extra = ROUND($budgetten->extra); - } else { - $budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra)/100); - $budgetten->basis = ROUND($budgetten->basis / 100); - $budgetten->extra = ROUND($budgetten->extra/ 100); - } + if ($budgetten) { + if ($soortoverzicht == 3) { + $budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra)); + $budgetten->basis = ROUND($budgetten->basis); + $budgetten->extra = ROUND($budgetten->extra); + } else { + $budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra) / 100); + $budgetten->basis = ROUND($budgetten->basis / 100); + $budgetten->extra = ROUND($budgetten->extra / 100); + } + if ($soortoverzicht == 3){ $basis = $this->Finbestemmingen_model->get_bestemmingen_over_orgs($orgid, $suborgslist, $kalenderjaarnr,"BASIS"); $extra = $this->Finbestemmingen_model->get_bestemmingen_over_orgs($orgid, $suborgslist, $kalenderjaarnr,"EXTRA"); @@ -132,15 +188,50 @@ class Monfin2overzicht extends MY_Controller{ $sombasisperuitgavetype = $this->get_som_per_uitgavetype($basis, $uitgavetypes); $somextraperuitgavetype = $this->get_som_per_uitgavetype($extra, $uitgavetypes); $totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes); - $totbesteed = $this->sommeeralles($totsomperuitgavetype); - $basis = $this->get_som_regel($basis); - $extra = $this->get_som_regel($extra); + $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); + $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 ); + $extra = $sommenex['soorten']; + $somgebudgetpctex = $sommenex['somgebudgetpct']; + $sombudgetpctex = $sommenex['sombudgetpct']; + $sombedragpctex = $sommenex['sombedragpct']; + $sombedragbudgetpctex = $sommen['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); - // todo + $budgetten->basisbudgetpct = number_format($sombudgetpct, 2,',', '.'); + $budgetten->basisgebudgetpct = number_format($somgebudgetpct, 2,',', '.'); + $budgetten->basisbedragpct = number_format($sombedragpct, 2,',', '.'); + $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->extrabedragbudgetpct = number_format($sombedragbudgetpctex, 2,',', '.'); + + $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; + $bedrag2 = $budgetten->totaal > 0 ?($totgebudgeteerd/$budgetten->totaal)*100 : 0; + $budgetten->totbudgetpct = number_format($bedrag2, 2, ',', '.'); + $budgetten->totgebudgetpct= $totgebudgeteerd > 0 ? '100,00': 0; + + + // todo // zorg dat alle getallen geformateerd zijn met een duizendtalscheidingsteken $budgetten->totaal = number_format($budgetten->totaal, 0 , ',' , '.'); $budgetten->basis = number_format($budgetten->basis , 0 , ',' , '.'); @@ -148,16 +239,23 @@ class Monfin2overzicht extends MY_Controller{ foreach($sombasisperuitgavetype as $sompertype){ $sompertype->som = number_format($sompertype->som,0, ',' , '.' ); - } + $sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' ); + + } foreach($somextraperuitgavetype as $sompertype){ $sompertype->som = number_format($sompertype->som,0, ',' , '.' ); - } + $sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' ); + + } foreach($totsomperuitgavetype as $sompertype){ $sompertype->som = number_format($sompertype->som,0, ',' , '.' ); - } + $sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' ); + + } $schooltot = array( 'budget' => $budgetten->totaal , "bestemd" => number_format($totbesteed, 0, ',' , '.' ), + "gebudget" => number_format($totgebudgeteerd, 0, ',' , '.' ), "verschil" => number_format($budgetten->totaalverschil, 0, ',' , '.' )); if ($soortoverzicht == 3){ @@ -166,9 +264,9 @@ class Monfin2overzicht extends MY_Controller{ $opmerking = $this->Bestedingopmerkingen_model->getopmerking($orgid, $kalenderjaarnr); } }; // if budgetten - if (! isset($sombasisperuitgavetype)) $sombasisperuitgavetype = 0; - if (! isset($somextraperuitgavetype)) $somextraperuitgavetype = 0; - if (! isset($totsomperuitgavetype)) $totsomperuitgavetype = 0; + if (! isset($sombasisperuitgavetype)) $sombasisperuitgavetype = false; + if (! isset($somextraperuitgavetype)) $somextraperuitgavetype = false; + if (! isset($totsomperuitgavetype)) $totsomperuitgavetype = false; if (! isset($schooltot)) $schooltot = 0; echo json_encode(array('uitgavetypes' =>$uitgavetypes, @@ -181,46 +279,87 @@ class Monfin2overzicht extends MY_Controller{ 'budgetten' => $budgetten, 'opmerking' => $opmerking)); } - function sommeeralles($totsomperuitgavetype){ + function sommeeralles($totsomperuitgavetype, $soort){ + $totsom =0; if ($totsomperuitgavetype){ foreach($totsomperuitgavetype as $som){ + $waarde = $som->som; + if($soort == 'BUDGET') $waarde = $som->budgetsom; if ($som->code != "REGELSOM"){ - $totsom += $som->som; + $totsom += $waarde; } } } return $totsom; } - function get_som_regel($soorten){ - if ($soorten){ - foreach($soorten as $soort){ - if ($soort->subsoorten){ - foreach ($soort->subsoorten as $subsoort){ + function get_som_regel($soorten, $bedrag, $gebudget, $budget ){ + $somgebudgetpct = 0; + $sombudgetpct = 0; + $sombedragpct = 0; + $sombedragbudgetpct = 0; + foreach($soorten ? : [] as $soort){ + foreach ($soort->subsoorten ? : [] as $subsoort){ $som = 0; - if ($subsoort->uitgavetypes){ - foreach($subsoort->uitgavetypes as $uitgavetype){ - if ($uitgavetype && $uitgavetype->bedrag){ + $budgetsom = 0; + foreach($subsoort->uitgavetypes ? : [] as $uitgavetype){ + if ($uitgavetype->bedrag){ $som += $uitgavetype->bedrag; $uitgavetype->bedrag = number_format($uitgavetype->bedrag,0,',','.'); - } + } + if ($uitgavetype->budget){ + $budgetsom += $uitgavetype->budget; + $uitgavetype->budget = number_format($uitgavetype->budget,0,',','.'); + } } - } - $subsoort->uitgavetypes[3]= new stdClass; - $subsoort->uitgavetypes[3]->bedrag =number_format($som,0, ',' , '.'); - $subsoort->uitgavetypes[3]->code ='REGELSOM'; + $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, ',' , '.'); + + $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; } - } + } - } - return $soorten; + + return [ + 'soorten' =>$soorten, + 'sombudgetpct' => $sombudgetpct, + 'somgebudgetpct' => $somgebudgetpct, + 'sombedragpct' => $sombedragpct, + 'sombedragbudgetpct' => $sombedragbudgetpct, + ]; } function sommeer_per_uitgavetype($sombasis,$somextra,$uitgavetypes){ $somtot = []; $regelsom =0; + $regelsom2 = 0; if ($uitgavetypes){ $index =0; foreach($uitgavetypes as $uitgavetype){ @@ -228,20 +367,29 @@ class Monfin2overzicht extends MY_Controller{ $somtot[$index]->code = $uitgavetype->code; $somtot[$index]->naam = $uitgavetype->naam; $somtot[$index]->som =0; + $somtot[$index]->budgetsom =0; foreach($sombasis as $basis){ - if ($basis->code == $somtot[$index]->code) $somtot[$index]->som += $basis->som; + if ($basis->code == $somtot[$index]->code) { + $somtot[$index]->som += $basis->som; + $somtot[$index]->budgetsom += $basis->budgetsom; + } } foreach($somextra as $basis){ - if ($basis->code == $somtot[$index]->code) $somtot[$index]->som += $basis->som; + if ($basis->code == $somtot[$index]->code) { + $somtot[$index]->som += $basis->som; + $somtot[$index]->budgetsom += $basis->budgetsom; + } } $regelsom += $somtot[$index]->som; + $regelsom2 += $somtot[$index]->budgetsom; $index += 1; } $somtot[$index] = new stdClass; $somtot[$index]->code = "REGELSOM"; $somtot[$index]->naam = "Som"; $somtot[$index]->som = $regelsom; + $somtot[$index]->budgetsom = $regelsom2; } return $somtot; @@ -254,36 +402,38 @@ class Monfin2overzicht extends MY_Controller{ $sombasis[$uitgavetype->code]= new stdClass; $sombasis[$uitgavetype->code]->naam= $uitgavetype->naam; $sombasis[$uitgavetype->code]->som=0; + $sombasis[$uitgavetype->code]->budgetsom =0; + } - if ($basis){ - foreach($basis as $soort){ - if ($soort->subsoorten){ - foreach ($soort->subsoorten as $subsoort){ - if ($subsoort->uitgavetypes){ - foreach($subsoort->uitgavetypes as $uitgavetype) { + + foreach($basis ? $basis : [] as $soort){ + foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort){ + foreach($subsoort->uitgavetypes ? $subsoort->uitgavetypes :[] as $uitgavetype) { $sombasis[$uitgavetype->code]->som += $uitgavetype->bedrag; + $sombasis[$uitgavetype->code]->budgetsom += $uitgavetype->budget; } //foreach - }// if uitgavetypes }//foreach subsoort - }//if subsoort }//foreach basis - } // if basis } // if uitgavetypes $somasarray=[]; $index = 0; $regelsom=0; + $regelsom2 = 0; foreach($uitgavetypes as $uitgavetype){ $somasarray[$index ] = new stdClass; $somasarray[$index]->code = $uitgavetype->code; $somasarray[$index]->naam = $sombasis[$uitgavetype->code]->naam; - $somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0); - $regelsom += $somasarray[$index ]->som; + $somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0); + $somasarray[$index ]->budgetsom = round($sombasis[$uitgavetype->code]->budgetsom,0); + $regelsom += $somasarray[$index ]->som; + $regelsom2 += $somasarray[$index ]->budgetsom; $index += 1; }; $somasarray[$index] = new stdClass; $somasarray[$index]->code ="REGELSOM"; $somasarray[$index]->naam = "Som"; $somasarray[$index]->som = $regelsom; + $somasarray[$index]->budgetsom = $regelsom2; return $somasarray; } @@ -466,16 +616,18 @@ class Monfin2overzicht extends MY_Controller{ $targetorgid = $this->clean_input('orgid'); $kalenderjaarnr = $this->clean_input("jaarnr"); $targetorg = $this->Organisaties_model->get_record_by_id($targetorgid); - list($targetorg->pms,$otherorgs) = $this->get_bestuur_pms($targetorgid, $kalenderjaarnr); - $sumother = $this->getsumotherpms($otherorgs); - $sumtot = $this->getsumtotpms($targetorg, $sumother); + list($targetorg->pms, $targetorg->bud, $targetorg->kleur, $otherorgs) = $this->get_bestuur_pms($targetorgid, $kalenderjaarnr); + $sumother = $this->getsumotherpms($otherorgs); + $sumtot = $this->getsumtotpms($targetorg, $sumother); - $targetorg->pms = $this->format_all_bedragen($targetorg->pms); - $sumother = $this->format_all_bedragen($sumother); - $sumtot = $this->format_all_bedragen($sumtot); + $targetorg->pms = $this->format_all_bedragen($targetorg->pms, 5); + $targetorg->bud = $this->format_all_bedragen($targetorg->bud, 5); + $sumother = $this->format_all_bedragen($sumother, 11); + $sumtot = $this->format_all_bedragen($sumtot, 11); if ($otherorgs){ foreach($otherorgs as $otherorg){ - $otherorg->pms = $this->format_all_bedragen($otherorg->pms); + $otherorg->pms = $this->format_all_bedragen($otherorg->pms, 5); + $otherorg->bud = $this->format_all_bedragen($otherorg->bud, 5); } } @@ -484,63 +636,147 @@ class Monfin2overzicht extends MY_Controller{ 'sumother' => $sumother, 'sumtot' => $sumtot]); } - function format_all_bedragen($pms){ - - for ($i = 0 ; $i <=5; $i++){ + function format_all_bedragen($pms, $lengte){ + + for ($i = 0 ; $i <=$lengte; $i++){ if ($pms[$i] >0 ) $pms[$i]=number_format($pms[$i], 0, ',' , '.'); else $pms[$i]=''; } return $pms; } - private function get_bestuur_pms($targetorgid, $kalenderjaarnr){ - $pms = $this->Finbestemmingen_model->get_pms($targetorgid, $kalenderjaarnr); - $targetorg->pms[0] = 0; - $targetorg->pms[1] = 0; - $targetorg->pms[2] = 0; - $targetorg->pms[3] = 0; - $targetorg->pms[4] = 0; - $targetorg->pms[5] = 0; - if ($pms){ - foreach($pms as $uitgave){ - if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="PERSONEEL") $targetorg->pms[0] += $uitgave->bedrag; - if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="MATERIEEL") $targetorg->pms[1] += $uitgave->bedrag; - if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="SCHOLING") $targetorg->pms[2] += $uitgave->bedrag; - if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="PERSONEEL") $targetorg->pms[3] += $uitgave->bedrag; - if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="MATERIEEL") $targetorg->pms[4] += $uitgave->bedrag; - if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="SCHOLING") $targetorg->pms[5] += $uitgave->bedrag; - } - } + private function get_bestuur_pms($targetorgid, $kalenderjaarnr) + { + $pms = $this->Finbestemmingen_model->get_pms($targetorgid, $kalenderjaarnr); + $targetorg = new stdClass(); + $targetorg->pms[0] = 0; + $targetorg->pms[1] = 0; + $targetorg->pms[2] = 0; + $targetorg->pms[3] = 0; + $targetorg->pms[4] = 0; + $targetorg->pms[5] = 0; + + $targetorg->bud[0] = 0; + $targetorg->bud[1] = 0; + $targetorg->bud[2] = 0; + $targetorg->bud[3] = 0; + $targetorg->bud[4] = 0; + $targetorg->bud[5] = 0; + + $targetorg->kleur[0] = 'black'; + $targetorg->kleur[1] = 'black'; + $targetorg->kleur[2] = 'black';; + $targetorg->kleur[3] = 'black'; + $targetorg->kleur[4] = 'black'; + $targetorg->kleur[5] = 'black'; + + if ($pms) { + foreach ($pms as $uitgave) { + if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "PERSONEEL") { + $targetorg->pms[0] += $uitgave->bedrag; + $targetorg->bud[0] += $uitgave->budget; + $targetorg->pms[0] > $targetorg->bud[0] ? $targetorg->kleur[0] = 'red' : 'black'; + } + if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "MATERIEEL") { + $targetorg->pms[1] += $uitgave->bedrag; + $targetorg->bud[1] += $uitgave->budget; + $targetorg->pms[1] > $targetorg->bud[1] ? $targetorg->kleur[1] = 'red' : 'black'; + } + if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "SCHOLING") { + $targetorg->pms[2] += $uitgave->bedrag; + $targetorg->bud[2] += $uitgave->budget; + $targetorg->pms[2] > $targetorg->bud[2] ? $targetorg->kleur[2] = 'red' : 'black'; + } + if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "PERSONEEL") { + $targetorg->pms[3] += $uitgave->bedrag; + $targetorg->bud[3] += $uitgave->budget; + $targetorg->pms[3] > $targetorg->bud[3] ? $targetorg->kleur[3] = 'red' : 'black'; + } + if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "MATERIEEL") { + $targetorg->pms[4] += $uitgave->bedrag; + $targetorg->bud[4] += $uitgave->budget; + $targetorg->pms[4] > $targetorg->bud[4] ? $targetorg->kleur[4] = 'red' : 'black'; + } + if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "SCHOLING") { + $targetorg->pms[5] += $uitgave->bedrag; + $targetorg->bud[5] += $uitgave->budget; + $targetorg->pms[5] > $targetorg->bud[5] ? $targetorg->kleur[5] = 'red' : 'black'; + } + } + } + $organisaties = $this->Organisaties_model->getorgs2($targetorgid); - $organisaties = $this->Organisaties_model->getorgs2($targetorgid); + if ($organisaties) { + foreach ($organisaties as $organisatie) { + $org_plus_subs = $this->getorgids($organisatie->orgid); + if (!$org_plus_subs) { + $org_plus_subs = $organisatie->orgid; + }; + $pms = $this->Finbestemmingen_model->get_pms($org_plus_subs, $kalenderjaarnr); + $organisatie->pms[0] = 0; + $organisatie->pms[1] = 0; + $organisatie->pms[2] = 0; + $organisatie->pms[3] = 0; + $organisatie->pms[4] = 0; + $organisatie->pms[5] = 0; + $organisatie->bud[0] = 0; + $organisatie->bud[1] = 0; + $organisatie->bud[2] = 0; + $organisatie->bud[3] = 0; + $organisatie->bud[4] = 0; + $organisatie->bud[5] = 0; + $organisatie->kleur[0] = 'black'; + $organisatie->kleur[1] = 'black'; + $organisatie->kleur[2] = 'black'; + $organisatie->kleur[3] = 'black'; + $organisatie->kleur[4] = 'black'; + $organisatie->kleur[5] = 'black'; + if ($pms) { + foreach ($pms as $uitgave) { + if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "PERSONEEL") { + $organisatie->pms[0] += $uitgave->bedrag; + $organisatie->bud[0] += $uitgave->budget; + } + if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "MATERIEEL") { + $organisatie->pms[1] += $uitgave->bedrag; + $organisatie->bud[1] += $uitgave->budget; + } + if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "SCHOLING") { + $organisatie->pms[2] += $uitgave->bedrag; + $organisatie->bud[2] += $uitgave->budget; + } + if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "PERSONEEL") { + $organisatie->pms[3] += $uitgave->bedrag; + $organisatie->bud[3] += $uitgave->budget; + } + if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "MATERIEEL") { + $organisatie->pms[4] += $uitgave->bedrag; + $organisatie->bud[4] += $uitgave->budget; + } + if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "SCHOLING") { + $organisatie->pms[5] += $uitgave->bedrag; + $organisatie->bud[5] += $uitgave->budget; + } + } - if ($organisaties){ - foreach($organisaties as $organisatie){ - $org_plus_subs = $this->getorgids($organisatie->orgid); - if (! $org_plus_subs) {$org_plus_subs = $organisatie->orgid;}; - $pms = $this->Finbestemmingen_model->get_pms($org_plus_subs, $kalenderjaarnr); - $organisatie->pms[0] = 0; - $organisatie->pms[1] = 0; - $organisatie->pms[2] = 0; - $organisatie->pms[3] = 0; - $organisatie->pms[4] = 0; - $organisatie->pms[5] = 0; - if ($pms){ - foreach($pms as $uitgave){ - if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="PERSONEEL") $organisatie->pms[0] += $uitgave->bedrag; - if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="MATERIEEL") $organisatie->pms[1] += $uitgave->bedrag; - if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="SCHOLING") $organisatie->pms[2] += $uitgave->bedrag; - if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="PERSONEEL") $organisatie->pms[3] += $uitgave->bedrag; - if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="MATERIEEL") $organisatie->pms[4] += $uitgave->bedrag; - if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="SCHOLING") $organisatie->pms[5] += $uitgave->bedrag; - } - } - } - }; // if organisaties - return [$targetorg->pms , $organisaties]; - } + + } + if ($organisatie->pms[0] > $organisatie->bud[0]) $organisatie->kleur[0] = 'red'; + if ($organisatie->pms[1] > $organisatie->bud[1]) $organisatie->kleur[1] = 'red'; + if ($organisatie->pms[2] > $organisatie->bud[2]) $organisatie->kleur[2] = 'red'; + if ($organisatie->pms[3] > $organisatie->bud[3]) $organisatie->kleur[3] = 'red'; + if ($organisatie->pms[4] > $organisatie->bud[4]) $organisatie->kleur[4] = 'red'; + if ($organisatie->pms[5] > $organisatie->bud[4]) $organisatie->kleur[5] = 'red'; + + + }; // if organisaties + + return [$targetorg->pms, $targetorg->bud, $targetorg->kleur, $organisaties]; + } + + } function getsumtotpms($targetorg, $sumother){ $sumtot = []; @@ -551,6 +787,18 @@ class Monfin2overzicht extends MY_Controller{ $sumtot[3] = $targetorg->pms[3] + $sumother[3]; $sumtot[4] = $targetorg->pms[4] + $sumother[4]; $sumtot[5] = $targetorg->pms[5] + $sumother[5]; + $sumtot[6] = $targetorg->bud[0] + $sumother[6]; + $sumtot[7] = $targetorg->bud[1] + $sumother[7]; + $sumtot[8] = $targetorg->bud[2] + $sumother[8]; + $sumtot[9] = $targetorg->bud[3] + $sumother[9]; + $sumtot[10] = $targetorg->bud[4] + $sumother[10]; + $sumtot[11] = $targetorg->bud[5] + $sumother[11]; + $sumtot[12] = $sumtot[0] > $sumtot[6] ? 'red' : 'black'; + $sumtot[13] = $sumtot[1] > $sumtot[7] ? 'red' : 'black'; + $sumtot[14] = $sumtot[2] > $sumtot[8] ? 'red' : 'black'; + $sumtot[15] = $sumtot[3] > $sumtot[9] ? 'red' : 'black'; + $sumtot[16] = $sumtot[4] > $sumtot[10] ? 'red' : 'black'; + $sumtot[17] = $sumtot[5] > $sumtot[11] ? 'red' : 'black'; return $sumtot; } @@ -563,16 +811,46 @@ class Monfin2overzicht extends MY_Controller{ $sumother[3] = 0; $sumother[4] = 0; $sumother[5] = 0; + $sumother[6] = 0; + $sumother[7] = 0; + $sumother[8] = 0; + $sumother[9] = 0; + $sumother[10] = 0; + $sumother[11] = 0; + $sumother[12] = 'black'; + $sumother[13] = 'black'; + $sumother[14] = 'black'; + $sumother[15] = 'black'; + $sumother[16] = 'black'; + $sumother[17] = 'black'; foreach($otherorgs as $org){ - if ($org->pms){ $sumother[0] += $org->pms[0]; $sumother[1] += $org->pms[1]; $sumother[2] += $org->pms[2]; $sumother[3] += $org->pms[3]; $sumother[4] += $org->pms[4]; $sumother[5] += $org->pms[5]; - } + $sumother[6] += $org->bud[0]; + $sumother[7] += $org->bud[1]; + $sumother[8] += $org->bud[2]; + $sumother[9] += $org->bud[3]; + $sumother[10] += $org->bud[4]; + $sumother[11] += $org->bud[5]; + } + + foreach($otherorgs as $org){ + if ($org->pms){ + if( $sumother[0] > $sumother[6]) $sumother[12] = 'red'; + if( $sumother[1] > $sumother[7]) $sumother[13] = 'red'; + if( $sumother[2] > $sumother[8]) $sumother[14] = 'red'; + if( $sumother[3] > $sumother[9]) $sumother[15] = 'red'; + if( $sumother[4] > $sumother[10]) $sumother[16] = 'red'; + if( $sumother[5] > $sumother[11]) $sumother[17] = 'red'; + + } + } + return $sumother; } diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 8f7b4e4..e5f7a6f 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -80,7 +80,8 @@ class MY_Controller extends CI_Controller{ // public $version = '1.18.08';// kleurenfout // public $version = '1.19.00';// ambities per org // public $version = '1.19.01';// compactdiv met orgid ipv globorg - public $version = '1.19.05';// ambities per org incl kamerversies +// public $version = '1.19.05';// ambities per org incl kamerversies + public $version = '1.19.06';// 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 fc39f30..8e1379d 100644 --- a/application/models/monfin2/Finbestemmingen_model.php +++ b/application/models/monfin2/Finbestemmingen_model.php @@ -10,7 +10,9 @@ class Finbestemmingen_model extends MY_Model{ function __construct(){ parent::__construct(); $models = array('shared/Organisaties_model', - "monfin2/Finuitgavetypes_model"); + "monfin2/Finuitgavetypes_model" + + ); $this->load->model($models); } @@ -61,7 +63,7 @@ class Finbestemmingen_model extends MY_Model{ if ($uitgavetypes){ foreach($uitgavetypes as $uitgavetype){ $subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr,$subsoort->subsoortID,$uitgavetype->code); - } + } } } }// if subsoorten @@ -87,7 +89,8 @@ class Finbestemmingen_model extends MY_Model{ // haal per uitgavetypes de bedragen op if ($uitgavetypes){ foreach($uitgavetypes as $uitgavetype){ - $subsoort->uitgavetypes[] = $this->get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoort->subsoortID,$uitgavetype->code); + $result = $this->get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoort->subsoortID,$uitgavetype->code); + $subsoort->uitgavetypes[] = $result; } } } @@ -121,7 +124,7 @@ class Finbestemmingen_model extends MY_Model{ // }// if subsoorten // } // }// if soorten - // return $soorten; + // return $soorten; // } function setSomSubsoort($orgid, $jaarnr, $categorie){ @@ -164,6 +167,7 @@ class Finbestemmingen_model extends MY_Model{ function get_bedrag_per_type($orgid, $jaarnr,$subsoortID, $uitgavetype){ $this->sql = "SELECT id, FORMAT(bedrag / 100,2) as bedrag, + FORMAT(budget / 100,2) as budget, uitgavetype as code FROM finbestemmingen WHERE organisatie_id = {$orgid} @@ -176,27 +180,39 @@ class Finbestemmingen_model extends MY_Model{ "kalenderjaar" =>$jaarnr, "subsoort_id" =>$subsoortID, "uitgavetype" =>$uitgavetype, - "bedrag" =>0]; + "bedrag" =>0, + "budget" =>0]; $this->insert_record($data); $row = $this->get_query_row(); } - if ($row) $row->bedrag = str_replace(',' , '' , $row->bedrag); + if ($row) { + $row->bedrag = str_replace(',' , '' , $row->bedrag); + $row->budget = str_replace(',' , '' , $row->budget); + + + } return $row; } + + 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, uitgavetype as code FROM finbestemmingen WHERE organisatie_id in ({$orglist}) AND kalenderjaar = {$jaarnr } AND subsoort_id = {$subsoortID} AND uitgavetype = '{$uitgavetype}' "; - $row= $this->get_query_row(); + $row= $this->get_query_row(); + + if ($row) $row->bedrag = str_replace(',' , '' , $row->bedrag); + if ($row) $row->budget = str_replace(',' , '' , $row->budget); return $row; } @@ -245,7 +261,8 @@ class Finbestemmingen_model extends MY_Model{ return $this->get_query_row('bedrag'); } function get_pms($orgids, $kalenderjaarnr){ - $this->sql = " SELECT round(sum(bedrag/100) ) AS bedrag, + $this->sql = " SELECT round(sum(FB.bedrag/100) ) AS bedrag, + round(sum(FB.budget/100)) AS budget, uitgavetype, FS.categorie, FB.organisatie_id diff --git a/application/views/monpas/modals/findetails_modal.php b/application/views/monpas/modals/findetails_modal.php new file mode 100644 index 0000000..3914ac4 --- /dev/null +++ b/application/views/monpas/modals/findetails_modal.php @@ -0,0 +1,48 @@ + diff --git a/application/views/monpas/pages/monfin2/bestemmingen.php b/application/views/monpas/pages/monfin2/bestemmingen.php index 10f321e..a5c3c58 100644 --- a/application/views/monpas/pages/monfin2/bestemmingen.php +++ b/application/views/monpas/pages/monfin2/bestemmingen.php @@ -24,95 +24,278 @@
- - - - + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + - + style="width: 150px; max-width: 100%; background-color: #e6ffee" + data-bind="textInput: budgetFormat, + event:{change:$root.fSaveBudget.bind($data, $parent.subsoortID, 'BASIS') } , + enable: ! $root.jaarclosed()" + /> + - - + + + + + + + + + + + + + + + + +
+ + + + + Som + + Percentage + + +
budget + -
+
+ + +
+
+
+ + +
+
uitgaven + + +
+ + +
+
+
+ + +
+
-
-

- Totaal basisondersteuning - + +

+ Basisondersteuning +
+ Uitgaven + -

-

- Budget - +
+ Gebudgeteerd per kostenpost + -

+
+ Totaal budget + + +

+

Extra ondersteuning

- - - - - + + + + + + + + + + + - + + + - + + + + + + + + + - - + - - - - - + + + + + + + + + + + + + + + + + + + +
+ + + + Som + + Percentage + + + +
- - budget + + +
+ + +
+
+
+ + +
+
uitgaven + + + +
+ + +
+
+
+ + +
+
-
-

- Totaal extra ondersteuning - + + +

+ Extra ondersteuning +
+ Uitgaven + -

-

- Budget - +
+ Gebudgeteerd per kostenpost + + +
+ Totaal budget +

diff --git a/application/views/monpas/pages/monfin2/overzicht.php b/application/views/monpas/pages/monfin2/overzicht.php index 8a51fa1..fc72346 100644 --- a/application/views/monpas/pages/monfin2/overzicht.php +++ b/application/views/monpas/pages/monfin2/overzicht.php @@ -69,104 +69,329 @@
- - - - - - - - - - - +
BasisondersteuningSomBudgetVerschil
+ + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - + + + + + + + + + + + + + + +
Basisondersteuning + + + som + + + % budget + + + % uitgaven + + + Budget + + + + % gebudgett. + + + % budget + + + verschil + + +
Totaal basis
- - - - - - - - - - - - - -
-
Extra ondersteuningSomBudgetVerschil
Totaal extraTotaal basis
- - - - - - - - - - - - - -
-
0,000,00
+ + + + + + + + + +
Extra ondersteuning + + + + + som + + + + % budget + + + + % uitgaven + + + + Budget + + + + + % gebuggett. + + + + % budget + + + + Verschil + + +
+ Totaal extra0,000,00 + +
+ + + + + + + + +
Totaal besteedTotaal besteed 0,000,00 + + + + + + + +

Opmerkingen

@@ -181,4 +406,7 @@
+ + load->view("monpas/modals/findetails_modal"); ?> + \ No newline at end of file diff --git a/application/views/monpas/pages/monfin2/pmsorgs.php b/application/views/monpas/pages/monfin2/pmsorgs.php index c5d0650..af88140 100644 --- a/application/views/monpas/pages/monfin2/pmsorgs.php +++ b/application/views/monpas/pages/monfin2/pmsorgs.php @@ -1,61 +1,175 @@ - + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + + - + - - - - - - + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + +
BasisondersteuningBasisondersteuning Extra ondersteuning
OrganisatiePersoneelMaterieelScholingPersoneelMaterieelScholing
OrganisatiePersoneelMaterieelScholingPersoneelMaterieelScholing
budget
uitgaven + + + +
SubtotaalMaterieelScholingPersoneelMaterieelScholingbudgetMaterieelScholingPersoneelMaterieelScholing
uitgavenMaterieelScholingPersoneelMaterieelScholing
budget
uitgaven +
TotaalPersoneelMaterieelScholingPersoneelMaterieelScholing
TotaalbudgetPersoneelMaterieelScholingPersoneelMaterieelScholing
uitgavenPersoneel + Materieel + Scholing + Personeel + Materieel + Scholing +
diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index 274ba18..0360d44 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -7,30 +7,80 @@ ls.initBestemmingenModel = function(){ this.naam = p.naam; } - function fAddBasissoort(k){ + function fAddBasissoort(j,k, budget, 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, budget, totbudget, bedrag, k.categorie)); }); } } - function fAddSubsoort(p,categorie){ - var dit = dit; - this.subsoortID = p.subsoortID; - this.naam = p.naam; + 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 centbudget2 = 0; + this.subsoortID = b.subsoortID; + this.naam = b.naam; this.categorie = categorie - this.uitgavetypes = ko.observableArray() - var dit = this; - if (p.uitgavetypes){ - $.each(p.uitgavetypes, function(i,k){ + 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(''); + this.budgetprocent = ko.observable(0); + this.gebudgetprocent = ko.observable(0); + if (b.uitgavetypes) { + + $.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.subbudgetform(parseFloat(budget) === 0 ? '' : parseFloat(budget).format(2, 3, '.', ',')); + + centbudget = dit.subbudgetform(); + centbudget = centbudget.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 + '%' : ''); + } + + if (gebudget) { + budgettot2 = gebudget.replace(/[.| ,]/g, ''); + var budgetpct2 = ((Number(centbudget) / Number(budgettot2)) * 100).toFixed(1) + budgetpct2 = budgetpct2.replace('.', ',') + dit.gebudgetprocent(budgettot2 > 0 ? budgetpct2 + '%' : '') + } + + + 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 + '%' : '') + } } + } function fAddUitgavetype(k){ @@ -39,6 +89,10 @@ ls.initBestemmingenModel = function(){ 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'); } @@ -51,9 +105,8 @@ ls.initBestemmingenModel = function(){ kalenderjaren : ko.observableArray([]), selectedKalenderjaar : ko.observable(), jaartoewijzing : ko.observable(), - targetjaar : ko.observable(2017), //het jaar waarin met moet werken + targetjaar : ko.observable(2017), //het jaar waarin met moet werken uitgavetypes : ko.observableArray(), - basissoorten : ko.observableArray(), extrasoorten : ko.observableArray(), @@ -64,7 +117,11 @@ ls.initBestemmingenModel = function(){ extrageopend : ko.observable(false), totaalextra : ko.observable(), - totaalbasis : ko.observable(), + totaalbasis : ko.observable(0), + gebudgetbasis : ko.observable(0), + budgetUnformatted : ko.observable(0), + gebudgetextra : ko. observable(), + initBindings :function(){ var self = ls.BestemmingenModel; @@ -101,57 +158,271 @@ 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){ + if (data.jaartoewijzing){ self.jaartoewijzing(data.jaartoewijzing); } 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)); - }); - } - self.extrasoorten.removeAll(); - if (data.extrabestemmingen){ - $.each(data.extrabestemmingen,function(j,k){ - self.extrasoorten.push(new fAddBasissoort(k)); - }); - } - - self.opmerking(data.opmerking); + var budget = 0; + var bedrag = 0; + 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); + } ) + } ) + }) + 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)); + }); + } + budget = 0; + bedrag = 0; + totbudget = 0; + if (data.extrabestemmingen){ + $.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); + } ) + } ) + }) + 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)); + }); + } + + 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; + 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(); + if ( ! invoer) invoer = '0' + invoer = invoer.split('.').join(''); + invoer= invoer.replace(',' , '.'); + if (isNaN( parseFloat(invoer) ) ) { + return; + } + else { + invoer=parseFloat(invoer) + } + + 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){ + $.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 + '%' : '') + + } + }) + }) + + soort === 'BASIS' ? self.totaalbasis(totaaluitgaven): self.totaalextra(totaaluitgaven) ; + + invoer = Math.round(invoer * 100) ; + var sd = {'id': dit.finbestemmingID, + 'bedrag' : invoer + } + $.post("index.php/monfin2/bestemmingen/updatebedrag", sd); + }, + + 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 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 totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, '')); + + // 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) + + dit.budgetFormat(parseFloat(invoer).format(2, 3, '.', ',')); + if (invoer <= 0){ + dit.budgetFormat(budgetoudForm); + invoer = 0; + return; + } + dit.budget(invoer); + + // 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) { + 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); + if (parseFloat(subbudget) > 0) { + subbudgetForm = parseFloat(subbudget).format(2, 3, '.', ','); + } + s.subbudgetform(Number(subbudget) > 0 ? subbudgetForm : ''); + + 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 + '%' : '') + + } + $.each(s.uitgavetypes(), function (z, k) { + totaalgebudget = Number(totaalgebudget) + Number(k.budget()); + }); + } + + }) + }) + + if (parseFloat(totaalgebudget) > 0) { + totaalgebudgetR = parseFloat(totaalgebudget).format(2, 3, '.', ','); + totaalgebudgetR = totaalgebudgetR.replace(/[.| ,]/g, ''); + + + + } + totaalgebudgetpct = (Number(totaalgebudgetR) > 0 ? ((Number(subbudget) / Number(totaalgebudgetR)) * 100).toFixed(1) : 0); + totaalgebudgetpct = totaalgebudgetpct.replace('.', ','); + + // 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); + dit.budget(budgetoud); + $.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); + } + } + }) + }) + + + + //hier alle oude waarden invullen + apprise("Het budget overschrijdt het totaalbudget") + return; + } + else { + soort=== 'BASIS' ? self.gebudgetbasis(totaalgebudget): self.gebudgetextra(totaalbudget); + + invoer = Math.round(invoer * 100); + var sd = { + 'id' : dit.finbestemmingID, + 'budget': invoer, - 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) } - dit.formatted(parseFloat(invoer).format(2,3,'.',',')); - if (invoer <= 0) dit.formatted(''); - dit.bedrag(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 +431,13 @@ ls.initBestemmingenModel = function(){ };// switch }, + 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.

') + }, + fSaveOpmerking: function(){ var self= ls.BestemmingenModel; if (self.jaarclosed()) return; @@ -175,51 +453,52 @@ 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.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.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 diff --git a/public/js/monpas/models/monfin2/monfinoverzicht2.js b/public/js/monpas/models/monfin2/monfinoverzicht2.js index 8e871c8..aecd77d 100644 --- a/public/js/monpas/models/monfin2/monfinoverzicht2.js +++ b/public/js/monpas/models/monfin2/monfinoverzicht2.js @@ -57,21 +57,22 @@ 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; @@ -106,6 +107,7 @@ ls.initMonfinOverzicht2Model = 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, @@ -187,6 +189,31 @@ 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 = '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 '%GEBUDGET': message ='Budget als percentage van het totaal gebudgetteerde bedrag.'; + break; + case '%BUDGET2' : message='Budget als percentage van het totaal toegewezen budget.'; + break; + case 'VERSCHIL' : message = 'Het verschil tussen het toegewezen budget en de uitgaven afgerond op hele euros.'; + + } + apprise(message); + }, + fToggleOrg :function(){ this.geopend(!this.geopend()); }, @@ -195,6 +222,39 @@ 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.totsomperuitgavetype() + }); + 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 ten opzichte van het toegewezen budget.'); + }, + + } ; // definition van model ls.MonfinOverzicht2Model.initBindings(); }; // elses From 8f67d09ba6f7a2e676024ff790140e7639d85dc4 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Tue, 28 Mar 2023 12:30:58 +0200 Subject: [PATCH 02/17] versie nog een keer hoger --- application/core/MY_Controller.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index e5f7a6f..c6e50ca 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -81,7 +81,8 @@ class MY_Controller extends CI_Controller{ // public $version = '1.19.00';// ambities per org // 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.19.06';// monfin met budgetten + public $version = '1.20.00';// monfin met budgetten public $partituurid; public $globProfielVersieID = 1; public $userid; //id of the user that is logged in From 236c949fc920a371569dc88eddb23263b187bfb8 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Wed, 5 Apr 2023 21:53:21 +0200 Subject: [PATCH 03/17] monfin --- .../controllers/monfin2/Bestemmingen.php | 2 +- .../controllers/monfin2/Monfin2overzicht.php | 75 ++-- .../controllers/monpas/Streefcijfers.php | 14 +- application/core/MY_Controller.php | 2 +- .../models/monfin2/Finbestemmingen_model.php | 2 +- application/models/shared/Licenties_model.php | 2 +- .../monpas/pages/monfin2/bestemmingen.php | 265 +++++++----- .../views/monpas/pages/monfin2/overzicht.php | 232 +++++------ .../js/monpas/models/monfin2/bestemmingen.js | 389 +++++++++++------- .../monpas/models/monfin2/monfinoverzicht2.js | 13 +- 10 files changed, 545 insertions(+), 451 deletions(-) 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.'); }, From 747142a4419e1e5c3e2db26341440b77dfc7cb40 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Tue, 25 Apr 2023 19:23:20 +0200 Subject: [PATCH 04/17] 2 percentages verwijderd --- application/core/MY_Controller.php | 2 +- .../monpas/pages/monfin2/bestemmingen.php | 88 +++++++++---------- .../js/monpas/models/monfin2/bestemmingen.js | 11 ++- 3 files changed, 50 insertions(+), 51 deletions(-) diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 74963da..9279d49 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.01';// monfin met budgetten + public $version = '1.20.02';// monfin met budgetten public $partituurid; public $globProfielVersieID = 1; public $userid; //id of the user that is logged in diff --git a/application/views/monpas/pages/monfin2/bestemmingen.php b/application/views/monpas/pages/monfin2/bestemmingen.php index ed60be7..f64a2f9 100644 --- a/application/views/monpas/pages/monfin2/bestemmingen.php +++ b/application/views/monpas/pages/monfin2/bestemmingen.php @@ -32,8 +32,8 @@ - - + + @@ -57,7 +57,7 @@ Som - + Percentage --> + + + + + + + + -
- - -
- - -
-
-
- - -
- + + + + + + + + + @@ -196,8 +196,8 @@ - - + + @@ -222,7 +222,7 @@ Som - + Percentage -
- - -
- + + + + + + + + +
-
- - -
- + + + + + + + + + diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index 55e9042..a55ffef 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -42,7 +42,7 @@ ls.initBestemmingenModel = function(){ this.subbudgetform = ko.observable(''); this.subbudgetformReserve = ko.observable(''); this.budgetprocent = ko.observable(0); - this.gebudgetprocent = ko.observable(0); + // this.gebudgetprocent = ko.observable(0); if (b.uitgavetypes) { $.each(b.uitgavetypes, function (i, k) { @@ -95,8 +95,6 @@ ls.initBestemmingenModel = function(){ } else dit.procent(''); - - } } @@ -540,9 +538,10 @@ ls.initBestemmingenModel = function(){ fToelichting: function(){ - 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.

' ) + apprise( '

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

' + + '

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.

' + ) }, fSaveOpmerking: function(){ From b046e57e09b63b400cc6341c3f1fc0f4eefb2410 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Tue, 25 Apr 2023 19:29:37 +0200 Subject: [PATCH 05/17] procent teruggezet --- public/js/monpas/models/monfin2/bestemmingen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index a55ffef..da95735 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -42,7 +42,7 @@ ls.initBestemmingenModel = function(){ this.subbudgetform = ko.observable(''); this.subbudgetformReserve = ko.observable(''); this.budgetprocent = ko.observable(0); - // this.gebudgetprocent = ko.observable(0); + this.gebudgetprocent = ko.observable(0); if (b.uitgavetypes) { $.each(b.uitgavetypes, function (i, k) { From 1c22660e2e8ddb1a481205093466d1fa4583d0c4 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Tue, 25 Apr 2023 19:38:21 +0200 Subject: [PATCH 06/17] nog een --- application/core/MY_Controller.php | 2 +- application/views/monpas/pages/monfin2/bestemmingen.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 9279d49..584c1de 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.02';// monfin met budgetten + public $version = '1.20.03';// monfin met budgetten public $partituurid; public $globProfielVersieID = 1; public $userid; //id of the user that is logged in diff --git a/application/views/monpas/pages/monfin2/bestemmingen.php b/application/views/monpas/pages/monfin2/bestemmingen.php index f64a2f9..fe2870c 100644 --- a/application/views/monpas/pages/monfin2/bestemmingen.php +++ b/application/views/monpas/pages/monfin2/bestemmingen.php @@ -266,7 +266,7 @@ -
-
uitgavensom + som uitgaven - budgetsom + som budget diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index da95735..722a8d7 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -538,7 +538,7 @@ ls.initBestemmingenModel = function(){ fToelichting: function(){ - apprise( '

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

' + + 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.

' ) From ac46447bea6d54108f3ce25e363c666973cc0123 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Fri, 9 Jun 2023 15:50:11 +0200 Subject: [PATCH 08/17] 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 From f7adcfcc93a0cc3c7d5223fc3fbaa99d013f9f0a Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Wed, 14 Jun 2023 12:44:03 +0200 Subject: [PATCH 09/17] tussenopslag --- .../controllers/monfin2/Monfin2overzicht.php | 65 +++++++++---------- .../js/monpas/models/monfin2/bestemmingen.js | 15 +++-- 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/application/controllers/monfin2/Monfin2overzicht.php b/application/controllers/monfin2/Monfin2overzicht.php index df54fd9..613e563 100644 --- a/application/controllers/monfin2/Monfin2overzicht.php +++ b/application/controllers/monfin2/Monfin2overzicht.php @@ -38,8 +38,6 @@ class Monfin2overzicht extends MY_Controller{ $budgetten->totaal = 0; $budgetten->basis = 0; $budgetten->extra = 0; - - } $basis = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"BASIS"); $extra = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"EXTRA"); @@ -50,7 +48,6 @@ class Monfin2overzicht extends MY_Controller{ $totbesteed = $this->sommeeralles($totsomperuitgavetype, 'BEDRAG'); $totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET'); - $sommen = $this->get_som_regel($basis, $budgetten->basis); $basis = $sommen['soorten']; $sombudgetpct = $sommen['sombudgetpct']; @@ -268,21 +265,21 @@ class Monfin2overzicht extends MY_Controller{ 'budgetten' => $budgetten, 'opmerking' => $opmerking)); } - function sommeeralles($totsomperuitgavetype, $soort){ + function sommeeralles($totsomperuitgavetype, $soort) + { - $totsom =0; - if ($totsomperuitgavetype){ - foreach($totsomperuitgavetype as $som){ - $waarde = $som->som; - if($soort == 'BUDGET') $waarde = $som->budgetsom; - if ($som->code != "REGELSOM"){ - $totsom += $waarde; - } - } - } - return $totsom; - } - + $totsom = 0; + if ($totsomperuitgavetype) { + foreach ($totsomperuitgavetype as $som) { + if ($som->code == 'TOTAAL') { + if ($soort == 'BUDGET') $totsom += $som->budgetsom; + else $totsom += $som->som; + + } + } + return $totsom; + } + } function get_som_regel($soorten, $budget ){ $somgebudgetpct = 0; $sombudgetpct = 0; @@ -377,22 +374,23 @@ class Monfin2overzicht extends MY_Controller{ function get_som_per_uitgavetype($basis,$uitgavetypes){ $sombasis = []; if ($uitgavetypes){ - foreach($uitgavetypes as $uitgavetype){ - $sombasis[$uitgavetype->code]= new stdClass; - $sombasis[$uitgavetype->code]->naam= $uitgavetype->naam; - $sombasis[$uitgavetype->code]->som=0; - $sombasis[$uitgavetype->code]->budgetsom =0; + foreach($uitgavetypes as $uitgavetype) { + $sombasis[$uitgavetype->code] = new stdClass; + $sombasis[$uitgavetype->code]->naam = $uitgavetype->naam; + $sombasis[$uitgavetype->code]->som = 0; + $sombasis[$uitgavetype->code]->budgetsom = 0; - } - foreach($basis ? $basis : [] as $soort){ - foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort){ - foreach($subsoort->uitgavetypes ? $subsoort->uitgavetypes :[] as $uitgavetype) { - $sombasis[$uitgavetype->code]->som += $uitgavetype->bedrag; - $sombasis[$uitgavetype->code]->budgetsom += $uitgavetype->budget; - } //foreach - }//foreach subsoort - }//foreach basis + foreach ($basis ? $basis : [] as $soort) { + foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort) { + foreach ($subsoort->uitgavetypes ? $subsoort->uitgavetypes : [] as $uitgavetype) { + + $sombasis[$uitgavetype->code]->som += ($uitgavetype->bedrag ?: 0); + $sombasis[$uitgavetype->code]->budgetsom += ($uitgavetype->budget ?: 0); + } //foreach + }//foreach subsoort + }//foreach basis + } } // if uitgavetypes $somasarray=[]; $index = 0; @@ -404,10 +402,11 @@ class Monfin2overzicht extends MY_Controller{ $somasarray[$index]->naam = $sombasis[$uitgavetype->code]->naam; $somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0); $somasarray[$index ]->budgetsom = round($sombasis[$uitgavetype->code]->budgetsom,0); - $regelsom += $somasarray[$index ]->som; - $regelsom2 += $somasarray[$index ]->budgetsom; $index += 1; }; + $regelsom = $somasarray[0]->som; + $regelsom2 = $somasarray[0 ]->budgetsom; + $somasarray[$index] = new stdClass; $somasarray[$index]->code ="REGELSOM"; $somasarray[$index]->naam = "Som"; diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index 894ea3b..faf0d15 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -33,7 +33,9 @@ ls.initBestemmingenModel = function(){ var subbedrag = 0; - if (b.uitgavetypes) { + if (b.uitgavetypes || b.uitgavetypes()) { + if (b.uitgavetypes) { + subbudget = b.uitgavetypes[0].budget; subbedrag = b.uitgavetypes[0].bedrag; @@ -41,6 +43,7 @@ ls.initBestemmingenModel = function(){ dit.uitgavetypes.push(new fAddUitgavetype(k)); }); + } if ( Number(totbudget) > 0) { if(Number(subbudget) > 0) subbudget = subbudget.replace(/[.| ,]/g, ''); @@ -368,8 +371,6 @@ ls.initBestemmingenModel = function(){ if(Number(invoer) > 0) dit.bedragFormat(parseFloat(invoer).format(2, 3, '.', ',')); else dit.bedragFormat(''); - - dit.bedrag(invoer); var code = dit.code; @@ -407,8 +408,6 @@ 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() && s.subsoortID === subsoortid) { subtotaal = Number(s.uitgavetypes()[0].bedrag()); if (parseFloat(subtotaal) > 0) { subtotaal = parseFloat(subtotaal).format(2, 3, '.', ','); @@ -424,7 +423,7 @@ ls.initBestemmingenModel = function(){ } - }} + } }) }) @@ -654,6 +653,10 @@ ls.initBestemmingenModel = function(){ },500); } } ; // definition van model + + + + ls.BestemmingenModel.initBindings(); }; // else } // function initBestemmingenModel From 0afb3a9263eb6d6b1f2a8127d6e769eef79bc9c9 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Mon, 19 Jun 2023 17:38:26 +0200 Subject: [PATCH 10/17] tussenstand --- .../controllers/monfin2/Monfin2overzicht.php | 91 ++++++++++--------- .../models/monfin2/Finbestemmingen_model.php | 16 ++-- .../views/monpas/pages/monfin2/overzicht.php | 65 ++++++++----- .../js/monpas/models/monfin2/bestemmingen.js | 77 ++++++++-------- .../monpas/models/monfin2/monfinoverzicht2.js | 7 +- 5 files changed, 146 insertions(+), 110 deletions(-) diff --git a/application/controllers/monfin2/Monfin2overzicht.php b/application/controllers/monfin2/Monfin2overzicht.php index 613e563..3c20875 100644 --- a/application/controllers/monfin2/Monfin2overzicht.php +++ b/application/controllers/monfin2/Monfin2overzicht.php @@ -42,6 +42,13 @@ class Monfin2overzicht extends MY_Controller{ $basis = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"BASIS"); $extra = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"EXTRA"); +// echo json_encode([ +// 'basis' => $basis, +// 'extra' =>$extra +// ]); +// +// return; + $sombasisperuitgavetype = $this->get_som_per_uitgavetype($basis, $uitgavetypes); $somextraperuitgavetype = $this->get_som_per_uitgavetype($extra, $uitgavetypes); $totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes); @@ -291,12 +298,12 @@ class Monfin2overzicht extends MY_Controller{ $budgetsom = 0; foreach($subsoort->uitgavetypes ? : [] as $uitgavetype){ if ($uitgavetype->bedrag){ - $som += $uitgavetype->bedrag; + $som += isset($uitgavetype->bedrag) && floatval($uitgavetype->bedrag) > 0 ? floatval($uitgavetype->bedrag): 0; $uitgavetype->bedrag = number_format($uitgavetype->bedrag,0,',','.'); } if ($uitgavetype->budget){ - $budgetsom += $uitgavetype->budget; - $uitgavetype->budget = number_format($uitgavetype->budget,0,',','.'); + $budgetsom += is_numeric($uitgavetype->budget) ? $uitgavetype->budget: 0; + $uitgavetype->budget =is_numeric($uitgavetype->budget) ? number_format($uitgavetype->budget,0,',','.'): '0,00'; } } $subsoort->uitgavetypes[3]= new stdClass; @@ -371,50 +378,48 @@ class Monfin2overzicht extends MY_Controller{ return $somtot; } - function get_som_per_uitgavetype($basis,$uitgavetypes){ - $sombasis = []; - if ($uitgavetypes){ - foreach($uitgavetypes as $uitgavetype) { - $sombasis[$uitgavetype->code] = new stdClass; - $sombasis[$uitgavetype->code]->naam = $uitgavetype->naam; - $sombasis[$uitgavetype->code]->som = 0; - $sombasis[$uitgavetype->code]->budgetsom = 0; + function get_som_per_uitgavetype($basis,$uitgavetypes){ + $sombasis = []; + if ($uitgavetypes){ + foreach($uitgavetypes as $uitgavetype){ + $sombasis[$uitgavetype->code]= new stdClass; + $sombasis[$uitgavetype->code]->naam= $uitgavetype->naam; + $sombasis[$uitgavetype->code]->som=0; + $sombasis[$uitgavetype->code]->budgetsom =0; - - foreach ($basis ? $basis : [] as $soort) { - foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort) { - foreach ($subsoort->uitgavetypes ? $subsoort->uitgavetypes : [] as $uitgavetype) { - - $sombasis[$uitgavetype->code]->som += ($uitgavetype->bedrag ?: 0); - $sombasis[$uitgavetype->code]->budgetsom += ($uitgavetype->budget ?: 0); - } //foreach - }//foreach subsoort - }//foreach basis } - } // if uitgavetypes - $somasarray=[]; - $index = 0; - $regelsom=0; - $regelsom2 = 0; - foreach($uitgavetypes as $uitgavetype){ - $somasarray[$index ] = new stdClass; - $somasarray[$index]->code = $uitgavetype->code; - $somasarray[$index]->naam = $sombasis[$uitgavetype->code]->naam; - $somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0); - $somasarray[$index ]->budgetsom = round($sombasis[$uitgavetype->code]->budgetsom,0); - $index += 1; - }; - $regelsom = $somasarray[0]->som; - $regelsom2 = $somasarray[0 ]->budgetsom; - $somasarray[$index] = new stdClass; - $somasarray[$index]->code ="REGELSOM"; - $somasarray[$index]->naam = "Som"; - $somasarray[$index]->som = $regelsom; + foreach($basis ? $basis : [] as $soort){ + foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort){ + foreach($subsoort->uitgavetypes ? $subsoort->uitgavetypes :[] as $kostenpost) { + $sombasis[$uitgavetype->code]->som += is_numeric($kostenpost->bedrag)? floatval($kostenpost->bedrag): 0; + $sombasis[$uitgavetype->code]->budgetsom += is_numeric($kostenpost->budget) ? floatval($kostenpost->budget): 0; + } //foreach + }//foreach subsoort + }//foreach basis + } // if uitgavetypes + $somasarray=[]; + $index = 0; + $regelsom=0; + $regelsom2 = 0; + foreach($uitgavetypes as $uitgavetype){ + $somasarray[$index ] = new stdClass; + $somasarray[$index]->code = $uitgavetype->code; + $somasarray[$index]->naam = $sombasis[$uitgavetype->code]->naam; + $somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0); + $somasarray[$index ]->budgetsom = round($sombasis[$uitgavetype->code]->budgetsom,0); + $regelsom += $somasarray[$index ]->som; + $regelsom2 += $somasarray[$index ]->budgetsom; + $index += 1; + }; + $somasarray[$index] = new stdClass; + $somasarray[$index]->code ="REGELSOM"; + $somasarray[$index]->naam = "Som"; + $somasarray[$index]->som = $regelsom; $somasarray[$index]->budgetsom = $regelsom2; - - return $somasarray; - } + + return $somasarray; + } function getbestuursbedragen(){ $targetorgid = $this->clean_input('orgid'); diff --git a/application/models/monfin2/Finbestemmingen_model.php b/application/models/monfin2/Finbestemmingen_model.php index 7e6388b..027b72e 100644 --- a/application/models/monfin2/Finbestemmingen_model.php +++ b/application/models/monfin2/Finbestemmingen_model.php @@ -64,26 +64,26 @@ class Finbestemmingen_model extends MY_Model{ 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', - ]; + $restant = new stdClass(); + $restant->id = '0'; + $restant->bedrag = '0.00'; + $restant->budget = $restantbudget; + $restant->code = 'RESTANT'; + + $subsoort->uitgavetypes[] = $restant; } } diff --git a/application/views/monpas/pages/monfin2/overzicht.php b/application/views/monpas/pages/monfin2/overzicht.php index e5b6692..787bf00 100644 --- a/application/views/monpas/pages/monfin2/overzicht.php +++ b/application/views/monpas/pages/monfin2/overzicht.php @@ -76,22 +76,39 @@ + - - + + + + + + + + + + + + + + + + - - - + + + + + + - + + - - - - - + diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index faf0d15..bbd0944 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -90,9 +90,7 @@ ls.initBestemmingenModel = function(){ 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') + @@ -487,32 +485,32 @@ ls.initBestemmingenModel = function(){ 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(invoer >= subbudget) { + if(Number(invoer) >= Number(subbudget)) { dit.budget(invoer); stuurMelding = false; } - totaalgebudget +=invoer + totaalgebudget = Number(totaalgebudget) +Number(invoer); break; - case 'PERSONEEL': subbudget = invoer +Number(s.uitgavetypes()[2].budget()) + Number(s.uitgavetypes()[3].budget()); - if(Number(s.uitgavetypes()[0].budget()) >= subbudget) { + 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(s.uitgavetypes()[0].budget()) + totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget()) } break; - case 'MATERIEEL': subbudget = Number(s.uitgavetypes()[1].budget()) + invoer+ Number(s.uitgavetypes()[3].budget()); + 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(s.uitgavetypes()[0].budget()); + totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget()); } break; - case 'SCHOLING': subbudget = Number(s.uitgavetypes()[1].budget()) + Number(s.uitgavetypes()[2].budget())+ invoer ; + 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(s.uitgavetypes()[0].budget()) + totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget()) } break; @@ -529,18 +527,19 @@ ls.initBestemmingenModel = function(){ if(Number(invoer) > 0) dit.budgetFormat(parseFloat(invoer).format(2, 3, '.', ',')); else dit.budgetFormat(''); - var restant = Number(s.uitgavetypes()[0].budget()) -subbudget; + 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, '.', ',')); } } else{ - totaalgebudget += s.uitgavetypes()[0].budget(); + totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget()); } } + console.log(totaalgebudget) }) @@ -553,29 +552,33 @@ ls.initBestemmingenModel = function(){ } //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; -// -// } + console.log(totaalgebudget, 'ge') + console.log(totaalbudget, 'budget') + console.log(Number(totaalgebudget) > Number(totaalbudget), 'bewering') + + 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){ diff --git a/public/js/monpas/models/monfin2/monfinoverzicht2.js b/public/js/monpas/models/monfin2/monfinoverzicht2.js index 7fb64e4..bb38235 100644 --- a/public/js/monpas/models/monfin2/monfinoverzicht2.js +++ b/public/js/monpas/models/monfin2/monfinoverzicht2.js @@ -106,15 +106,20 @@ ls.initMonfinOverzicht2Model = function(){ fGetBedragen: function(){ var self = ls.MonfinOverzicht2Model; if (!self.selectedOrg() || !self.selectedKalenderjaar()) return; + console.log( self.selectedOrg().soort, 'orgsoort') + + if (self.selectedOrg().soort == 4) { self.zelfjanee('1');}; + console.log(self.zelfjanee(), 'janee') - 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); From b9acce3072ec8f7701e4e2cdaef33ce2f090d455 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Thu, 22 Jun 2023 16:25:31 +0200 Subject: [PATCH 11/17] totaalbudget verdelen --- .../controllers/monfin2/Bestemmingen.php | 12 +- .../controllers/monfin2/Monfin2overzicht.php | 174 +++-- application/core/MY_Controller.php | 3 +- .../models/monfin2/Finbestemmingen_model.php | 18 +- .../views/monpas/modals/findetails_modal.php | 102 ++- .../views/monpas/pages/monfin2/overzicht.php | 692 +++++++++++++----- public/js/monpas/models/ijkpuntenmodel.js | 8 - .../js/monpas/models/monfin2/bestemmingen.js | 21 +- .../monpas/models/monfin2/monfinoverzicht2.js | 18 +- 9 files changed, 730 insertions(+), 318 deletions(-) diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index b59675b..3b18084 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -22,7 +22,7 @@ class Bestemmingen extends MY_Controller{ $org = $this->Organisaties_model->get_record_by_id($this->globorgid); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); - $kalenderjaren = $this->Kalenderjaren_model->getkalenderjarenMetMax($targetjaar); + $kalenderjaren = $this->Kalenderjaren_model->getkalenderjaren(); if ($this->Autorisaties_model->check_autorisatie($this->userrole, WRITER) > 0 ) {$writer = true;} @@ -87,7 +87,7 @@ class Bestemmingen extends MY_Controller{ $bestemmingID = $this->clean_input("id"); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); - if ($targetjaar == $bestemmingjaar){ + if ($targetjaar >= $bestemmingjaar){ $this->Finbestemmingen_model->update_record(['bedrag'=>$this->clean_input('bedrag')], $bestemmingID); } $record = $this->Finbestemmingen_model->get_record_by_id($bestemmingID); @@ -97,9 +97,11 @@ class Bestemmingen extends MY_Controller{ function updatebudget(){ // TODO check autorisatie $bestemmingID = $this->clean_input("id"); - - $this->Finbestemmingen_model->update_record(['budget'=>$this->clean_input('budget')], $bestemmingID); - + $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); + $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); + if ($targetjaar >= $bestemmingjaar) { + $this->Finbestemmingen_model->update_record(['budget' => $this->clean_input('budget')], $bestemmingID); + } } diff --git a/application/controllers/monfin2/Monfin2overzicht.php b/application/controllers/monfin2/Monfin2overzicht.php index 3c20875..5494df4 100644 --- a/application/controllers/monfin2/Monfin2overzicht.php +++ b/application/controllers/monfin2/Monfin2overzicht.php @@ -22,11 +22,6 @@ class Monfin2overzicht extends MY_Controller{ $kalenderjaarnr = $this->clean_input("jaarnr"); $uitgavetypes = $this->Finuitgavetypes_model->get_uitgavetypes(); $budgetten = $this->Toewijzingen_model->gettoewijzingperjaar($orgid, $kalenderjaarnr); - $basis = array(); - $extra = array(); - - $schooltot = 0; - $opmerking = ''; if ($budgetten) { $budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra) / 100); @@ -42,33 +37,26 @@ class Monfin2overzicht extends MY_Controller{ $basis = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"BASIS"); $extra = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"EXTRA"); -// echo json_encode([ -// 'basis' => $basis, -// 'extra' =>$extra -// ]); -// -// return; - $sombasisperuitgavetype = $this->get_som_per_uitgavetype($basis, $uitgavetypes); $somextraperuitgavetype = $this->get_som_per_uitgavetype($extra, $uitgavetypes); - $totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes); + $totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes); $totbesteed = $this->sommeeralles($totsomperuitgavetype, 'BEDRAG'); $totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET'); - $sommen = $this->get_som_regel($basis, $budgetten->basis); + $sommen = $this->get_som_per_regel($basis, $budgetten->basis, $sombasisperuitgavetype[0]); $basis = $sommen['soorten']; $sombudgetpct = $sommen['sombudgetpct']; $sombedragpct = $sommen['sombedragpct']; - $sommenex = $this->get_som_regel($extra, $budgetten->extra); + $sommenex = $this->get_som_per_regel($extra, $budgetten->extra, $somextraperuitgavetype[0]); $extra = $sommenex['soorten']; $sombudgetpctex = $sommenex['sombudgetpct']; $sombedragpctex = $sommenex['sombedragpct']; // 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->basisverschil = number_format($budgetten->basis - $sombasisperuitgavetype[0]->som, 0, ',' , '.' ); + $budgetten->extraverschil = number_format($budgetten->extra - $somextraperuitgavetype[0]->som, 0, ',' , '.' ); + $budgetten->totaalverschil = $budgetten->totaal - ($sombasisperuitgavetype[0]->som +$somextraperuitgavetype[0]->som); $budgetten->basisbudgetpct = number_format($sombudgetpct, 1,',', '.'); @@ -183,37 +171,34 @@ class Monfin2overzicht extends MY_Controller{ $totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes); $totbesteed = $this->sommeeralles($totsomperuitgavetype, 'BEDRAG'); $totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET'); - $subbedragbasis = $sombasisperuitgavetype[3]->som; - $subbudgetbasis = $sombasisperuitgavetype[3]->budgetsom; - $sommen = $this->get_som_regel($basis, $budgetten->basis); + $sommen = $this->get_som_per_regel($basis, $budgetten->basis, $sombasisperuitgavetype[0]); + $basis = $sommen['soorten']; - $somgebudgetpct = $sommen['somgebudgetpct']; +// $somgebudgetpct = $sommen['somgebudgetpct']; $sombudgetpct = $sommen['sombudgetpct']; $sombedragpct = $sommen['sombedragpct']; - $sombedragbudgetpct = $sommen['sombedragbudgetpct']; - $subbedragextra = $somextraperuitgavetype[3]->som; - $subbudgetextra = $somextraperuitgavetype[3]->budgetsom; +// $sombedragbudgetpct = $sommen['sombedragbudgetpct']; - $sommenex = $this->get_som_regel($extra, $budgetten->extra ); + $sommenex = $this->get_som_per_regel($extra, $budgetten->extra, $somextraperuitgavetype[0] ); $extra = $sommenex['soorten']; - $somgebudgetpctex = $sommenex['somgebudgetpct']; +// $somgebudgetpctex = $sommenex['somgebudgetpct']; $sombudgetpctex = $sommenex['sombudgetpct']; $sombedragpctex = $sommenex['sombedragpct']; - $sombedragbudgetpctex = $sommen['sombedragbudgetpct']; +// $sombedragbudgetpctex = $sommen['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->basisbudgetpct = number_format($sombudgetpct, 2,',', '.'); - $budgetten->basisgebudgetpct = number_format($somgebudgetpct, 2,',', '.'); +// $budgetten->basisgebudgetpct = number_format($somgebudgetpct, 2,',', '.'); $budgetten->basisbedragpct = number_format($sombedragpct, 2,',', '.'); - $budgetten->basisbedragbudgetpct = number_format($sombedragbudgetpct, 2,',', '.'); +// $budgetten->basisbedragbudgetpct = number_format($sombedragbudgetpct, 2,',', '.'); $budgetten->extrabudgetpct = number_format($sombudgetpctex, 2,',', '.'); - $budgetten->extragebudgetpct = number_format($somgebudgetpctex, 2,',', '.'); +// $budgetten->extragebudgetpct = number_format($somgebudgetpctex, 2,',', '.'); $budgetten->extrabedragpct = number_format($sombedragpctex, 2,',', '.'); - $budgetten->extrabedragbudgetpct = number_format($sombedragbudgetpctex, 2,',', '.'); +// $budgetten->extrabedragbudgetpct = number_format($sombedragbudgetpctex, 2,',', '.'); $bedrag = $budgetten->totaal > 0 ? ($totbesteed/$budgetten->totaal) *100: 0; $budgetten->totbedragbudgetkaal = $bedrag; @@ -287,55 +272,64 @@ class Monfin2overzicht extends MY_Controller{ return $totsom; } } - function get_som_regel($soorten, $budget ){ - $somgebudgetpct = 0; + function get_som_per_regel($soorten, $budget, $uitgaven ){ $sombudgetpct = 0; $sombedragpct = 0; - $sombedragbudgetpct = 0; foreach($soorten ? : [] as $soort){ foreach ($soort->subsoorten ? : [] as $subsoort){ - $som = 0; - $budgetsom = 0; - foreach($subsoort->uitgavetypes ? : [] as $uitgavetype){ - if ($uitgavetype->bedrag){ - $som += isset($uitgavetype->bedrag) && floatval($uitgavetype->bedrag) > 0 ? floatval($uitgavetype->bedrag): 0; - $uitgavetype->bedrag = number_format($uitgavetype->bedrag,0,',','.'); - } - if ($uitgavetype->budget){ - $budgetsom += is_numeric($uitgavetype->budget) ? $uitgavetype->budget: 0; - $uitgavetype->budget =is_numeric($uitgavetype->budget) ? number_format($uitgavetype->budget,0,',','.'): '0,00'; - } - } - $subsoort->uitgavetypes[3]= new stdClass; - $bedragpct = 0; - $budgetpct = 0; + $budgetpct = 0; + $budgetpctformat = 0; + $bedragpct = 0; + $bedragpctformat = 0; - $subsoort->uitgavetypes[3]->bedrag =number_format($som,0, ',' , '.'); - $subsoort->uitgavetypes[3]->budget =number_format($budgetsom,0, ',' , '.'); + $personeel = empty($subsoort->uitgavetypes[1]->bedrag) ? 0 : floatval($subsoort->uitgavetypes[1]->bedrag); + $materieel = empty($subsoort->uitgavetypes[2]->bedrag) ? 0 : floatval($subsoort->uitgavetypes[2]->bedrag); + $scholing = empty($subsoort->uitgavetypes[3]->bedrag) ? 0 : floatval($subsoort->uitgavetypes[3]->bedrag); + $totaal = empty($subsoort->uitgavetypes[0]->bedrag) || floatval($subsoort->uitgavetypes[0]->bedrag) == 0 ? $personeel + $materieel + $scholing : floatval($subsoort->uitgavetypes[0]->bedrag); + $subsoort->uitgavetypes[0]->bedragform = $totaal == 0 ? '': number_format($totaal, 0, ',', '.'); + $subsoort->uitgavetypes[0]->bedrag = $totaal == 0 ? '': number_format($totaal, 2, '.', ''); + $subsoort->uitgavetypes[1]->bedragform = $personeel == 0 ? '': number_format($personeel, 0, ',', '.'); + $subsoort->uitgavetypes[2]->bedragform = $materieel == 0 ? '': number_format($materieel, 0, ',', '.'); + $subsoort->uitgavetypes[3]->bedragform = $scholing == 0 ? '': number_format($scholing, 0, ',', '.'); + if(!empty($uitgaven->som && $uitgaven->som != 0)) { - - 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, ',' , '.'); + $bedragpct = ($totaal / $uitgaven->som) * 100; + $bedragpctformat = number_format($bedragpct, 1, ',', '.'); } - $subsoort->uitgavetypes[3]->verschil = number_format(($budgetsom - $som), 0,',', '.'); - $subsoort->uitgavetypes[3]->code ='REGELSOM'; + + $totbudget = empty($subsoort->uitgavetypes[0]->budget) ? 0 : floatval($subsoort->uitgavetypes[0]->budget); + $persbudget = empty($subsoort->uitgavetypes[1]->budget) ? 0 : floatval($subsoort->uitgavetypes[1]->budget); + $matbudget = empty($subsoort->uitgavetypes[2]->budget) ? 0 : floatval($subsoort->uitgavetypes[2]->budget); + $schoolbudget = empty($subsoort->uitgavetypes[3]->budget) ? 0 : floatval($subsoort->uitgavetypes[3]->budget); + + $subsoort->uitgavetypes[0]->budgetform = $totbudget == 0 ? '': number_format($totbudget, 0, ',', '.'); + $subsoort->uitgavetypes[1]->budgetform = $persbudget == 0 ? '': number_format($persbudget, 0, ',', '.'); + $subsoort->uitgavetypes[2]->budgetform = $matbudget == 0 ? '': number_format($matbudget, 0, ',', '.'); + $subsoort->uitgavetypes[3]->budgetform = $schoolbudget == 0 ? '': number_format($schoolbudget, 0, ',', '.'); + if(! empty($subsoort->uitgavetypes[0]->budget) && ! empty($budget)) { + $budgetpct = ($totbudget/ $budget) * 100; + $budgetpctformat = number_format($budgetpct, 1, ',', '.'); + } + + $verschil = $totbudget - $totaal; + $subsoort->uitgavetypes[0]->verschilfloat = $verschil; + $subsoort->uitgavetypes[0]->verschil = $verschil == 0 ? '' : number_format($verschil, 0,',', '.'); + $subsoort->uitgavetypes[0]->budgetpct = $budgetpct == 0 ? '' : $budgetpctformat; + $subsoort->uitgavetypes[0]->bedragpct = $bedragpct == 0 ? '' : $bedragpctformat; + $restant = $totbudget-$persbudget - $matbudget- $schoolbudget; + $subsoort->uitgavetypes[0]->budgetrestant = $restant == 0 ? '' : $restant; + $sombudgetpct =$sombudgetpct + $budgetpct; $sombedragpct = $sombedragpct +$bedragpct; } - } return [ 'soorten' =>$soorten, 'sombudgetpct' => $sombudgetpct, - 'somgebudgetpct' => $somgebudgetpct, 'sombedragpct' => $sombedragpct, - 'sombedragbudgetpct' => $sombedragbudgetpct, ]; } @@ -368,11 +362,11 @@ class Monfin2overzicht extends MY_Controller{ $regelsom2 += $somtot[$index]->budgetsom; $index += 1; } - $somtot[$index] = new stdClass; - $somtot[$index]->code = "REGELSOM"; - $somtot[$index]->naam = "Som"; - $somtot[$index]->som = $regelsom; - $somtot[$index]->budgetsom = $regelsom2; +// $somtot[$index] = new stdClass; +// $somtot[$index]->code = "REGELSOM"; +// $somtot[$index]->naam = "Som"; +// $somtot[$index]->som = $regelsom; +// $somtot[$index]->budgetsom = $regelsom2; } return $somtot; @@ -381,42 +375,44 @@ class Monfin2overzicht extends MY_Controller{ function get_som_per_uitgavetype($basis,$uitgavetypes){ $sombasis = []; if ($uitgavetypes){ - foreach($uitgavetypes as $uitgavetype){ - $sombasis[$uitgavetype->code]= new stdClass; - $sombasis[$uitgavetype->code]->naam= $uitgavetype->naam; - $sombasis[$uitgavetype->code]->som=0; - $sombasis[$uitgavetype->code]->budgetsom =0; + foreach($uitgavetypes as $uitgavetype) { + $sombasis[$uitgavetype->code] = new stdClass; + $sombasis[$uitgavetype->code]->naam = $uitgavetype->naam; + $sombasis[$uitgavetype->code]->som = 0; + $sombasis[$uitgavetype->code]->budgetsom = 0; + foreach ($basis ? $basis : [] as $soort) { + foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort) { + foreach ($subsoort->uitgavetypes ? $subsoort->uitgavetypes : [] as $kostenpost) { + if ($kostenpost->code == $uitgavetype->code) { + $sombasis[$uitgavetype->code]->som += floatval($kostenpost->bedrag); + $sombasis[$uitgavetype->code]->budgetsom += floatval($kostenpost->budget); + } + } //foreach + }//foreach subsoort + }//foreach basis } - - foreach($basis ? $basis : [] as $soort){ - foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort){ - foreach($subsoort->uitgavetypes ? $subsoort->uitgavetypes :[] as $kostenpost) { - $sombasis[$uitgavetype->code]->som += is_numeric($kostenpost->bedrag)? floatval($kostenpost->bedrag): 0; - $sombasis[$uitgavetype->code]->budgetsom += is_numeric($kostenpost->budget) ? floatval($kostenpost->budget): 0; - } //foreach - }//foreach subsoort - }//foreach basis } // if uitgavetypes $somasarray=[]; $index = 0; $regelsom=0; $regelsom2 = 0; + $regelsom3 = 0; foreach($uitgavetypes as $uitgavetype){ $somasarray[$index ] = new stdClass; $somasarray[$index]->code = $uitgavetype->code; $somasarray[$index]->naam = $sombasis[$uitgavetype->code]->naam; $somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0); $somasarray[$index ]->budgetsom = round($sombasis[$uitgavetype->code]->budgetsom,0); - $regelsom += $somasarray[$index ]->som; - $regelsom2 += $somasarray[$index ]->budgetsom; + if($index != 0) { + $regelsom += $somasarray[$index]->som; + $regelsom2 += $somasarray[$index ]->budgetsom; + } $index += 1; }; - $somasarray[$index] = new stdClass; - $somasarray[$index]->code ="REGELSOM"; - $somasarray[$index]->naam = "Som"; - $somasarray[$index]->som = $regelsom; - $somasarray[$index]->budgetsom = $regelsom2; + + $somasarray[0]->som = $regelsom; + $somasarray[0]->budgetrestant = $somasarray[0]->budgetsom - $regelsom2; return $somasarray; } diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 1a0fc30..1fd7213 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -83,7 +83,8 @@ class MY_Controller extends CI_Controller{ // public $version = '1.19.05';// ambities per org incl kamerversies // public $version = '1.19.06';// monfin met budgetten // public $version = '1.20.03';// monfin met budgetten - public $version = '1.20.04';// monfin met budgetten update +// public $version = '1.20.04';// monfin met budgetten update + public $version = '1.20.05';// monfin met budgetten update 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 027b72e..175b19b 100644 --- a/application/models/monfin2/Finbestemmingen_model.php +++ b/application/models/monfin2/Finbestemmingen_model.php @@ -65,10 +65,15 @@ class Finbestemmingen_model extends MY_Model{ // haal per uitgavetypes de bedragen op if ($uitgavetypes) { + $restantbudget = 0; foreach ($uitgavetypes as $uitgavetype) { - $subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr, $subsoort->subsoortID, $uitgavetype->code); + $subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr, $subsoort->subsoortID, $uitgavetype->code); + + + + } if (count($subsoort->uitgavetypes) > 0) { $restantbudget = floatval(str_replace(',' , '' , $subsoort->uitgavetypes[0]->budget)) - @@ -149,15 +154,6 @@ class Finbestemmingen_model extends MY_Model{ // } function setSomSubsoort($orgid, $jaarnr, $categorie){ - $this->sql = "SELECT FORMAT(SUM(bedrag) / 100,2) as totaal - FROM finbestemmingen B - JOIN finsubsoorten SUB ON B.subsoort_id = SUB.id - JOIN finsoorten S ON SUB.finsoort_id = S.id - WHERE B.organisatie_id = {$orgid} - AND B.kalenderjaar = {$jaarnr} - AND S.categorie = '{$categorie}' "; - - return $this->get_query_row('totaal'); } function getUitgavenPerSubsoortSchool($orgid, $jaarnr){ @@ -207,10 +203,10 @@ class Finbestemmingen_model extends MY_Model{ $row = $this->get_query_row(); } if ($row) { + $row->bedrag = str_replace(',' , '' , $row->bedrag); $row->budget = str_replace(',' , '' , $row->budget); - } return $row; } diff --git a/application/views/monpas/modals/findetails_modal.php b/application/views/monpas/modals/findetails_modal.php index 3914ac4..b189e15 100644 --- a/application/views/monpas/modals/findetails_modal.php +++ b/application/views/monpas/modals/findetails_modal.php @@ -9,28 +9,100 @@


-
+ + + + Restant + + Percentage + + +
+ + + + +
- - - - - Som - - Percentage - - -
budget + + + + + + + -
- - -
-
-
- +
uitgaven + + + + + + + -
- - -
-
-
-
Basisondersteuning som uitgaven - - - som budget + + + + som uitgaven + data-bind="click: $parent.fToelichting.bind($data, 'SOM')"> som budget + + + verschil @@ -119,17 +136,23 @@ Totaal basis 0,00 0,00 0, click: $root.fOpenDetails.bind($data, 'DETAIL')">
- - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + +
+ + +
+ + +
restant + + +
diff --git a/application/views/monpas/pages/monfin2/overzicht.php b/application/views/monpas/pages/monfin2/overzicht.php index 787bf00..1a67e14 100644 --- a/application/views/monpas/pages/monfin2/overzicht.php +++ b/application/views/monpas/pages/monfin2/overzicht.php @@ -1,114 +1,472 @@
-
- - - - - - - +
+ + + + + + - - - - - + + + + - - - - + + + + - - 0) && $parent.geopend() && $parents[1].geopend(), css:{selected: ($root.selectedOrg() && id == $root.selectedOrg().id) }"> - - - - - - - + + + + - - - - - - - - - - -
-
-
-

Selecteer eerst een organisatie

-

Kalenderjaar - - - -

- -

-

- details eigen org. - - details sub-org. - - pers.mat.scholing - sub-organisaties + + + -
-

-
-
- - +

+

+ details eigen org. + + details sub-org. + + pers.mat.scholing + sub-organisaties + +
+

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Basisondersteuning + + + + som budget + + + + verschil + + + % uitgaven + + + % budget + + +
+ Totaal basis0,000,00 + +
+ + + + + + + +
Extra ondersteuning + + + + + som budget + + + + + verschil + + + + % uitgaven + + + + % budget + + +
+ Totaal extra0,000,00 + + +
+ + + + + + + +
Totaal0,000,00 + + + + + +
+
+

Opmerkingen

+

+
+
+
+ load->view("monpas/pages/monfin2/overorgs.php"); ?> +
+
+ load->view("monpas/pages/monfin2/pmsorgs.php"); ?> +
+
+
+ + load->view("monpas/modals/findetails_modal"); ?> + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

Selecteer eerst een organisatie

+

Kalenderjaar + + +

+ +

+

+ details eigen org. + + details sub-org. + + pers.mat.scholing + sub-organisaties + +
+

+
+
+ + - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - + + + - - - + + + + + + @@ -169,50 +521,50 @@ - + - - - - - + - - - + - + @@ -222,7 +574,7 @@ @@ -270,13 +622,13 @@ - + - + @@ -307,36 +659,36 @@ - - - - - + - - - + @@ -345,14 +697,14 @@ - - - - + + + + - - - + + + @@ -376,25 +728,25 @@ style: {color: parseFloat($root.budgetten().totbedragbudgetkaal) > 100 ? 'red' : 'black'}" > - + -
Basisondersteuning - - - som uitgaven - - som budget - + data-bind="click: $parent.fToelichting.bind($data, 'KOSTEN')"> som uitgaven + + + som budget + + + verschil @@ -129,37 +487,31 @@
- Totaal basis
+ Totaal basis 0,000,00
+ + + + 0, click: $root.fOpenDetails.bind($data, 'DETAIL')"> +
+ data-bind="click: $parent.fToelichting.bind($data, 'KOSTEN')"> Totaal extra 0,00 0,00
0, click: $root.fOpenDetails.bind($data, 'EXTRA')"> +
Totaal
Totaal + data-bind="text: $root.budgetten() ? $root.budgetten().totbudgetpct: '0,00' ">
-
-

Opmerkingen

-

-
-
-
- load->view("monpas/pages/monfin2/overorgs.php"); ?> -
-
- load->view("monpas/pages/monfin2/pmsorgs.php"); ?> -
-
-
+ +
+

Opmerkingen

+

+
+
+
+ load->view("monpas/pages/monfin2/overorgs.php"); ?> +
+
+ load->view("monpas/pages/monfin2/pmsorgs.php"); ?> +
+
+
load->view("monpas/modals/findetails_modal"); ?> diff --git a/public/js/monpas/models/ijkpuntenmodel.js b/public/js/monpas/models/ijkpuntenmodel.js index e1a3f77..46a37a9 100644 --- a/public/js/monpas/models/ijkpuntenmodel.js +++ b/public/js/monpas/models/ijkpuntenmodel.js @@ -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], diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index bbd0944..ab8b1af 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -106,6 +106,7 @@ ls.initBestemmingenModel = function(){ kalenderjaren : ko.observableArray([]), selectedKalenderjaar : ko.observable(), jaartoewijzing : ko.observable(), + erIsBudget : ko.observable(false), targetjaar : ko.observable(2017), //het jaar waarin met moet werken uitgavetypes : ko.observableArray(), basissoorten : ko.observableArray(), @@ -171,9 +172,9 @@ ls.initBestemmingenModel = function(){ $.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') @@ -185,6 +186,7 @@ ls.initBestemmingenModel = function(){ $.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, '') @@ -215,7 +217,7 @@ ls.initBestemmingenModel = function(){ var sd = { 'id': id, - 'bedrag': subtotaal, + 'bedrag': subtotaal } $.post("index.php/monfin2/bestemmingen/updatebedrag", sd, function(data){ @@ -439,13 +441,15 @@ ls.initBestemmingenModel = function(){ invoer = Math.round(invoer * 100); var sd = { 'id' : dit.finbestemmingID, - 'bedrag': invoer, + 'bedrag': invoer + } $.post("index.php/monfin2/bestemmingen/updatebedrag", sd); var sd2 = { 'id' : subtotID, - 'bedrag': subtotaal, + 'bedrag': subtotaal + } $.post("index.php/monfin2/bestemmingen/updatebedrag", sd2); }, @@ -539,7 +543,6 @@ ls.initBestemmingenModel = function(){ } - console.log(totaalgebudget) }) @@ -552,9 +555,6 @@ ls.initBestemmingenModel = function(){ } //waarden terugzetten als totaal budget wordt overschreden - console.log(totaalgebudget, 'ge') - console.log(totaalbudget, 'budget') - console.log(Number(totaalgebudget) > Number(totaalbudget), 'bewering') if(Number(totaalgebudget) > Number(totaalbudget)){ dit.budget(budgetoud); @@ -620,7 +620,8 @@ ls.initBestemmingenModel = function(){ invoer = Math.round(invoer * 100); var sd = { 'id' : dit.finbestemmingID, - 'budget': invoer, + 'budget': invoer + } $.post("index.php/monfin2/bestemmingen/updatebudget", sd); }, diff --git a/public/js/monpas/models/monfin2/monfinoverzicht2.js b/public/js/monpas/models/monfin2/monfinoverzicht2.js index bb38235..ed06400 100644 --- a/public/js/monpas/models/monfin2/monfinoverzicht2.js +++ b/public/js/monpas/models/monfin2/monfinoverzicht2.js @@ -106,11 +106,9 @@ ls.initMonfinOverzicht2Model = function(){ fGetBedragen: function(){ var self = ls.MonfinOverzicht2Model; if (!self.selectedOrg() || !self.selectedKalenderjaar()) return; - console.log( self.selectedOrg().soort, 'orgsoort') if (self.selectedOrg().soort == 4) { self.zelfjanee('1');}; - console.log(self.zelfjanee(), 'janee') if (self.zelfjanee()==1 || self.selectedOrg().soort==4){ var sd={orgid : self.selectedOrg().id, @@ -209,7 +207,7 @@ ls.initMonfinOverzicht2Model = function(){ break; case '%BUDGET' : message = 'Het gebudgetteerde bedrag als percentage van het totale budget.'; break; - case '%UITGAVEN' : message = 'Uitgaven als percentage van het totale budget.'; + case '%UITGAVEN' : message = 'Uitgaven als percentage van de totale uitgaven.'; break; } @@ -229,7 +227,9 @@ ls.initMonfinOverzicht2Model = function(){ self.selectedSubsoort(''); switch(niveau){ case 'BASIS' : self.selectedSubsoort( - {'naam' : 'Basisondersteuning gebudgetteerd', + + { + 'naam' : 'Basisondersteuning gebudgetteerd', 'uitgavetypes' : self.sombasisperuitgavetype() }); break; @@ -237,7 +237,7 @@ ls.initMonfinOverzicht2Model = function(){ break; case 'EXTRA': self.selectedSubsoort( {'naam' : 'Extra ondersteuning gebudgetteerd', - 'uitgavetypes' : self.totsomperuitgavetype() + 'uitgavetypes' : self.somextraperuitgavetype() }); break; case 'TOTAAL': self.selectedSubsoort( @@ -251,10 +251,10 @@ 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 totaalbudget.'); - }, + // 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 From e0b2b12483c1fa4651a72da0c4b26646456b3dc3 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Mon, 26 Jun 2023 12:36:02 +0200 Subject: [PATCH 12/17] werkt dit beter --- application/controllers/monfin2/Bestemmingen.php | 9 +++++---- public/js/monpas/models/monfin2/bestemmingen.js | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index 3b18084..6478fe2 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -87,9 +87,10 @@ class Bestemmingen extends MY_Controller{ $bestemmingID = $this->clean_input("id"); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); - if ($targetjaar >= $bestemmingjaar){ +// 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]); } @@ -99,9 +100,9 @@ class Bestemmingen extends MY_Controller{ $bestemmingID = $this->clean_input("id"); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); - if ($targetjaar >= $bestemmingjaar) { +// if ($targetjaar >= $bestemmingjaar) { $this->Finbestemmingen_model->update_record(['budget' => $this->clean_input('budget')], $bestemmingID); - } +// } } diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index ab8b1af..d675500 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -198,6 +198,7 @@ ls.initBestemmingenModel = function(){ 'bedrag': subtotaal, } + $.post("index.php/monfin2/bestemmingen/updatebedrag", sd, function(data){ }, 'json'); @@ -444,6 +445,7 @@ ls.initBestemmingenModel = function(){ 'bedrag': invoer } + console.log(sd, 'bedrag') $.post("index.php/monfin2/bestemmingen/updatebedrag", sd); var sd2 = { @@ -452,6 +454,7 @@ ls.initBestemmingenModel = function(){ } $.post("index.php/monfin2/bestemmingen/updatebedrag", sd2); + console.log(sd, 'regeltotaal') }, @@ -623,6 +626,7 @@ ls.initBestemmingenModel = function(){ 'budget': invoer } + console.log(invoer, 'budget') $.post("index.php/monfin2/bestemmingen/updatebudget", sd); }, From e47f0a9a6c60d3882774a2f6f3ee4996ced74e16 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Mon, 26 Jun 2023 12:42:44 +0200 Subject: [PATCH 13/17] last result --- application/controllers/monfin2/Bestemmingen.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index 6478fe2..2e297c4 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -87,10 +87,10 @@ class Bestemmingen extends MY_Controller{ $bestemmingID = $this->clean_input("id"); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); -// if ($targetjaar >= $bestemmingjaar){ + 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]); } @@ -100,9 +100,10 @@ class Bestemmingen extends MY_Controller{ $bestemmingID = $this->clean_input("id"); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); -// if ($targetjaar >= $bestemmingjaar) { + if ($targetjaar >= $bestemmingjaar) { $this->Finbestemmingen_model->update_record(['budget' => $this->clean_input('budget')], $bestemmingID); -// } + echo $this->db->last_query(); + } } From a3564ff04834ce68c1390063aa2762efc54c01f3 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Mon, 26 Jun 2023 12:47:41 +0200 Subject: [PATCH 14/17] if uitgezet --- application/controllers/monfin2/Bestemmingen.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index 2e297c4..466eabb 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -100,10 +100,10 @@ class Bestemmingen extends MY_Controller{ $bestemmingID = $this->clean_input("id"); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); - if ($targetjaar >= $bestemmingjaar) { +// if ($targetjaar >= $bestemmingjaar) { $this->Finbestemmingen_model->update_record(['budget' => $this->clean_input('budget')], $bestemmingID); echo $this->db->last_query(); - } +// } } From c26d3b25074fbbcee2c91ae2c4d0b385076108df Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Mon, 26 Jun 2023 12:51:51 +0200 Subject: [PATCH 15/17] nog een test --- application/controllers/monfin2/Bestemmingen.php | 5 ++--- public/js/monpas/models/monfin2/bestemmingen.js | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/application/controllers/monfin2/Bestemmingen.php b/application/controllers/monfin2/Bestemmingen.php index 466eabb..566f845 100644 --- a/application/controllers/monfin2/Bestemmingen.php +++ b/application/controllers/monfin2/Bestemmingen.php @@ -87,10 +87,10 @@ class Bestemmingen extends MY_Controller{ $bestemmingID = $this->clean_input("id"); $targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid); $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); - if ($targetjaar >= $bestemmingjaar){ +// 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]); } @@ -102,7 +102,6 @@ class Bestemmingen extends MY_Controller{ $bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true); // if ($targetjaar >= $bestemmingjaar) { $this->Finbestemmingen_model->update_record(['budget' => $this->clean_input('budget')], $bestemmingID); - echo $this->db->last_query(); // } } diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index d675500..c52a460 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -626,7 +626,6 @@ ls.initBestemmingenModel = function(){ 'budget': invoer } - console.log(invoer, 'budget') $.post("index.php/monfin2/bestemmingen/updatebudget", sd); }, From 1480cd5a2f82d86e1ea4211fd371ba5c66f42e5f Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Mon, 26 Jun 2023 13:32:47 +0200 Subject: [PATCH 16/17] als restant 0 is leeg veld --- application/core/MY_Controller.php | 2 +- public/js/monpas/models/monfin2/bestemmingen.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 1fd7213..d16812e 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -84,7 +84,7 @@ class MY_Controller extends CI_Controller{ // public $version = '1.19.06';// monfin met budgetten // public $version = '1.20.03';// monfin met budgetten // public $version = '1.20.04';// monfin met budgetten update - public $version = '1.20.05';// monfin met budgetten update + public $version = '1.20.06';// monfin met budgetten update public $partituurid; public $globProfielVersieID = 1; public $userid; //id of the user that is logged in diff --git a/public/js/monpas/models/monfin2/bestemmingen.js b/public/js/monpas/models/monfin2/bestemmingen.js index c52a460..8267f8d 100644 --- a/public/js/monpas/models/monfin2/bestemmingen.js +++ b/public/js/monpas/models/monfin2/bestemmingen.js @@ -518,6 +518,8 @@ ls.initBestemmingenModel = function(){ dit.budget(invoer); stuurMelding = false; totaalgebudget = Number(totaalgebudget) + Number(s.uitgavetypes()[0].budget()) + + console.log(subbudget , 'subbudget bij wijzigen scholing') } break; @@ -536,7 +538,7 @@ ls.initBestemmingenModel = function(){ 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, '.', ',')); + Number(restant) === 0 ? s.uitgavetypes()[4].budgetFormat(''): s.uitgavetypes()[4].budgetFormat(parseFloat(restant).format(2, 3, '.', ',')); } } @@ -550,6 +552,8 @@ ls.initBestemmingenModel = function(){ }) }) + + if(stuurMelding) return; if (parseFloat(totaalgebudget) > 0) { totaalgebudgetForm = parseFloat(totaalgebudget).format(2, 3, '.', ','); From 89843a9f6ce9b5086f60c002827e56bf8f682da6 Mon Sep 17 00:00:00 2001 From: Monique Hansma Date: Fri, 30 Jun 2023 13:43:06 +0200 Subject: [PATCH 17/17] hoger kalenderjaar ivm budgettering --- application/core/MY_Controller.php | 2 +- public/js/monpas/models/monfin2/monfinoverzicht2.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index d16812e..9f42a52 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -84,7 +84,7 @@ class MY_Controller extends CI_Controller{ // public $version = '1.19.06';// monfin met budgetten // public $version = '1.20.03';// monfin met budgetten // public $version = '1.20.04';// monfin met budgetten update - public $version = '1.20.06';// monfin met budgetten update + public $version = '1.20.07';// monfin met budgetten update hogere kalenderjaren public $partituurid; public $globProfielVersieID = 1; public $userid; //id of the user that is logged in diff --git a/public/js/monpas/models/monfin2/monfinoverzicht2.js b/public/js/monpas/models/monfin2/monfinoverzicht2.js index ed06400..a32d325 100644 --- a/public/js/monpas/models/monfin2/monfinoverzicht2.js +++ b/public/js/monpas/models/monfin2/monfinoverzicht2.js @@ -79,7 +79,7 @@ ls.initMonfinOverzicht2Model = function(){ 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){