load->model($models); if ( ! $this->check_online_status() ) { echo json_encode( array('offline' => TRUE) ); die; };// if } function getschoolbedragen(){ $orgid = $this->clean_input("orgid"); $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); $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, 'BEDRAG'); $totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET'); $sommen = $this->get_som_regel($basis, $budgetten->basis); $basis = $sommen['soorten']; $sombudgetpct = $sommen['sombudgetpct']; $sombedragpct = $sommen['sombedragpct']; $sommenex = $this->get_som_regel($extra, $budgetten->extra); $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->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, 1, ',', '.'); $bedrag2 = $budgetten->totaal > 0 ?($totgebudgeteerd/$budgetten->totaal)*100 : 0; $budgetten->totbudgetpct = number_format($bedrag2, 1, ',', '.'); // todo // zorg dat alle getallen geformateerd zijn met een duizendtalscheidingsteken $budgetten->totaal = number_format($budgetten->totaal, 0 , ',' , '.'); $budgetten->basis = number_format($budgetten->basis , 0 , ',' , '.'); $budgetten->extra = number_format($budgetten->extra, 0 , ',' , '.'); 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 (! 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)); } function getschoolbedragenNieuw(){ $orgid = $this->clean_input("orgid"); $kalenderjaarnr = $this->clean_input("jaarnr"); $soortoverzicht = $this->clean_input('zelfjanee'); $suborgs = $this->Organisaties_model->getlistrecursief( $orgid, []); array_splice($suborgs, 0,1); $suborgslist= implode(',', $suborgs); $uitgavetypes = $this->Finuitgavetypes_model->get_uitgavetypes(); if ($soortoverzicht == 3){ $budgetten = $this->Toewijzingen_model->gettoewijzingenperjaaroverorgs($suborgslist, $kalenderjaarnr); } else { $budgetten = $this->Toewijzingen_model->gettoewijzingperjaar($orgid, $kalenderjaarnr); } $basis = array(); $extra = 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 ($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"); } else { $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, 'BEDRAG'); $totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET'); $subbedragbasis = $sombasisperuitgavetype[3]->som; $subbudgetbasis = $sombasisperuitgavetype[3]->budgetsom; $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, $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); $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, ',', '.'); // todo // zorg dat alle getallen geformateerd zijn met een duizendtalscheidingsteken $budgetten->totaal = number_format($budgetten->totaal, 0 , ',' , '.'); $budgetten->basis = number_format($budgetten->basis , 0 , ',' , '.'); $budgetten->extra = number_format($budgetten->extra, 0 , ',' , '.'); 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){ $opmerking = ''; } else { $opmerking = $this->Bestedingopmerkingen_model->getopmerking($orgid, $kalenderjaarnr); } }; // if budgetten 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, 'basis' =>$basis, 'extra' =>$extra, 'sombasisperuitgavetype' =>$sombasisperuitgavetype, 'somextraperuitgavetype' =>$somextraperuitgavetype, 'totsomperuitgavetype' =>$totsomperuitgavetype, 'schooltotaal' => $schooltot, 'budgetten' => $budgetten, 'opmerking' => $opmerking)); } 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; } function get_som_regel($soorten, $budget ){ $somgebudgetpct = 0; $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 += $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; $bedragpct = 0; $budgetpct = 0; $subsoort->uitgavetypes[3]->bedrag =number_format($som,0, ',' , '.'); $subsoort->uitgavetypes[3]->budget =number_format($budgetsom,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, ',' , '.'); } $subsoort->uitgavetypes[3]->verschil = number_format(($budgetsom - $som), 0,',', '.'); $subsoort->uitgavetypes[3]->code ='REGELSOM'; $sombudgetpct =$sombudgetpct + $budgetpct; $sombedragpct = $sombedragpct +$bedragpct; } } 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){ $somtot[$index] = new stdClass; $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; $somtot[$index]->budgetsom += $basis->budgetsom; } } foreach($somextra as $basis){ 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; } 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; $sombasis[$uitgavetype->code]->budgetsom += $uitgavetype->budget; } //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; } function getbestuursbedragen(){ $targetorgid = $this->clean_input('orgid'); $kalenderjaarnr= $this->clean_input("jaarnr"); $subtot = new stdClass; $subtot->basis =0; $subtot->extra =0; $subtot->som =0; $subtot->budget =0; $subtot->verschil =0; $grandtot = new stdClass; $grandtot->basis =0; $grandtot->extra =0; $grandtot->som =0; $grandtot->budget =0; $grandtot->verschil =0; $targetorg = $this->Organisaties_model->get_record_by_id($targetorgid); $targetorg->bestemmingen = $this->get_bestuur_bestemmingen($targetorgid, $kalenderjaarnr); $targetorg->budgetten = $this->getbudgetten($targetorgid, $kalenderjaarnr,$targetorg->bestemmingen['som']); $grandtot->basis = $targetorg->bestemmingen['basis']; $grandtot->extra = $targetorg->bestemmingen['extra']; $grandtot->som = $targetorg->bestemmingen['som']; $grandtot->budget = $targetorg->budgetten->totaal; $grandtot->verschil = $targetorg->budgetten->verschil; //get de som van de uitgaven van de onderliggende organisaties $soort = $targetorg->soort +1; $organisaties = $this->Organisaties_model->getorgs($soort, $targetorgid, true); $others =[]; if ($organisaties){ $index = 0; foreach ($organisaties as $organisatie){ $orgids = $this->getorgids( $organisatie->id); $others[$index] = new stdClass; $others[$index]->naam = $organisatie->brin.'-'.$organisatie->naamkort; $others[$index]->id = $organisatie->id; $others[$index]->budget = $this->get_budgetten_inclusief($orgids, $kalenderjaarnr); $others[$index]->bestemmingen = $this->get_bestemmingen_inclusief($orgids, $kalenderjaarnr); $others[$index]->verschil = $others[$index]->budget->totaal - $others[$index]->bestemmingen->som; $others[$index]->formVerschil = number_format($others[$index]->verschil, 0 ,',' , '.' ); $subtot->basis += $others[$index]->bestemmingen->basis; $subtot->extra += $others[$index]->bestemmingen->extra; $subtot->som += $others[$index]->bestemmingen->som; $subtot->budget += $others[$index]->budget->totaal; $subtot->verschil += $others[$index]->verschil; $grandtot->basis += $others[$index]->bestemmingen->basis; $grandtot->extra += $others[$index]->bestemmingen->extra; $grandtot->som += $others[$index]->bestemmingen->som; $grandtot->budget += $others[$index]->budget->totaal; $grandtot->verschil += $others[$index]->verschil; $index += 1; } } $targetorg->budgetten->basis = number_format($targetorg->budgetten->basis, 0, ',' , '.'); $targetorg->budgetten->extra = number_format($targetorg->budgetten->extra, 0, ',' , '.'); $targetorg->budgetten->totaal = number_format($targetorg->budgetten->totaal, 0, ',' , '.'); $targetorg->budgetten->verschil = number_format($targetorg->budgetten->verschil,0, ',' , '.'); $subtot->basis = number_format($subtot->basis,0 , ',' , '.'); $subtot->extra = number_format($subtot->extra,0 , ',' , '.'); $subtot->som = number_format($subtot->som,0 , ',' , '.'); $subtot->budget = number_format($subtot->budget,0 , ',' , '.'); $subtot->verschil = number_format($subtot->verschil,0 , ',' , '.'); $grandtot->basis = number_format($grandtot->basis,0 , ',' , '.'); $grandtot->extra = number_format($grandtot->extra,0 , ',' , '.'); $grandtot->som = number_format($grandtot->som,0 , ',' , '.'); $grandtot->budget = number_format($grandtot->budget,0 , ',' , '.'); $grandtot->verschil = number_format($grandtot->verschil,0 , ',' , '.'); // $result = $this->get_orgs_bestemmingen($orgids, $kalenderjaarnr); echo json_encode(['targetorg' =>$targetorg, 'others' =>$others, 'subtot' =>$subtot, 'grandtot' =>$grandtot ]); } function get_bestemmingen_inclusief($orgids, $jaarnr){ $bestemmingen = new stdClass; $bestemmingen->basis = $this->Finbestemmingen_model->getsompersoortoverorgsSummed($orgids, $jaarnr, 'BASIS'); $bestemmingen->formBasis = number_format($bestemmingen->basis,0, ',' , '.' ); $bestemmingen->extra = $this->Finbestemmingen_model->getsompersoortoverorgsSummed($orgids, $jaarnr, 'EXTRA'); $bestemmingen->formExtra = number_format($bestemmingen->extra,0, ',' , '.' ); $bestemmingen->som = $bestemmingen->basis + $bestemmingen->extra; $bestemmingen->formSom = number_format($bestemmingen->som,0, ',' , '.' ); return $bestemmingen; } function get_budgetten_inclusief($orgids,$jaarnr){ $budgetten = $this->Toewijzingen_model->gettoewijzingenperjaaroverorgs($orgids, $jaarnr); if ( ! $budgetten){ $budgetten = new stdClass; $budgetten->basis = 0; $budgetten->extra = 0; $budgetten->totaal = 0; } $budgetten->formTotaal = number_format($budgetten->totaal, 0 , ',' , '.' ); return $budgetten; } private function getorgids($orgid){ $organisaties = array(); $level2 = array(); $level3 = array(); $idarray = array(); $idarray[] =$orgid; $organisaties = $this->Organisaties_model->getorgsonder($orgid); if ($organisaties){ foreach($organisaties as $organisatie){ $level2= $this->Organisaties_model->getorgsonder($organisatie->id); if ($level2){ foreach($level2 as $l2){ $level3 = $this->Organisaties_model->getorgsonder($l2->id); if($level3){ foreach($level3 as $l3){ $idarray[]=$l3->id; }; }; // if level3 $idarray[]=$l2->id; } }; // if level2 $idarray[] = $organisatie->id; } }; // if organisaties return implode(',', $idarray); } private function get_bestuur_bestemmingen($orgid, $kalenderjaarnr){ $orgbestedingen = array(); $orgbestedingen['basis'] =0; $orgbestedingen['formBasis'] ='' ; $orgbestedingen['extra'] =0; $orgbestedingen['formExtra'] = ''; $orgbestedingen['som'] =0; $orgbestedingen['formSom'] = ''; $bestemmingenOrgZelf = $this->Finbestemmingen_model->getsompersoortoverorgs($orgid, $kalenderjaarnr); if ($bestemmingenOrgZelf){ foreach($bestemmingenOrgZelf as $besteding){ switch ($besteding->categorie){ case "BASIS": $orgbestedingen['basis'] = $besteding->bedrag; $orgbestedingen['formBasis'] = number_format($besteding->bedrag,0, ',' , '.' ); break; case "EXTRA": $orgbestedingen['extra'] = $besteding->bedrag; $orgbestedingen['formExtra'] = number_format($besteding->bedrag,0, ',' , '.' ); break; };// switch $orgbestedingen['som'] += $besteding->bedrag; }; // foreach bestedingen } ; // if bestedingen $orgbestedingen['formSom']=number_format($orgbestedingen['som'] ,0, ',' , '.' ); return $orgbestedingen; } private function getbudgetten($orgid, $kalenderjaarnr, $som){ $budgetten =$this->Toewijzingen_model->gettoewijzingperjaar($orgid, $kalenderjaarnr); if (!$budgetten){ $budgetten=new stdClass; $budgetten->basis = 0; $budgetten->extra = 0; } $budgetten->basis = $budgetten->basis / 100; $budgetten->extra = $budgetten->extra / 100; $budgetten->totaal =$budgetten->basis + $budgetten->extra; $budgetten->verschil = $budgetten->basis + $budgetten->extra - $som; return $budgetten; } function getbestuurperuitgavetype(){ $targetorgid = $this->clean_input('orgid'); $kalenderjaarnr = $this->clean_input("jaarnr"); $targetorg = $this->Organisaties_model->get_record_by_id($targetorgid); 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, 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, 5); $otherorg->bud = $this->format_all_bedragen($otherorg->bud, 5); } } echo json_encode(['targetorg' => $targetorg, 'otherorgs' => $otherorgs, 'sumother' => $sumother, 'sumtot' => $sumtot]); } 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 = 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); 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 ($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 = []; if (! $sumother || ! $targetorg) return $sumtot; $sumtot[0] = $targetorg->pms[0] + $sumother[0]; $sumtot[1] = $targetorg->pms[1] + $sumother[1]; $sumtot[2] = $targetorg->pms[2] + $sumother[2]; $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; } function getsumotherpms($otherorgs){ $sumother =[]; if (! $otherorgs) return $sumother; $sumother[0] = 0; $sumother[1] = 0; $sumother[2] = 0; $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){ $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; } function PdfFinancien(){ $input = json_decode($this->input->post('data')); $soort = $input->soort; switch ($soort){ case 0 : $titel = "Gesommeerde bestedingen onderliggende organisaties"; break; case 1 : $titel = "Details eigen organisatie"; break; case 2 : $titel = "Gesommeerde uitgaven personeel, materieel en scholing"; break; case 3 : $titel = "Details onderliggende organisaties" ; break; default: $titel = "Rapport"; } $data = ['inhoud' =>$input->html, 'jaar' => $input->jaar, 'org' => $input->org, 'titel' => $titel]; $html = $this->load->view("monpas/reports/financien", $data, true); $filenaam ="financien"; $this->Phantom_model->create_pdf($html, $filenaam, FALSE, TRUE, [50,50,100, 70], 'LANDSCAPE'); } }