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 @@ 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')"> 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);