Merge branch 'feature/budgetmonfin' into feature/labels

This commit is contained in:
2023-07-03 12:16:41 +02:00
15 changed files with 2482 additions and 639 deletions
@@ -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);
@@ -23,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;}
@@ -52,12 +51,11 @@ class Bestemmingen extends MY_Controller{
function getBestemmingen(){
if($this->Autorisaties_model->check_autorisatie($this->userrole, READER) <=0) {
$jaartoewijzing =array();
$bestedingen = array();
$jaarclosed = TRUE;
}
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){
@@ -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);
};
@@ -89,11 +87,25 @@ 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){
$this->Finbestemmingen_model->update_record(['bedrag'=>$this->input->post('bedrag')], $bestemmingID);
}
// 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(){
// TODO check autorisatie
$bestemmingID = $this->clean_input("id");
$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);
// }
}
function saveopmerking(){
// TODO check autorisatie
$orgid = $this->globorgid;
@@ -22,35 +22,56 @@ 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
$totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes);
$totbesteed = $this->sommeeralles($totsomperuitgavetype, 'BEDRAG');
$totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET');
$sommen = $this->get_som_per_regel($basis, $budgetten->basis, $sombasisperuitgavetype[0]);
$basis = $sommen['soorten'];
$sombudgetpct = $sommen['sombudgetpct'];
$sombedragpct = $sommen['sombedragpct'];
$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);
// todo
$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,',', '.');
$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 , ',' , '.');
@@ -58,34 +79,50 @@ 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 ,
}
$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 +140,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 +169,47 @@ 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');
$sommen = $this->get_som_per_regel($basis, $budgetten->basis, $sombasisperuitgavetype[0]);
$basis = $sommen['soorten'];
// $somgebudgetpct = $sommen['somgebudgetpct'];
$sombudgetpct = $sommen['sombudgetpct'];
$sombedragpct = $sommen['sombedragpct'];
// $sombedragbudgetpct = $sommen['sombedragbudgetpct'];
$sommenex = $this->get_som_per_regel($extra, $budgetten->extra, $somextraperuitgavetype[0] );
$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, ',', '.');
// 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 +217,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 +242,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 +257,86 @@ class Monfin2overzicht extends MY_Controller{
'budgetten' => $budgetten,
'opmerking' => $opmerking));
}
function sommeeralles($totsomperuitgavetype){
$totsom =0;
if ($totsomperuitgavetype){
foreach($totsomperuitgavetype as $som){
if ($som->code != "REGELSOM"){
$totsom += $som->som;
}
}
}
return $totsom;
}
function get_som_regel($soorten){
if ($soorten){
foreach($soorten as $soort){
if ($soort->subsoorten){
foreach ($soort->subsoorten as $subsoort){
$som = 0;
if ($subsoort->uitgavetypes){
foreach($subsoort->uitgavetypes as $uitgavetype){
if ($uitgavetype && $uitgavetype->bedrag){
$som += $uitgavetype->bedrag;
$uitgavetype->bedrag = number_format($uitgavetype->bedrag,0,',','.');
}
}
}
$subsoort->uitgavetypes[3]= new stdClass;
$subsoort->uitgavetypes[3]->bedrag =number_format($som,0, ',' , '.');
$subsoort->uitgavetypes[3]->code ='REGELSOM';
function sommeeralles($totsomperuitgavetype, $soort)
{
$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_per_regel($soorten, $budget, $uitgaven ){
$sombudgetpct = 0;
$sombedragpct = 0;
foreach($soorten ? : [] as $soort){
foreach ($soort->subsoorten ? : [] as $subsoort){
$budgetpct = 0;
$budgetpctformat = 0;
$bedragpct = 0;
$bedragpctformat = 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)) {
$bedragpct = ($totaal / $uitgaven->som) * 100;
$bedragpctformat = number_format($bedragpct, 1, ',', '.');
}
$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;
return [
'soorten' =>$soorten,
'sombudgetpct' => $sombudgetpct,
'sombedragpct' => $sombedragpct,
];
}
function sommeer_per_uitgavetype($sombasis,$somextra,$uitgavetypes){
$somtot = [];
$regelsom =0;
$regelsom2 = 0;
if ($uitgavetypes){
$index =0;
foreach($uitgavetypes as $uitgavetype){
@@ -228,65 +344,78 @@ 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] = 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;
}
if ($basis){
foreach($basis as $soort){
if ($soort->subsoorten){
foreach ($soort->subsoorten as $subsoort){
if ($subsoort->uitgavetypes){
foreach($subsoort->uitgavetypes as $uitgavetype) {
$sombasis[$uitgavetype->code]->som += $uitgavetype->bedrag;
} //foreach
}// if uitgavetypes
}//foreach subsoort
}//if subsoort
}//foreach basis
} // if basis
} // if uitgavetypes
$somasarray=[];
$index = 0;
$regelsom=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;
$index += 1;
};
$somasarray[$index] = new stdClass;
$somasarray[$index]->code ="REGELSOM";
$somasarray[$index]->naam = "Som";
$somasarray[$index]->som = $regelsom;
return $somasarray;
}
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 $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
}
} // 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);
if($index != 0) {
$regelsom += $somasarray[$index]->som;
$regelsom2 += $somasarray[$index ]->budgetsom;
}
$index += 1;
};
$somasarray[0]->som = $regelsom;
$somasarray[0]->budgetrestant = $somasarray[0]->budgetsom - $regelsom2;
return $somasarray;
}
function getbestuursbedragen(){
$targetorgid = $this->clean_input('orgid');
@@ -466,16 +595,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 +615,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 +766,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 +790,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;
}
@@ -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);