Merge branch 'feature/budgetmonfin' into develop
This commit is contained in:
@@ -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,17 +87,21 @@ 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]);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
@@ -38,33 +33,30 @@ 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");
|
||||
|
||||
$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,',', '.');
|
||||
@@ -179,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;
|
||||
@@ -268,70 +257,79 @@ 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;
|
||||
}
|
||||
|
||||
function get_som_regel($soorten, $budget ){
|
||||
$somgebudgetpct = 0;
|
||||
$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;
|
||||
$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;
|
||||
$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,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -364,58 +362,60 @@ 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;
|
||||
}
|
||||
|
||||
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;
|
||||
$sombasis[$uitgavetype->code]->budgetsom += $uitgavetype->budget;
|
||||
} //foreach
|
||||
}//foreach subsoort
|
||||
}//foreach basis
|
||||
} // if uitgavetypes
|
||||
$somasarray=[];
|
||||
$index = 0;
|
||||
$regelsom=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;
|
||||
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);
|
||||
$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;
|
||||
$index += 1;
|
||||
};
|
||||
$somasarray[$index] = new stdClass;
|
||||
$somasarray[$index]->code ="REGELSOM";
|
||||
$somasarray[$index]->naam = "Som";
|
||||
$somasarray[$index]->som = $regelsom;
|
||||
$somasarray[$index]->budgetsom = $regelsom2;
|
||||
|
||||
return $somasarray;
|
||||
}
|
||||
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');
|
||||
|
||||
Reference in New Issue
Block a user