Merge branch 'feature/budgetmonfin' into develop

This commit is contained in:
2023-03-24 15:01:12 +01:00
11 changed files with 1647 additions and 432 deletions
+1 -1
View File
@@ -227,7 +227,7 @@ $config['allow_get_array'] = TRUE;
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
$config['log_threshold'] = 1;
/*
|--------------------------------------------------------------------------
@@ -8,7 +8,6 @@ class Bestemmingen extends MY_Controller{
"monpas/Toewijzingen_model",
"monfin2/Finuitgavetypes_model",
"monfin2/Finbestemmingen_model",
"monfin2/Finsoorten_model",
"monfin2/Finsubsoorten_model");
$this->load->model($models);
@@ -52,7 +51,6 @@ class Bestemmingen extends MY_Controller{
function getBestemmingen(){
if($this->Autorisaties_model->check_autorisatie($this->userrole, READER) <=0) {
$jaartoewijzing =array();
$bestedingen = array();
$jaarclosed = TRUE;
}
else {
@@ -72,7 +70,7 @@ class Bestemmingen extends MY_Controller{
}
$basisbestemmingen = $this->Finbestemmingen_model->get_bestemmingen($orgid,$jaarnr,"BASIS");
$extrabestemmingen = $this->Finbestemmingen_model->get_bestemmingen($orgid,$jaarnr,"EXTRA");
$opmerking = $this->Bestedingopmerkingen_model->getopmerking($orgid, $jaarnr);
};
@@ -90,10 +88,19 @@ class Bestemmingen extends MY_Controller{
$targetjaar = $this->Toewijzingen_model->getNextJaar($this->globorgid);
$bestemmingjaar = $this->Finbestemmingen_model->get(['id'=>$bestemmingID], 'kalenderjaar', true);
if ($targetjaar == $bestemmingjaar){
$this->Finbestemmingen_model->update_record(['bedrag'=>$this->input->post('bedrag')], $bestemmingID);
$this->Finbestemmingen_model->update_record(['bedrag'=>$this->clean_input('bedrag')], $bestemmingID);
}
}
function updatebudget(){
// TODO check autorisatie
$bestemmingID = $this->clean_input("id");
$this->Finbestemmingen_model->update_record(['budget'=>$this->clean_input('budget')], $bestemmingID);
}
function saveopmerking(){
// TODO check autorisatie
$orgid = $this->globorgid;
@@ -22,35 +22,81 @@ class Monfin2overzicht extends MY_Controller{
$kalenderjaarnr = $this->clean_input("jaarnr");
$uitgavetypes = $this->Finuitgavetypes_model->get_uitgavetypes();
$budgetten = $this->Toewijzingen_model->gettoewijzingperjaar($orgid, $kalenderjaarnr);
$totbudget = 0;
$totbesteed = 0;
$basis = array();
$extra = array();
$sompersoort = array();
$schooltot = 0;
$opmerking = '';
if ($budgetten){
// $totbudget = $budgetten->basis + $budgetten->extra ;
$budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra)/100);
$budgetten->basis = ROUND($budgetten->basis / 100);
$budgetten->extra = Round($budgetten->extra/ 100);
if ($budgetten) {
$budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra) / 100);
$budgetten->basis = ROUND($budgetten->basis / 100);
$budgetten->extra = Round($budgetten->extra / 100);
}
else{
$budgetten = new stdClass();
$budgetten->totaal = 0;
$budgetten->basis = 0;
$budgetten->extra = 0;
}
$basis = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"BASIS");
$extra = $this->Finbestemmingen_model->get_bestemmingen($orgid, $kalenderjaarnr,"EXTRA");
$sombasisperuitgavetype = $this->get_som_per_uitgavetype($basis, $uitgavetypes);
$somextraperuitgavetype = $this->get_som_per_uitgavetype($extra, $uitgavetypes);
$totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes);
$totbesteed = $this->sommeeralles($totsomperuitgavetype);
$basis = $this->get_som_regel($basis);
$extra = $this->get_som_regel($extra);
// todo
$totbesteed = $this->sommeeralles($totsomperuitgavetype, 'BEDRAG');
$totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET');
$subbedragbasis = $sombasisperuitgavetype[3]->som;
$subbudgetbasis = $sombasisperuitgavetype[3]->budgetsom;
$sommen = $this->get_som_regel($basis, $subbedragbasis, $subbudgetbasis, $budgetten->basis);
$basis = $sommen['soorten'];
$somgebudgetpct = $sommen['somgebudgetpct'];
$sombudgetpct = $sommen['sombudgetpct'];
$sombedragpct = $sommen['sombedragpct'];
$sombedragbudgetpct = $sommen['sombedragbudgetpct'];
$subbedragextra = $somextraperuitgavetype[3]->som;
$subbudgetextra = $somextraperuitgavetype[3]->budgetsom;
$sommenex = $this->get_som_regel($extra, $subbedragextra, $subbudgetextra, $budgetten->extra);
$extra = $sommenex['soorten'];
$somgebudgetpctex = $sommenex['somgebudgetpct'];
$sombudgetpctex = $sommenex['sombudgetpct'];
$sombedragpctex = $sommenex['sombedragpct'];
$sombedragbudgetpctex = $sommenex['sombedragbudgetpct'];
// todo
// bereken budget - besteding verschil per basis/extra/overig
$budgetten->basisverschil = number_format($budgetten->basis - $sombasisperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->extraverschil = number_format($budgetten->extra - $somextraperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->totaalverschil = $budgetten->totaal - ($sombasisperuitgavetype[3]->som +$somextraperuitgavetype[3]->som);
// todo
$budgetten->basisverschil = number_format($budgetten->basis - $sombasisperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->extraverschil = number_format($budgetten->extra - $somextraperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->totaalverschil = $budgetten->totaal - ($sombasisperuitgavetype[3]->som +$somextraperuitgavetype[3]->som);
$budgetten->basisverschilgeb = number_format($sombasisperuitgavetype[3]->budgetsom - $sombasisperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->extraverschilgeb = number_format($somextraperuitgavetype[3]->budgetsom - $somextraperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->totaalverschilgeb = $totgebudgeteerd - ($sombasisperuitgavetype[3]->som +$somextraperuitgavetype[3]->som);
$budgetten->basisbudgetpct = number_format($sombudgetpct, 2,',', '.');
$budgetten->basisgebudgetpct = number_format($somgebudgetpct, 2,',', '.');
$budgetten->basisbedragpct = number_format($sombedragpct, 2,',', '.');
$budgetten->basisbedragbudgetkaal = $sombedragbudgetpct;
$budgetten->basisbedragbudgetpct = number_format($sombedragbudgetpct, 2,',', '.');
$budgetten->extrabudgetpct = number_format($sombudgetpctex, 2,',', '.');
$budgetten->extragebudgetpct = number_format($somgebudgetpctex, 2,',', '.');
$budgetten->extrabedragpct = number_format($sombedragpctex, 2,',', '.');
$budgetten->extrabedragbudgetkaal = $sombedragpctex;
$budgetten->extrabedragbudgetpct = number_format($sombedragbudgetpctex, 2,',', '.');
$bedrag = $budgetten->totaal > 0 ? ($totbesteed/$budgetten->totaal) *100: 0;
$budgetten->totbedragbudgetkaal = $bedrag;
$budgetten->totbedragbudgetpct = number_format($bedrag, 2, ',', '.');
$budgetten->totbedragpct = $totbesteed > 0 ? '100,00': 0;
$bedrag2 = $budgetten->totaal > 0 ?($totgebudgeteerd/$budgetten->totaal)*100 : 0;
$budgetten->totbudgetpct = number_format($bedrag2, 2, ',', '.');
$budgetten->totgebudgetpct= $totgebudgeteerd > 0 ? '100,00': 0;
// todo
// zorg dat alle getallen geformateerd zijn met een duizendtalscheidingsteken
$budgetten->totaal = number_format($budgetten->totaal, 0 , ',' , '.');
$budgetten->basis = number_format($budgetten->basis , 0 , ',' , '.');
@@ -58,34 +104,44 @@ class Monfin2overzicht extends MY_Controller{
foreach($sombasisperuitgavetype as $sompertype){
$sompertype->som = number_format($sompertype->som,0, ',' , '.' );
}
$sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' );
}
foreach($somextraperuitgavetype as $sompertype){
$sompertype->som = number_format($sompertype->som,0, ',' , '.' );
}
$sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' );
}
foreach($totsomperuitgavetype as $sompertype){
$sompertype->som = number_format($sompertype->som,0, ',' , '.' );
}
$sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' );
}
$schooltot = array( 'budget' => $budgetten->totaal ,
"bestemd" => number_format($totbesteed, 0, ',' , '.' ),
"gebudget" => number_format($totgebudgeteerd, 0, ',' , '.' ),
"verschil" => number_format($budgetten->totaalverschil, 0, ',' , '.' ));
$opmerking = $this->Bestedingopmerkingen_model->getopmerking($orgid, $kalenderjaarnr);
}; // if budgetten
// }; // if budgetten
if (! isset($sombasisperuitgavetype)) $sombasisperuitgavetype = 0;
if (! isset($somextraperuitgavetype)) $somextraperuitgavetype = 0;
if (! isset($totsomperuitgavetype)) $totsomperuitgavetype = 0;
if (! isset($schooltot)) $schooltot = 0;
echo json_encode(array('uitgavetypes' =>$uitgavetypes,
'basis' =>$basis,
'extra' =>$extra,
'sombasisperuitgavetype' =>$sombasisperuitgavetype,
'somextraperuitgavetype' =>$somextraperuitgavetype,
'totsomperuitgavetype' =>$totsomperuitgavetype,
'schooltotaal' => $schooltot,
'budgetten' => $budgetten,
'opmerking' => $opmerking));
'basis' =>$basis,
'extra' =>$extra,
'sombasisperuitgavetype' =>$sombasisperuitgavetype,
'somextraperuitgavetype' =>$somextraperuitgavetype,
'totsomperuitgavetype' =>$totsomperuitgavetype,
'schooltotaal' => $schooltot,
'budgetten' => $budgetten,
'opmerking' => $opmerking));
}
function getschoolbedragenNieuw(){
@@ -103,24 +159,24 @@ class Monfin2overzicht extends MY_Controller{
} else {
$budgetten = $this->Toewijzingen_model->gettoewijzingperjaar($orgid, $kalenderjaarnr);
}
$totbudget = 0;
$totbesteed = 0;
$basis = array();
$extra = array();
$sompersoort = array();
$schooltot = 0;
$opmerking = '';
if ($budgetten){
if ($soortoverzicht == 3){
$budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra));
$budgetten->basis = ROUND($budgetten->basis );
$budgetten->extra = ROUND($budgetten->extra);
} else {
$budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra)/100);
$budgetten->basis = ROUND($budgetten->basis / 100);
$budgetten->extra = ROUND($budgetten->extra/ 100);
}
if ($budgetten) {
if ($soortoverzicht == 3) {
$budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra));
$budgetten->basis = ROUND($budgetten->basis);
$budgetten->extra = ROUND($budgetten->extra);
} else {
$budgetten->totaal = ROUND(($budgetten->basis + $budgetten->extra) / 100);
$budgetten->basis = ROUND($budgetten->basis / 100);
$budgetten->extra = ROUND($budgetten->extra / 100);
}
if ($soortoverzicht == 3){
$basis = $this->Finbestemmingen_model->get_bestemmingen_over_orgs($orgid, $suborgslist, $kalenderjaarnr,"BASIS");
$extra = $this->Finbestemmingen_model->get_bestemmingen_over_orgs($orgid, $suborgslist, $kalenderjaarnr,"EXTRA");
@@ -132,15 +188,50 @@ class Monfin2overzicht extends MY_Controller{
$sombasisperuitgavetype = $this->get_som_per_uitgavetype($basis, $uitgavetypes);
$somextraperuitgavetype = $this->get_som_per_uitgavetype($extra, $uitgavetypes);
$totsomperuitgavetype = $this->sommeer_per_uitgavetype($sombasisperuitgavetype,$somextraperuitgavetype, $uitgavetypes);
$totbesteed = $this->sommeeralles($totsomperuitgavetype);
$basis = $this->get_som_regel($basis);
$extra = $this->get_som_regel($extra);
$totbesteed = $this->sommeeralles($totsomperuitgavetype, 'BEDRAG');
$totgebudgeteerd = $this->sommeeralles($totsomperuitgavetype, 'BUDGET');
$subbedragbasis = $sombasisperuitgavetype[3]->som;
$subbudgetbasis = $sombasisperuitgavetype[3]->budgetsom;
$sommen = $this->get_som_regel($basis, $subbedragbasis, $subbudgetbasis, $budgetten->basis);
$basis = $sommen['soorten'];
$somgebudgetpct = $sommen['somgebudgetpct'];
$sombudgetpct = $sommen['sombudgetpct'];
$sombedragpct = $sommen['sombedragpct'];
$sombedragbudgetpct = $sommen['sombedragbudgetpct'];
$subbedragextra = $somextraperuitgavetype[3]->som;
$subbudgetextra = $somextraperuitgavetype[3]->budgetsom;
$sommenex = $this->get_som_regel($extra,$subbedragextra, $subbudgetextra, $budgetten->extra );
$extra = $sommenex['soorten'];
$somgebudgetpctex = $sommenex['somgebudgetpct'];
$sombudgetpctex = $sommenex['sombudgetpct'];
$sombedragpctex = $sommenex['sombedragpct'];
$sombedragbudgetpctex = $sommen['sombedragbudgetpct'];
// todo
// bereken budget - besteding verschil per basis/extra/overig
$budgetten->basisverschil = number_format($budgetten->basis - $sombasisperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->extraverschil = number_format($budgetten->extra - $somextraperuitgavetype[3]->som, 0, ',' , '.' );
$budgetten->totaalverschil = $budgetten->totaal - ($sombasisperuitgavetype[3]->som +$somextraperuitgavetype[3]->som);
// todo
$budgetten->basisbudgetpct = number_format($sombudgetpct, 2,',', '.');
$budgetten->basisgebudgetpct = number_format($somgebudgetpct, 2,',', '.');
$budgetten->basisbedragpct = number_format($sombedragpct, 2,',', '.');
$budgetten->basisbedragbudgetpct = number_format($sombedragbudgetpct, 2,',', '.');
$budgetten->extrabudgetpct = number_format($sombudgetpctex, 2,',', '.');
$budgetten->extragebudgetpct = number_format($somgebudgetpctex, 2,',', '.');
$budgetten->extrabedragpct = number_format($sombedragpctex, 2,',', '.');
$budgetten->extrabedragbudgetpct = number_format($sombedragbudgetpctex, 2,',', '.');
$bedrag = $budgetten->totaal > 0 ? ($totbesteed/$budgetten->totaal) *100: 0;
$budgetten->totbedragbudgetkaal = $bedrag;
$budgetten->totbedragbudgetpct = number_format($bedrag, 2, ',', '.');
$budgetten->totbedragpct = $totbesteed > 0 ? '100,00': 0;
$bedrag2 = $budgetten->totaal > 0 ?($totgebudgeteerd/$budgetten->totaal)*100 : 0;
$budgetten->totbudgetpct = number_format($bedrag2, 2, ',', '.');
$budgetten->totgebudgetpct= $totgebudgeteerd > 0 ? '100,00': 0;
// todo
// zorg dat alle getallen geformateerd zijn met een duizendtalscheidingsteken
$budgetten->totaal = number_format($budgetten->totaal, 0 , ',' , '.');
$budgetten->basis = number_format($budgetten->basis , 0 , ',' , '.');
@@ -148,16 +239,23 @@ class Monfin2overzicht extends MY_Controller{
foreach($sombasisperuitgavetype as $sompertype){
$sompertype->som = number_format($sompertype->som,0, ',' , '.' );
}
$sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' );
}
foreach($somextraperuitgavetype as $sompertype){
$sompertype->som = number_format($sompertype->som,0, ',' , '.' );
}
$sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' );
}
foreach($totsomperuitgavetype as $sompertype){
$sompertype->som = number_format($sompertype->som,0, ',' , '.' );
}
$sompertype->budgetsom = number_format($sompertype->budgetsom,0, ',' , '.' );
}
$schooltot = array( 'budget' => $budgetten->totaal ,
"bestemd" => number_format($totbesteed, 0, ',' , '.' ),
"gebudget" => number_format($totgebudgeteerd, 0, ',' , '.' ),
"verschil" => number_format($budgetten->totaalverschil, 0, ',' , '.' ));
if ($soortoverzicht == 3){
@@ -166,9 +264,9 @@ class Monfin2overzicht extends MY_Controller{
$opmerking = $this->Bestedingopmerkingen_model->getopmerking($orgid, $kalenderjaarnr);
}
}; // if budgetten
if (! isset($sombasisperuitgavetype)) $sombasisperuitgavetype = 0;
if (! isset($somextraperuitgavetype)) $somextraperuitgavetype = 0;
if (! isset($totsomperuitgavetype)) $totsomperuitgavetype = 0;
if (! isset($sombasisperuitgavetype)) $sombasisperuitgavetype = false;
if (! isset($somextraperuitgavetype)) $somextraperuitgavetype = false;
if (! isset($totsomperuitgavetype)) $totsomperuitgavetype = false;
if (! isset($schooltot)) $schooltot = 0;
echo json_encode(array('uitgavetypes' =>$uitgavetypes,
@@ -181,46 +279,87 @@ class Monfin2overzicht extends MY_Controller{
'budgetten' => $budgetten,
'opmerking' => $opmerking));
}
function sommeeralles($totsomperuitgavetype){
function sommeeralles($totsomperuitgavetype, $soort){
$totsom =0;
if ($totsomperuitgavetype){
foreach($totsomperuitgavetype as $som){
$waarde = $som->som;
if($soort == 'BUDGET') $waarde = $som->budgetsom;
if ($som->code != "REGELSOM"){
$totsom += $som->som;
$totsom += $waarde;
}
}
}
return $totsom;
}
function get_som_regel($soorten){
if ($soorten){
foreach($soorten as $soort){
if ($soort->subsoorten){
foreach ($soort->subsoorten as $subsoort){
function get_som_regel($soorten, $bedrag, $gebudget, $budget ){
$somgebudgetpct = 0;
$sombudgetpct = 0;
$sombedragpct = 0;
$sombedragbudgetpct = 0;
foreach($soorten ? : [] as $soort){
foreach ($soort->subsoorten ? : [] as $subsoort){
$som = 0;
if ($subsoort->uitgavetypes){
foreach($subsoort->uitgavetypes as $uitgavetype){
if ($uitgavetype && $uitgavetype->bedrag){
$budgetsom = 0;
foreach($subsoort->uitgavetypes ? : [] as $uitgavetype){
if ($uitgavetype->bedrag){
$som += $uitgavetype->bedrag;
$uitgavetype->bedrag = number_format($uitgavetype->bedrag,0,',','.');
}
}
if ($uitgavetype->budget){
$budgetsom += $uitgavetype->budget;
$uitgavetype->budget = number_format($uitgavetype->budget,0,',','.');
}
}
}
$subsoort->uitgavetypes[3]= new stdClass;
$subsoort->uitgavetypes[3]->bedrag =number_format($som,0, ',' , '.');
$subsoort->uitgavetypes[3]->code ='REGELSOM';
$subsoort->uitgavetypes[3]= new stdClass;
$bedragpct = 0;
$bedragbudgetpct = 0;
$gebudgetpct = 0;
$budgetpct = 0;
$subsoort->uitgavetypes[3]->bedrag =number_format($som,0, ',' , '.');
$subsoort->uitgavetypes[3]->budget =number_format($budgetsom,0, ',' , '.');
if($budget > 0) $bedragbudgetpct = ($som/$budget)*100;
$subsoort->uitgavetypes[3]->bedragbudgetpct= number_format($bedragbudgetpct,2, ',' , '.');
if($subsoort->uitgavetypes[3]->bedrag> 0 && $bedrag > 0) $bedragpct = ($som/$bedrag) * 100;
$subsoort->uitgavetypes[3]->bedragpct= number_format($bedragpct,2, ',' , '.');
if($subsoort->uitgavetypes[3]->budget> 0 &&$gebudget > 0) $gebudgetpct = ($budgetsom/$gebudget) * 100;
$subsoort->uitgavetypes[3]->gebudgetpct =number_format($gebudgetpct,2, ',' , '.');
if($subsoort->uitgavetypes[3]->budget> 0 && $budget > 0) $budgetpct =($budgetsom/$budget) * 100;
$subsoort->uitgavetypes[3]->budgetpct =number_format($budgetpct,2, ',' , '.');
$subsoort->uitgavetypes[3]->verschil = number_format(($budgetsom - $som), 0,',', '.');
$subsoort->uitgavetypes[3]->code ='REGELSOM';
$sombudgetpct =$sombudgetpct + $budgetpct;
$somgebudgetpct = $somgebudgetpct +$gebudgetpct;
$sombedragpct = $sombedragpct +$bedragpct;
$sombedragbudgetpct = $sombedragbudgetpct + $bedragbudgetpct;
}
}
}
}
return $soorten;
return [
'soorten' =>$soorten,
'sombudgetpct' => $sombudgetpct,
'somgebudgetpct' => $somgebudgetpct,
'sombedragpct' => $sombedragpct,
'sombedragbudgetpct' => $sombedragbudgetpct,
];
}
function sommeer_per_uitgavetype($sombasis,$somextra,$uitgavetypes){
$somtot = [];
$regelsom =0;
$regelsom2 = 0;
if ($uitgavetypes){
$index =0;
foreach($uitgavetypes as $uitgavetype){
@@ -228,20 +367,29 @@ class Monfin2overzicht extends MY_Controller{
$somtot[$index]->code = $uitgavetype->code;
$somtot[$index]->naam = $uitgavetype->naam;
$somtot[$index]->som =0;
$somtot[$index]->budgetsom =0;
foreach($sombasis as $basis){
if ($basis->code == $somtot[$index]->code) $somtot[$index]->som += $basis->som;
if ($basis->code == $somtot[$index]->code) {
$somtot[$index]->som += $basis->som;
$somtot[$index]->budgetsom += $basis->budgetsom;
}
}
foreach($somextra as $basis){
if ($basis->code == $somtot[$index]->code) $somtot[$index]->som += $basis->som;
if ($basis->code == $somtot[$index]->code) {
$somtot[$index]->som += $basis->som;
$somtot[$index]->budgetsom += $basis->budgetsom;
}
}
$regelsom += $somtot[$index]->som;
$regelsom2 += $somtot[$index]->budgetsom;
$index += 1;
}
$somtot[$index] = new stdClass;
$somtot[$index]->code = "REGELSOM";
$somtot[$index]->naam = "Som";
$somtot[$index]->som = $regelsom;
$somtot[$index]->budgetsom = $regelsom2;
}
return $somtot;
@@ -254,36 +402,38 @@ class Monfin2overzicht extends MY_Controller{
$sombasis[$uitgavetype->code]= new stdClass;
$sombasis[$uitgavetype->code]->naam= $uitgavetype->naam;
$sombasis[$uitgavetype->code]->som=0;
$sombasis[$uitgavetype->code]->budgetsom =0;
}
if ($basis){
foreach($basis as $soort){
if ($soort->subsoorten){
foreach ($soort->subsoorten as $subsoort){
if ($subsoort->uitgavetypes){
foreach($subsoort->uitgavetypes as $uitgavetype) {
foreach($basis ? $basis : [] as $soort){
foreach ($soort->subsoorten ? $soort->subsoorten : [] as $subsoort){
foreach($subsoort->uitgavetypes ? $subsoort->uitgavetypes :[] as $uitgavetype) {
$sombasis[$uitgavetype->code]->som += $uitgavetype->bedrag;
$sombasis[$uitgavetype->code]->budgetsom += $uitgavetype->budget;
} //foreach
}// if uitgavetypes
}//foreach subsoort
}//if subsoort
}//foreach basis
} // if basis
} // if uitgavetypes
$somasarray=[];
$index = 0;
$regelsom=0;
$regelsom2 = 0;
foreach($uitgavetypes as $uitgavetype){
$somasarray[$index ] = new stdClass;
$somasarray[$index]->code = $uitgavetype->code;
$somasarray[$index]->naam = $sombasis[$uitgavetype->code]->naam;
$somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0);
$regelsom += $somasarray[$index ]->som;
$somasarray[$index ]->som = round($sombasis[$uitgavetype->code]->som,0);
$somasarray[$index ]->budgetsom = round($sombasis[$uitgavetype->code]->budgetsom,0);
$regelsom += $somasarray[$index ]->som;
$regelsom2 += $somasarray[$index ]->budgetsom;
$index += 1;
};
$somasarray[$index] = new stdClass;
$somasarray[$index]->code ="REGELSOM";
$somasarray[$index]->naam = "Som";
$somasarray[$index]->som = $regelsom;
$somasarray[$index]->budgetsom = $regelsom2;
return $somasarray;
}
@@ -466,16 +616,18 @@ class Monfin2overzicht extends MY_Controller{
$targetorgid = $this->clean_input('orgid');
$kalenderjaarnr = $this->clean_input("jaarnr");
$targetorg = $this->Organisaties_model->get_record_by_id($targetorgid);
list($targetorg->pms,$otherorgs) = $this->get_bestuur_pms($targetorgid, $kalenderjaarnr);
$sumother = $this->getsumotherpms($otherorgs);
$sumtot = $this->getsumtotpms($targetorg, $sumother);
list($targetorg->pms, $targetorg->bud, $targetorg->kleur, $otherorgs) = $this->get_bestuur_pms($targetorgid, $kalenderjaarnr);
$sumother = $this->getsumotherpms($otherorgs);
$sumtot = $this->getsumtotpms($targetorg, $sumother);
$targetorg->pms = $this->format_all_bedragen($targetorg->pms);
$sumother = $this->format_all_bedragen($sumother);
$sumtot = $this->format_all_bedragen($sumtot);
$targetorg->pms = $this->format_all_bedragen($targetorg->pms, 5);
$targetorg->bud = $this->format_all_bedragen($targetorg->bud, 5);
$sumother = $this->format_all_bedragen($sumother, 11);
$sumtot = $this->format_all_bedragen($sumtot, 11);
if ($otherorgs){
foreach($otherorgs as $otherorg){
$otherorg->pms = $this->format_all_bedragen($otherorg->pms);
$otherorg->pms = $this->format_all_bedragen($otherorg->pms, 5);
$otherorg->bud = $this->format_all_bedragen($otherorg->bud, 5);
}
}
@@ -484,63 +636,147 @@ class Monfin2overzicht extends MY_Controller{
'sumother' => $sumother,
'sumtot' => $sumtot]);
}
function format_all_bedragen($pms){
for ($i = 0 ; $i <=5; $i++){
function format_all_bedragen($pms, $lengte){
for ($i = 0 ; $i <=$lengte; $i++){
if ($pms[$i] >0 ) $pms[$i]=number_format($pms[$i], 0, ',' , '.');
else $pms[$i]='';
}
return $pms;
}
private function get_bestuur_pms($targetorgid, $kalenderjaarnr){
$pms = $this->Finbestemmingen_model->get_pms($targetorgid, $kalenderjaarnr);
$targetorg->pms[0] = 0;
$targetorg->pms[1] = 0;
$targetorg->pms[2] = 0;
$targetorg->pms[3] = 0;
$targetorg->pms[4] = 0;
$targetorg->pms[5] = 0;
if ($pms){
foreach($pms as $uitgave){
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="PERSONEEL") $targetorg->pms[0] += $uitgave->bedrag;
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="MATERIEEL") $targetorg->pms[1] += $uitgave->bedrag;
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="SCHOLING") $targetorg->pms[2] += $uitgave->bedrag;
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="PERSONEEL") $targetorg->pms[3] += $uitgave->bedrag;
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="MATERIEEL") $targetorg->pms[4] += $uitgave->bedrag;
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="SCHOLING") $targetorg->pms[5] += $uitgave->bedrag;
}
}
private function get_bestuur_pms($targetorgid, $kalenderjaarnr)
{
$pms = $this->Finbestemmingen_model->get_pms($targetorgid, $kalenderjaarnr);
$targetorg = new stdClass();
$targetorg->pms[0] = 0;
$targetorg->pms[1] = 0;
$targetorg->pms[2] = 0;
$targetorg->pms[3] = 0;
$targetorg->pms[4] = 0;
$targetorg->pms[5] = 0;
$targetorg->bud[0] = 0;
$targetorg->bud[1] = 0;
$targetorg->bud[2] = 0;
$targetorg->bud[3] = 0;
$targetorg->bud[4] = 0;
$targetorg->bud[5] = 0;
$targetorg->kleur[0] = 'black';
$targetorg->kleur[1] = 'black';
$targetorg->kleur[2] = 'black';;
$targetorg->kleur[3] = 'black';
$targetorg->kleur[4] = 'black';
$targetorg->kleur[5] = 'black';
if ($pms) {
foreach ($pms as $uitgave) {
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "PERSONEEL") {
$targetorg->pms[0] += $uitgave->bedrag;
$targetorg->bud[0] += $uitgave->budget;
$targetorg->pms[0] > $targetorg->bud[0] ? $targetorg->kleur[0] = 'red' : 'black';
}
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "MATERIEEL") {
$targetorg->pms[1] += $uitgave->bedrag;
$targetorg->bud[1] += $uitgave->budget;
$targetorg->pms[1] > $targetorg->bud[1] ? $targetorg->kleur[1] = 'red' : 'black';
}
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "SCHOLING") {
$targetorg->pms[2] += $uitgave->bedrag;
$targetorg->bud[2] += $uitgave->budget;
$targetorg->pms[2] > $targetorg->bud[2] ? $targetorg->kleur[2] = 'red' : 'black';
}
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "PERSONEEL") {
$targetorg->pms[3] += $uitgave->bedrag;
$targetorg->bud[3] += $uitgave->budget;
$targetorg->pms[3] > $targetorg->bud[3] ? $targetorg->kleur[3] = 'red' : 'black';
}
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "MATERIEEL") {
$targetorg->pms[4] += $uitgave->bedrag;
$targetorg->bud[4] += $uitgave->budget;
$targetorg->pms[4] > $targetorg->bud[4] ? $targetorg->kleur[4] = 'red' : 'black';
}
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "SCHOLING") {
$targetorg->pms[5] += $uitgave->bedrag;
$targetorg->bud[5] += $uitgave->budget;
$targetorg->pms[5] > $targetorg->bud[5] ? $targetorg->kleur[5] = 'red' : 'black';
}
}
}
$organisaties = $this->Organisaties_model->getorgs2($targetorgid);
$organisaties = $this->Organisaties_model->getorgs2($targetorgid);
if ($organisaties) {
foreach ($organisaties as $organisatie) {
$org_plus_subs = $this->getorgids($organisatie->orgid);
if (!$org_plus_subs) {
$org_plus_subs = $organisatie->orgid;
};
$pms = $this->Finbestemmingen_model->get_pms($org_plus_subs, $kalenderjaarnr);
$organisatie->pms[0] = 0;
$organisatie->pms[1] = 0;
$organisatie->pms[2] = 0;
$organisatie->pms[3] = 0;
$organisatie->pms[4] = 0;
$organisatie->pms[5] = 0;
$organisatie->bud[0] = 0;
$organisatie->bud[1] = 0;
$organisatie->bud[2] = 0;
$organisatie->bud[3] = 0;
$organisatie->bud[4] = 0;
$organisatie->bud[5] = 0;
$organisatie->kleur[0] = 'black';
$organisatie->kleur[1] = 'black';
$organisatie->kleur[2] = 'black';
$organisatie->kleur[3] = 'black';
$organisatie->kleur[4] = 'black';
$organisatie->kleur[5] = 'black';
if ($pms) {
foreach ($pms as $uitgave) {
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "PERSONEEL") {
$organisatie->pms[0] += $uitgave->bedrag;
$organisatie->bud[0] += $uitgave->budget;
}
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "MATERIEEL") {
$organisatie->pms[1] += $uitgave->bedrag;
$organisatie->bud[1] += $uitgave->budget;
}
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype == "SCHOLING") {
$organisatie->pms[2] += $uitgave->bedrag;
$organisatie->bud[2] += $uitgave->budget;
}
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "PERSONEEL") {
$organisatie->pms[3] += $uitgave->bedrag;
$organisatie->bud[3] += $uitgave->budget;
}
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "MATERIEEL") {
$organisatie->pms[4] += $uitgave->bedrag;
$organisatie->bud[4] += $uitgave->budget;
}
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype == "SCHOLING") {
$organisatie->pms[5] += $uitgave->bedrag;
$organisatie->bud[5] += $uitgave->budget;
}
}
if ($organisaties){
foreach($organisaties as $organisatie){
$org_plus_subs = $this->getorgids($organisatie->orgid);
if (! $org_plus_subs) {$org_plus_subs = $organisatie->orgid;};
$pms = $this->Finbestemmingen_model->get_pms($org_plus_subs, $kalenderjaarnr);
$organisatie->pms[0] = 0;
$organisatie->pms[1] = 0;
$organisatie->pms[2] = 0;
$organisatie->pms[3] = 0;
$organisatie->pms[4] = 0;
$organisatie->pms[5] = 0;
if ($pms){
foreach($pms as $uitgave){
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="PERSONEEL") $organisatie->pms[0] += $uitgave->bedrag;
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="MATERIEEL") $organisatie->pms[1] += $uitgave->bedrag;
if ($uitgave->categorie == "BASIS" && $uitgave->uitgavetype=="SCHOLING") $organisatie->pms[2] += $uitgave->bedrag;
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="PERSONEEL") $organisatie->pms[3] += $uitgave->bedrag;
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="MATERIEEL") $organisatie->pms[4] += $uitgave->bedrag;
if ($uitgave->categorie == "EXTRA" && $uitgave->uitgavetype=="SCHOLING") $organisatie->pms[5] += $uitgave->bedrag;
}
}
}
}; // if organisaties
return [$targetorg->pms , $organisaties];
}
}
if ($organisatie->pms[0] > $organisatie->bud[0]) $organisatie->kleur[0] = 'red';
if ($organisatie->pms[1] > $organisatie->bud[1]) $organisatie->kleur[1] = 'red';
if ($organisatie->pms[2] > $organisatie->bud[2]) $organisatie->kleur[2] = 'red';
if ($organisatie->pms[3] > $organisatie->bud[3]) $organisatie->kleur[3] = 'red';
if ($organisatie->pms[4] > $organisatie->bud[4]) $organisatie->kleur[4] = 'red';
if ($organisatie->pms[5] > $organisatie->bud[4]) $organisatie->kleur[5] = 'red';
}; // if organisaties
return [$targetorg->pms, $targetorg->bud, $targetorg->kleur, $organisaties];
}
}
function getsumtotpms($targetorg, $sumother){
$sumtot = [];
@@ -551,6 +787,18 @@ class Monfin2overzicht extends MY_Controller{
$sumtot[3] = $targetorg->pms[3] + $sumother[3];
$sumtot[4] = $targetorg->pms[4] + $sumother[4];
$sumtot[5] = $targetorg->pms[5] + $sumother[5];
$sumtot[6] = $targetorg->bud[0] + $sumother[6];
$sumtot[7] = $targetorg->bud[1] + $sumother[7];
$sumtot[8] = $targetorg->bud[2] + $sumother[8];
$sumtot[9] = $targetorg->bud[3] + $sumother[9];
$sumtot[10] = $targetorg->bud[4] + $sumother[10];
$sumtot[11] = $targetorg->bud[5] + $sumother[11];
$sumtot[12] = $sumtot[0] > $sumtot[6] ? 'red' : 'black';
$sumtot[13] = $sumtot[1] > $sumtot[7] ? 'red' : 'black';
$sumtot[14] = $sumtot[2] > $sumtot[8] ? 'red' : 'black';
$sumtot[15] = $sumtot[3] > $sumtot[9] ? 'red' : 'black';
$sumtot[16] = $sumtot[4] > $sumtot[10] ? 'red' : 'black';
$sumtot[17] = $sumtot[5] > $sumtot[11] ? 'red' : 'black';
return $sumtot;
}
@@ -563,16 +811,46 @@ class Monfin2overzicht extends MY_Controller{
$sumother[3] = 0;
$sumother[4] = 0;
$sumother[5] = 0;
$sumother[6] = 0;
$sumother[7] = 0;
$sumother[8] = 0;
$sumother[9] = 0;
$sumother[10] = 0;
$sumother[11] = 0;
$sumother[12] = 'black';
$sumother[13] = 'black';
$sumother[14] = 'black';
$sumother[15] = 'black';
$sumother[16] = 'black';
$sumother[17] = 'black';
foreach($otherorgs as $org){
if ($org->pms){
$sumother[0] += $org->pms[0];
$sumother[1] += $org->pms[1];
$sumother[2] += $org->pms[2];
$sumother[3] += $org->pms[3];
$sumother[4] += $org->pms[4];
$sumother[5] += $org->pms[5];
}
$sumother[6] += $org->bud[0];
$sumother[7] += $org->bud[1];
$sumother[8] += $org->bud[2];
$sumother[9] += $org->bud[3];
$sumother[10] += $org->bud[4];
$sumother[11] += $org->bud[5];
}
foreach($otherorgs as $org){
if ($org->pms){
if( $sumother[0] > $sumother[6]) $sumother[12] = 'red';
if( $sumother[1] > $sumother[7]) $sumother[13] = 'red';
if( $sumother[2] > $sumother[8]) $sumother[14] = 'red';
if( $sumother[3] > $sumother[9]) $sumother[15] = 'red';
if( $sumother[4] > $sumother[10]) $sumother[16] = 'red';
if( $sumother[5] > $sumother[11]) $sumother[17] = 'red';
}
}
return $sumother;
}
+2 -1
View File
@@ -80,7 +80,8 @@ class MY_Controller extends CI_Controller{
// public $version = '1.18.08';// kleurenfout
// public $version = '1.19.00';// ambities per org
// public $version = '1.19.01';// compactdiv met orgid ipv globorg
public $version = '1.19.05';// ambities per org incl kamerversies
// public $version = '1.19.05';// ambities per org incl kamerversies
public $version = '1.19.06';// monfin met budgetten
public $partituurid;
public $globProfielVersieID = 1;
public $userid; //id of the user that is logged in
@@ -10,7 +10,9 @@ class Finbestemmingen_model extends MY_Model{
function __construct(){
parent::__construct();
$models = array('shared/Organisaties_model',
"monfin2/Finuitgavetypes_model");
"monfin2/Finuitgavetypes_model"
);
$this->load->model($models);
}
@@ -61,7 +63,7 @@ class Finbestemmingen_model extends MY_Model{
if ($uitgavetypes){
foreach($uitgavetypes as $uitgavetype){
$subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr,$subsoort->subsoortID,$uitgavetype->code);
}
}
}
}
}// if subsoorten
@@ -87,7 +89,8 @@ class Finbestemmingen_model extends MY_Model{
// haal per uitgavetypes de bedragen op
if ($uitgavetypes){
foreach($uitgavetypes as $uitgavetype){
$subsoort->uitgavetypes[] = $this->get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoort->subsoortID,$uitgavetype->code);
$result = $this->get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoort->subsoortID,$uitgavetype->code);
$subsoort->uitgavetypes[] = $result;
}
}
}
@@ -121,7 +124,7 @@ class Finbestemmingen_model extends MY_Model{
// }// if subsoorten
// }
// }// if soorten
// return $soorten;
// return $soorten;
// }
function setSomSubsoort($orgid, $jaarnr, $categorie){
@@ -164,6 +167,7 @@ class Finbestemmingen_model extends MY_Model{
function get_bedrag_per_type($orgid, $jaarnr,$subsoortID, $uitgavetype){
$this->sql = "SELECT id,
FORMAT(bedrag / 100,2) as bedrag,
FORMAT(budget / 100,2) as budget,
uitgavetype as code
FROM finbestemmingen
WHERE organisatie_id = {$orgid}
@@ -176,27 +180,39 @@ class Finbestemmingen_model extends MY_Model{
"kalenderjaar" =>$jaarnr,
"subsoort_id" =>$subsoortID,
"uitgavetype" =>$uitgavetype,
"bedrag" =>0];
"bedrag" =>0,
"budget" =>0];
$this->insert_record($data);
$row = $this->get_query_row();
}
if ($row) $row->bedrag = str_replace(',' , '' , $row->bedrag);
if ($row) {
$row->bedrag = str_replace(',' , '' , $row->bedrag);
$row->budget = str_replace(',' , '' , $row->budget);
}
return $row;
}
function get_bedrag_per_type_over_orgs($orglist, $jaarnr,$subsoortID, $uitgavetype){
$this->sql = "SELECT id,
FORMAT(sum(bedrag) / 100,2) as bedrag,
FORMAT(budget / 100,2) as budget,
uitgavetype as code
FROM finbestemmingen
WHERE organisatie_id in ({$orglist})
AND kalenderjaar = {$jaarnr }
AND subsoort_id = {$subsoortID}
AND uitgavetype = '{$uitgavetype}' ";
$row= $this->get_query_row();
$row= $this->get_query_row();
if ($row) $row->bedrag = str_replace(',' , '' , $row->bedrag);
if ($row) $row->budget = str_replace(',' , '' , $row->budget);
return $row;
}
@@ -245,7 +261,8 @@ class Finbestemmingen_model extends MY_Model{
return $this->get_query_row('bedrag');
}
function get_pms($orgids, $kalenderjaarnr){
$this->sql = " SELECT round(sum(bedrag/100) ) AS bedrag,
$this->sql = " SELECT round(sum(FB.bedrag/100) ) AS bedrag,
round(sum(FB.budget/100)) AS budget,
uitgavetype,
FS.categorie,
FB.organisatie_id
@@ -0,0 +1,48 @@
<div class="modal fade" id="modFindetails" role="dialog" >
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header" style="background-color: #968026; color:#FFFFFF ">
<h4>Uitsplitsing budget </h4>
</div>
<div class="modal-body">
<div data-bind="with: selectedSubsoort() ? selectedSubsoort() : '' ">
<p style="font-weight: bold" data-bind="text: naam "></p>
<br>
<table style="border 1px solid #ebebeb;"
data-bind=" foreach: uitgavetypes">
<tr>
<td style="text-transform: lowercase; border: 1px solid #ebebeb "
data-bind=" text: code== 'REGELSOM' ? 'som' : code,
style: {borderTop: code == 'REGELSOM' ? '3px solid #ebebeb' : '1px solid #ebebeb' }"
>
</td>
<!-- ko if: $parent.naam != 'Totaal gebudgetteerd' && $parent.naam != 'Basisondersteuning gebudgetteerd' && $parent.naam != 'Extra ondersteuning gebudgetteerd' -->
<td style="border: 1px solid #ebebeb;text-align: right "
data-bind=" text: budget,
style: {borderTop: code == 'REGELSOM' ? '3px solid #ebebeb' : '1px solid #ebebeb' } ">
</td>
<!-- /ko -->
<!-- ko if: $parent.naam == 'Totaal gebudgetteerd' || $parent.naam == 'Basisondersteuning gebudgetteerd' || $parent.naam == 'Extra ondersteuning gebudgetteerd' -->
<td style="border: 1px solid #ebebeb; text-align: right"
data-bind=" text: budgetsom,
style: {borderTop: code == 'REGELSOM' ? '3px solid #ebebeb' : '1px solid #ebebeb' } ">
</td>
<!-- /ko -->
</tr>
</table>
</div>
</div>
<div class="modal-footer">
<button style="width: 80px;"
data-dismiss="modal">sluit
</button>
</div>
</div>
</div>
</div>
@@ -24,95 +24,278 @@
</h4>
<div data-bind="visible: basisgeopend()">
<table class="lstable" style="width : 100%; font-size:0.9em">
<colgroup>
<col style="width:40%">
<col span='3' style="width: 18%">
</colgroup>
<thead>
<tr>
<th style="width:25%"></th>
<th style="width:5%"></th>
<th style="width: 14%"></th>
<th style="width: 14%"></th>
<th style="width: 14%"></th>
<th style="width:14%"></th>
<th style="width:14%"></th>
</tr>
</thead>
<tbody data-bind="foreach: basissoorten">
<tr class="blokheader" style="text-align:left; padding-left:5px">
<td style="width: 40%" data-bind="text:naam"></td>
<!-- ko foreach: $root.uitgavetypes -->
<td style="text-align:right" data-bind="text:code"> </td>
<!-- /ko -->
<tr class="blokheader" style="; text-align:left; padding-left:5px; ">
<td data-bind="text:naam">
</td>
<td></td>
<!-- ko if: $index() ==0-->
<!-- ko foreach: $root.uitgavetypes -->
<td style="text-align:right">
<span data-bind="text: code"></span>
</td>
<!-- /ko -->
<!-- /ko -->
<!-- ko if: $index() != 0-->
<!-- ko foreach: $root.uitgavetypes -->
<td >
</td>
<!-- /ko -->
<!-- /ko -->
<td class="blokheader" style="text-align: right; padding-right: 5px;padding-bottom: 5px; border-radius: 0">
<span data-bind="visible: $index() ==0">Som</span>
</td>
<td class="blokheader" style="text-align: right; padding-right:5px; padding-bottom: 5px; border-radius: 0">
<span data-bind="visible: $index() ==0">Percentage</span>
<i class="fa fa-info-circle"
data-bind="click: $parent.fToelichting,
visible: $index() ==0">
</i>
</td>
</tr>
<!-- ko foreach:subsoorten -->
<tr>
<td data-bind="text: naam"></td>
<td style="text-align: left; color: #008028 ">budget</td>
<!-- ko foreach: uitgavetypes() -->
<!-- ko if (code == $root.uitgavetypes()[$index()].code) -->
<td style="text-align: right">
<td style="text-align: right; ">
<input class="decimal"
style="width: 200px;max-width:100%"
data-bind="textInput: formatted,event:{change:$root.fSaveBedrag} ,
enable: $root.targetjaar() == $root.selectedKalenderjaar().jaarnr && ! $root.jaarclosed()" />
</td>
style="width: 150px; max-width: 100%; background-color: #e6ffee"
data-bind="textInput: budgetFormat,
event:{change:$root.fSaveBudget.bind($data, $parent.subsoortID, 'BASIS') } ,
enable: ! $root.jaarclosed()"
/>
</td>
<!-- /ko -->
<!-- /ko -->
</tr>
<!-- /ko -->
<td style="padding: 0; padding-top: 1px; vertical-align: top">
<div style="width:150px; max-width: 100%; height: 24px; background-color: #e6ffee; border-radius: 3px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; padding-top: 2px;
padding-bottom: 2px; margin: 0; text-align: right; padding-right: 3px; ">
<span data-bind="text: subbudgetform,
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
<td style="padding: 0; padding-top: 1px; vertical-align: top">
<div style="width:150px; max-width: 100%;height: 24px; background-color: #e6ffee; border-radius: 3px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; padding-top: 2px;
padding-bottom: 2px; margin: 0; text-align: right; padding-right: 3px;">
<span data-bind="text: subbudgetform() != '' ? gebudgetprocent() + ' ('+ budgetprocent() + ')' : '',
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
</tr>
<tr >
<td ></td>
<td style="text-align: left; color:#003e80; ">uitgaven</td>
<!-- ko foreach: uitgavetypes() -->
<!-- ko if (code == $root.uitgavetypes()[$index()].code) -->
<td style="text-align: right; padding-bottom: 10px;">
<input class="decimal"
style="width: 150px; max-width:100%; background-color: #e6f2ff"
data-bind="textInput: formatted,
style: { color : budget() < bedrag() ? '#ff0000' : '#000000'},
event: {change:$root.fSaveBedrag.bind($data, $parent.subsoortID, 'BASIS' )} ,
enable: ! $root.jaarclosed()" />
</td>
<!-- /ko -->
<!-- /ko -->
<td style="padding: 0; vertical-align: top">
<div style="width:150px; max-width: 100%; height: 24px;background-color: #e6f2ff; border-radius: 2px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; margin: 0; margin-top: 1px;text-align: right; padding-right: 3px; ">
<span data-bind="text: formtotaal,
style: { color : subbudget() < totaal() ? '#ff0000' : '#000000'},
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
<td style="padding: 0; vertical-align: top">
<div style="width:150px; max-width: 100%; height: 24px; background-color: #e6f2ff; border-radius: 3px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; margin: 0; margin-top: 1px; text-align: right; padding-right: 3px;">
<span data-bind="text: procent,
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
</tr>
<!-- /ko -->
</tbody> <!-- FOREACH basissoorten -->
</table>
</div> <!-- visible basisgeopend -->
<p style="margin-bottom:0px; background-color:#f8f8f8; padding-left:10px; padding-top:10px;">
<span style="display:inline-block; width: 200px;" >Totaal basisondersteuning </span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: totaalbasis">
</div> <!-- visible basisgeopend -->
<p style="margin-bottom:0; background-color:#f8f8f8; padding-left:10px; padding-top:10px;">
<span style="display:inline-block; width: 250px; font-weight: bold" >Basisondersteuning </span>
<br>
<span style="display:inline-block; width: 250px;" >Uitgaven </span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: totaalbasis">
</span>
</p>
<p style="margin-top:0px; background-color:#f8f8f8; padding-left:10px; padding-bottom:10px; border-bottom:3px solid #dddddd">
<span style="display:inline-block; width: 200px" >Budget</span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: jaartoewijzing() ? jaartoewijzing().basis : '' ">
<br>
<span style="display:inline-block; width: 250px" >Gebudgeteerd per kostenpost</span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: gebudgetbasis ">
</span>
</p>
<br>
<span style="display:inline-block; width: 250px" >Totaal budget</span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: jaartoewijzing() ? jaartoewijzing().basis : '' ">
</span>
</p>
<!-- **************** extra ondersteuning *************** -->
<h4><button class="openbutton" data-bind="css: {closebutton: extrageopend()}, click: fToggle.bind($data,2)"></button>
Extra ondersteuning
</h4>
<div data-bind="visible: extrageopend()">
<table class="lstable" style="width : 100%; font-size:0.9em">
<colgroup>
<col style="width:40%">
<col span='3' style="width: 18%">
</colgroup>
<thead>
<tr>
<th style="width:25%"></th>
<th style="width:5%"></th>
<th style="width: 14%"></th>
<th style="width: 14%"></th>
<th style="width: 14%"></th>
<th style="width:14%"></th>
<th style="width:14%"></th>
</tr>
</thead>
<tbody data-bind="foreach: extrasoorten">
<tr class="blokheader" style="text-align:left; padding-left:5px">
<td style="width: 40%" data-bind="text:naam"></td>
<td data-bind="text:naam"></td>
<td></td>
<!-- ko if: $index() ==0-->
<!-- ko foreach: $root.uitgavetypes -->
<td style="text-align:right" data-bind="text:code"> </td>
<td style="text-align:right">
<span data-bind="text: code"></span>
</td>
<!-- /ko -->
<!-- /ko -->
<!-- ko if: $index() != 0-->
<!-- ko foreach: $root.uitgavetypes -->
<td >
</td>
<!-- /ko -->
<!-- /ko -->
<td class="blokheader" style="text-align: right; padding-right: 5px;padding-bottom: 5px; border-radius: 0">
<span data-bind="visible: $index() ==0">Som</span>
</td>
<td class="blokheader" style="text-align: right; padding-right:5px; padding-bottom: 5px; border-radius: 0">
<span data-bind="visible: $index() ==0">Percentage</span>
<i class="fa fa-info-circle"
data-bind="click: $parent.fToelichting,
visible: $index() ==0">
</i>
</td>
</tr>
<!-- ko foreach:subsoorten -->
<tr >
<tr >
<td data-bind="text: naam"></td>
<!-- ko foreach: uitgavetypes() -->
<!-- ko if (code == $root.uitgavetypes()[$index()].code) -->
<td style="text-align: right">
<input class="decimal"
style="width: 200px;max-width:100%"
data-bind="textInput: formatted, event:{change:$root.fSaveBedrag} ,
enable: $root.targetjaar() == $root.selectedKalenderjaar().jaarnr && ! $root.jaarclosed()" />
</td>
<!-- /ko -->
<!-- /ko -->
<td style="text-align: left; color: #00802b">budget</td>
<!-- ko foreach: uitgavetypes() -->
<!-- ko if (code == $root.uitgavetypes()[$index()].code) -->
<td style="text-align: right; ">
<input class="decimal"
style="width: 150px; max-width: 100%; background-color: #e6ffee"
data-bind="textInput: budgetFormat,
event:{change:$root.fSaveBudget.bind($data, $parent.subsoortID, 'EXTRA') } ,
enable: ! $root.jaarclosed()"
/>
</td>
<!-- /ko -->
<!-- /ko -->
<td style="padding: 0; padding-top: 1px; vertical-align: top">
<div style="width:150px; max-width: 100%; height: 24px; background-color: #e6ffee; border-radius: 3px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; padding-top: 2px;
padding-bottom: 2px; margin: 0; text-align: right; padding-right: 3px; ">
<span data-bind="text: subbudgetform,
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
<td style="padding: 0; padding-top: 1px; vertical-align: top">
<div style="width:150px; max-width: 100%;height: 24px; background-color: #e6ffee; border-radius: 3px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; padding-top: 2px;
padding-bottom: 2px; margin: 0; text-align: right; padding-right: 3px;">
<span data-bind="text: subbudgetform() != '' ? gebudgetprocent() + ' ('+ budgetprocent() + ')' : '',
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
</tr>
<tr >
<td ></td>
<td style="text-align: left; color: #003399">uitgaven</td>
<!-- ko foreach: uitgavetypes() -->
<!-- ko if (code == $root.uitgavetypes()[$index()].code) -->
<td style="text-align: right; padding-bottom: 10px; ">
<input class="decimal"
style="width: 150px;max-width:100%; background-color: #e6f2ff"
data-bind="textInput: formatted,
style: { color : budget() < bedrag() ? '#ff0000' : '#000000'},
event:{change:$root.fSaveBedrag.bind($data, $parent.subsoortID, 'EXTRA' )} ,
enable: ! $root.jaarclosed()" />
</td>
<!-- /ko -->
<!-- /ko -->
<td style="padding: 0; vertical-align: top">
<div style="width:150px; max-width: 100%; height: 24px;background-color: #e6f2ff; border-radius: 2px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; margin: 0; margin-top: 1px;text-align: right; padding-right: 3px; ">
<span data-bind="text: formtotaal,
style: { color : subbudget() < totaal() ? '#ff0000' : '#000000'},
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
<td style="padding: 0; vertical-align: top">
<div style="width:150px; max-width: 100%; height: 24px; background-color: #e6f2ff; border-radius: 3px;border: 1px solid #a07b8e;
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; margin: 0; margin-top: 1px; text-align: right; padding-right: 3px;">
<span data-bind="text: procent,
visible: ! $root.jaarclosed()">
</span>
</div>
</td>
</tr>
<!-- /ko -->
</tbody> <!-- FOREACH extrasoorten -->
</table>
</div> <!-- visible extrageopend -->
<p style="margin-bottom:0px; background-color:#f8f8f8; padding-left:10px; padding-top:10px;">
<span style="display:inline-block; width: 200px;" >Totaal extra ondersteuning </span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: totaalextra">
</div> <!-- visible extrageopend -->
<p style="margin-bottom:0; background-color:#f8f8f8; padding-left:10px; padding-top:10px;">
<span style="display:inline-block; width: 250px; font-weight: bold" >Extra ondersteuning </span>
<br>
<span style="display:inline-block; width: 250px;" >Uitgaven </span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: totaalextra">
</span>
</p>
<p style="margin-top:0px; background-color:#f8f8f8; padding-left:10px; padding-bottom:10px; border-bottom:3px solid #dddddd">
<span style="display:inline-block; width: 200px" >Budget</span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: jaartoewijzing() ? jaartoewijzing().extra : '' ">
<br>
<span style="display:inline-block; width: 250px" >Gebudgeteerd per kostenpost</span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: gebudgetextra ">
</span>
<br>
<span style="display:inline-block; width: 250px" >Totaal budget</span>
<span style="display:inline-block; width: 100px; text-align:right"
data-bind="text: jaartoewijzing() ? jaartoewijzing().extra : '' ">
</span>
</p>
@@ -69,104 +69,329 @@
<div id="finoverzichtpage">
<div data-bind="visible: zelfjanee() == 1 || zelfjanee() == 3 ">
<table style="width:100%">
<tr class="blokheader">
<td style="width:23px"></td>
<td class="naam2"
style="width: 250px: padding-right:0px; padding-left:3px;text-align:left">Basisondersteuning</td>
<!-- ko foreach: uitgavetypes-->
<td style="text-align:right;width:91px;font-size:0.9em" data-bind="text: naam"></td>
<!-- /ko -->
<td style="text-align:right;width:90px">Som</td>
<td style="text-align:right;width:90px">Budget</td>
<td style="text-align:right;width:90px">Verschil</td>
</tr>
<table style=" font-size: 13px; width:100%">
<thead class="blokheader">
<tr class="blokheader">
<th style="background-color: #968026; width: 2%;"></th>
<th class="naam2"
style="padding: 3px; width: 22%; vertical-align:bottom; background-color: #968026;">Basisondersteuning</th>
<!-- ko foreach: uitgavetypes-->
<th style="writing-mode: vertical-rl; padding: 3px; width: 8%; vertical-align:text-top; text-align: right; font-size:0.9em; background-color: #968026;" ><span data-bind="text: naam"></span>
<i class="fa fa-info-circle"
data-bind="click: $parent.fToelichting.bind($data, 'KOSTEN')">
</i>
</th>
<!-- /ko -->
<th style="writing-mode: vertical-rl; width: 8%; padding: 3px; vertical-align:text-top;text-align:right; background-color: #968026;"><span>som</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, 'SOM')">
</i>
</th>
<th style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; width:8%; background-color: #968026; font-size: 12px;"><span>% budget</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, '%BUDGET')">
</i>
</th>
<th style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; width:8%; background-color: #968026; font-size: 12px;"><span>% uitgaven</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, '%UITGAVEN')">
</i>
</th>
<th style="width: 8%; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top;text-align:right; background-color: #968026;"><span>Budget</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, 'BUDGET')">
</i>
</th>
<th style="text-align:right; background-color: #968026; width: 2%">
</th>
<th style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; width:8%; background-color: #968026; ; font-size: 12px;"><span>% gebudgett.</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, '%GEBUDGET')">
</i>
</th>
<th style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; width:8%; background-color: #968026; font-size: 12px;"><span>% budget</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, '%BUDGET2')">
</i>
</th>
<th style="writing-mode: vertical-rl; padding: 3px; width: 8%; vertical-align:text-top; text-align:right; background-color: #968026;"><span>verschil</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, 'VERSCHIL')">
</i>
</th>
</tr>
</thead>
<tbody >
<tr style="background-color:#ded0d7">
<td class="glyphicon"
<td class="glyphicon"
data-bind="css:{'glyphicon-chevron-right': !basisgeopend(), 'glyphicon-chevron-down': basisgeopend()},click: fToggle.bind($data,'BASIS')">
</td>
<td class="naam2" style="text-align:left;width:250px;">Totaal basis</td>
<!-- ko foreach: sombasisperuitgavetype-->
<td style="text-align:right" data-bind="text: som"></td>
<!-- /ko -->
<td style="text-align:right" data-bind="text : $root.budgetten().basis"></td>
<td style="text-align:right" data-bind="text : $root.budgetten().basisverschil"></td>
</tr>
<tbody data-bind="foreach:basis">
<tr data-bind="visible: $root.basisgeopend()">
<td colspan='8' style="padding-left:0px; padding-right:0px;">
<table style="width:100%">
<tbody data-bind="foreach: subsoorten">
<tr style="border-bottom:1px solid #ebebeb">
<td data-bind="text:naam" class="naam" style="padding:0px; width: 283px" > </td> <!-- -->
<td data-bind="text: isNaN(uitgavetypes[0].bedrag.replace(/\./g,'') ) || uitgavetypes[0].bedrag ==0 ? '' : uitgavetypes[0].bedrag" style="text-align:right;width:98px"> </td>
<td data-bind="text: isNaN(uitgavetypes[1].bedrag.replace(/\./g,'') ) || uitgavetypes[1].bedrag ==0 ? '' : uitgavetypes[1].bedrag" style="text-align:right;width:91px"> </td>
<td data-bind="text: isNaN(uitgavetypes[2].bedrag.replace(/\./g,'') ) || uitgavetypes[2].bedrag ==0 ? '' : uitgavetypes[2].bedrag" style="text-align:right;width:91px"> </td>
<td data-bind="text: isNaN(uitgavetypes[3].bedrag.replace(/\./g,'') ) || uitgavetypes[3].bedrag ==0 ? '' : uitgavetypes[3].bedrag" style="text-align:right;width:91px"> </td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
<tr class="blokheader">
<td></td>
<td style="padding-right:0px; padding-left:3px;text-align:left">Extra ondersteuning</td>
<!-- ko foreach: uitgavetypes-->
<td style="text-align:right ;font-size:0.9em" data-bind="text: naam"></td>
<!-- /ko -->
<td style="text-align:right" >Som</td>
<td style="text-align:right">Budget</td>
<td style="text-align:right">Verschil</td>
</tr>
<tr style="background-color:#ded0d7">
<td class="glyphicon"
data-bind="css:{'glyphicon-chevron-right': !extrageopend(), 'glyphicon-chevron-down': extrageopend()},click: fToggle.bind($data,'EXTRA')"></td>
<td style="text-align:left;width:250px;">Totaal extra</td>
<!-- ko foreach: somextraperuitgavetype-->
<td class="naam2" style="text-align:left;">Totaal basis</td>
<!--ko if: sombasisperuitgavetype() -->
<!-- ko foreach: sombasisperuitgavetype-->
<td style="text-align:right" data-bind="text: som"></td>
<!-- /ko -->
<td style="text-align:right" data-bind="text : $root.budgetten().extra"></td>
<td style="text-align:right" data-bind="text : $root.budgetten().extraverschil"></td>
</tr>
<tbody data-bind="foreach:extra">
<tr data-bind="visible: $root.extrageopend()">
<!-- /ko -->
<td colspan='8' style="padding-left:0px; padding-right:0px;">
<table style="width:100%">
<tbody data-bind="foreach: subsoorten">
<tr style="border-bottom:1px solid #ebebeb">
<td data-bind="text:naam" style="padding:0px;width:281px"> </td>
<td style="text-align:right;width:91px" data-bind="text: isNaN(uitgavetypes[0].bedrag.replace(/\./g,'')) || uitgavetypes[0].bedrag ==0 ? '' : uitgavetypes[0].bedrag"> </td>
<td style="text-align:right;width:91px" data-bind="text: isNaN(uitgavetypes[1].bedrag.replace(/\./g,'')) || uitgavetypes[1].bedrag ==0 ? '' : uitgavetypes[1].bedrag"> </td>
<td style="text-align:right;width:91px" data-bind="text: isNaN(uitgavetypes[2].bedrag.replace(/\./g,'')) || uitgavetypes[2].bedrag ==0 ? '' : uitgavetypes[2].bedrag"> </td>
<td style="text-align:right;width:91px" data-bind="text: isNaN(uitgavetypes[3].bedrag.replace(/\./g,'')) || uitgavetypes[3].bedrag ==0 ? '' : uitgavetypes[3].bedrag"> </td>
<td style="text-align:right;width:90px"></td>
<td style="text-align:right;width:90px"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<!--ko if: ! sombasisperuitgavetype() -->
<!-- ko foreach: uitgavetypes-->
<td style="text-align:right" >0,00</td>
<!-- /ko -->
<td style="text-align:right" >0,00</td>
<!-- /ko -->
<td style="text-align:right" data-bind="text: $root.budgetten() ? $root.budgetten().basisbedragbudgetpct : '0,00',
style: {color: $root.budgetten() && $root.budgetten().basisbedragbudgetkaal > 100 ? 'red' : 'black'}"></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ? $root.budgetten().basisbedragpct : '0,00' "></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ?$root.budgetten().basis : '0,00' "></td>
<td ><i class="fa fa-info-circle"
data-bind="visible: $root.schooltotaal().budget > 0,
click: $root.fOpenDetails.bind($data, 'BASIS') "
></i></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ?$root.budgetten().basisgebudgetpct : '0,00' "></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ?$root.budgetten().basisbudgetpct : '0,00' "></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ?$root.budgetten().basisverschil : '0,00',
style : {color: $root.budgetten() && Number($root.budgetten().basisverschil) < 0 ? 'red' : 'black' } "></td>
</tr>
<!-- ko foreach: basis -->
<!-- ko if: $root.basisgeopend() -->
<!-- ko foreach: subsoorten -->
<tr style="border-bottom:1px solid #ebebeb">
<td></td>
<td data-bind="text:naam" class="naam" style="padding:0;" > </td>
<td data-bind="text: isNaN(uitgavetypes[0].bedrag.replace(/\./g,'') ) || uitgavetypes[0].bedrag ==0 ? '' : uitgavetypes[0].bedrag,
style: {color: uitgavetypes[0].budget && Number(uitgavetypes[0].budget) < Number(uitgavetypes[0].bedrag) ? 'red' : 'black' }"
style="text-align:right; width:98px ">
</td>
<td data-bind="text: isNaN(uitgavetypes[1].bedrag.replace(/\./g,'') ) || uitgavetypes[1].bedrag ==0 ? '' : uitgavetypes[1].bedrag,
style: {color: uitgavetypes[1].budget && Number(uitgavetypes[1].budget) < Number(uitgavetypes[1].bedrag) ? 'red' : 'black' }"
style="text-align:right; width:91px ">
</td>
<td data-bind="text: isNaN(uitgavetypes[2].bedrag.replace(/\./g,'') ) || uitgavetypes[2].bedrag ==0 ? '' : uitgavetypes[2].bedrag,
style: {color: uitgavetypes[2].budget && Number(uitgavetypes[2].budget <uitgavetypes[2].bedrag ? 'red' : 'black' }"
style="text-align:right;width:91px">
</td>
<td data-bind="text: isNaN(uitgavetypes[3].bedrag.replace(/\./g,'') ) || uitgavetypes[3].bedrag ==0 ? '' : uitgavetypes[3].bedrag,
style: {color: uitgavetypes[3].budget && Number(uitgavetypes[3].budget) < Number(uitgavetypes[3].bedrag) ? 'red' : 'black' }"
style="text-align:right;width:91px">
</td>
<td style="text-align:right;" data-bind="text: isNaN(uitgavetypes[3].bedrag.replace(/\./g,'') ) || uitgavetypes[3].bedrag ==0 ? '' : uitgavetypes[3].bedragbudgetpct,
style: {color: Number(uitgavetypes[3].bedrag) && Number(uitgavetypes[3].bedragbudgetpct) > 100 ? 'red' : 'black' }">
</td>
<td data-bind="text: uitgavetypes[3].bedrag!= 0 ? uitgavetypes[3].bedragpct : ' ' "
style="text-align:right;">
</td>
<td data-bind="text: isNaN(uitgavetypes[3].budget.replace(/\./g,'') ) || uitgavetypes[3].budget ==0 ? '' : uitgavetypes[3].budget" style="text-align:right;width:91px"></td>
<td ><i class="fa fa-info-circle"
data-bind="visible: Number(uitgavetypes[3].budget)> 0,
click: $root.fOpenDetails.bind($data, 'DETAIL')">
</i>
</td>
<td style="text-align:right;" data-bind="text: uitgavetypes[3].budget !=0 ? uitgavetypes[3].gebudgetpct : ' ' ">
</td>
<td style="text-align:right;" data-bind="text: uitgavetypes[3].budget !=0 ? uitgavetypes[3].budgetpct : '' "></td>
<td data-bind="text: uitgavetypes[0].bedrag !=0 || uitgavetypes[0].budget !=0 ? uitgavetypes[3].verschil : ' ' ,
style: {color: Number(uitgavetypes[3].verschil)< 0 ? 'red': 'black'}"
style="text-align:right; ">
</td>
</tr>
<!--/ko-->
<!--/ko-->
<!--/ko-->
</tbody>
<tbody class="blokheader">
<tr class="blokheader">
<td style="background-color: #968026;"></td>
<td class="naam2"
style="padding: 3px; vertical-align:bottom; background-color: #968026;">Extra ondersteuning</td>
<!-- ko foreach: uitgavetypes-->
<td style="writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; text-align: right; background-color: #968026;" >
<span data-bind="text: naam"></span>
<i class="fa fa-info-circle"
data-bind="click: $parent.fToelichting.bind($data, 'KOSTEN')">
</i>
</td>
<!-- /ko -->
<td style="writing-mode: vertical-rl; padding: 3px; vertical-align:text-top;text-align:right; background-color: #968026;">
<span>som</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, 'SOM')">
</i>
</td>
<td style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; background-color: #968026; font-size: 12px;">
<span>% budget</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, '%BUDGET')">
</i>
</td>
<td style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; background-color: #968026; font-size: 12px;">
<span>% uitgaven</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, '%UITGAVEN')">
</i>
</td>
<td style="writing-mode: vertical-rl; padding: 3px; vertical-align:text-top;text-align:right; background-color: #968026;">
<span>Budget</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, 'BUDGET')">
</i>
</td>
<td style="text-align:right; background-color: #968026;">
</td>
<td style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; background-color: #968026; font-size: 12px;">
<span>% gebuggett.</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, '%GEBUDGET')">
</i>
</td>
<td style="text-align:right; writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; background-color: #968026; font-size: 12px;">
<span>% budget</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, 'BUDGET')">
</i>
</td>
<td style="writing-mode: vertical-rl; padding: 3px; vertical-align:text-top; text-align:right; background-color: #968026;">
<span>Verschil</span>
<i class="fa fa-info-circle"
data-bind="click: fToelichting.bind($data, 'VERSCHIL')">
</i>
</td>
</tr>
</tbody>
<tbody>
<tr style="background-color:#ded0d7">
<td class="glyphicon"
data-bind="css:{'glyphicon-chevron-right': !extrageopend(), 'glyphicon-chevron-down': extrageopend()},click: fToggle.bind($data,'EXTRA')">
</td>
<td class="naam2" style="text-align:left;">Totaal extra</td>
<!-- ko if: somextraperuitgavetype() -->
<!-- ko foreach: somextraperuitgavetype-->
<td style="text-align:right" data-bind="text: som"></td>
<!-- /ko -->
<!-- /ko -->
<!-- ko if : ! somextraperuitgavetype() -->
<!-- ko foreach: uitgavetypes -->
<td style="text-align:right" >0,00</td>
<!-- /ko -->
<td style="text-align:right" >0,00</td>
<!-- /ko -->
<td style="text-align:right" data-bind="text: $root.budgetten() ? $root.budgetten().extrabedragbudgetpct : '0,00',
style: {color: $root.budgetten() && $root.budgetten().extrabedragbudgetkaal > 100 ? 'red' : 'black'}">
</td>
<td style="text-align:right" data-bind="text : $root.budgetten() ? $root.budgetten().extrabedragpct : '0,00' "></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ? $root.budgetten().extra : '0,00' "></td>
<td
><i class="fa fa-info-circle"
data-bind="visible: $root.schooltotaal().budget > 0,
click: $root.fOpenDetails.bind($data, 'EXTRA') "
></i></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ? $root.budgetten().extragebudgetpct : '0,00' "></td>
<td style="text-align:right" data-bind="text: $root.budgetten() ? $root.budgetten().extrabudgetpct : '0,00' "></td>
<td style="text-align:right" data-bind="text : $root.budgetten() ? $root.budgetten().extraverschil : '0,00',
style : {color: $root.budgetten() && $root.budgetten().extraverschil < 0 ? 'red' : 'black' }">
</td>
</tr>
<!-- ko foreach: extra -->
<!-- ko if: $root.extrageopend() -->
<!-- ko foreach: subsoorten -->
<tr style="border-bottom:1px solid #ebebeb">
<td></td>
<td data-bind="text:naam" class="naam" style="padding:0;" > </td>
<td data-bind="text: isNaN(uitgavetypes[0].bedrag.replace(/\./g,'') ) || uitgavetypes[0].bedrag ==0 ? '' : uitgavetypes[0].bedrag,
style: {color: uitgavetypes[0].budget && Number(uitgavetypes[0].budget) < Number(uitgavetypes[0].bedrag) ? 'red' : 'black' }"
style="text-align:right;width:98px">
</td>
<td data-bind="text: isNaN(uitgavetypes[1].bedrag.replace(/\./g,'') ) || uitgavetypes[1].bedrag ==0 ? '' : uitgavetypes[1].bedrag,
style: {color: uitgavetypes[1].budget && Number(uitgavetypes[1].budget) < Number(uitgavetypes[1].bedrag) ? 'red' : 'black' }"
style="text-align:right;width:91px">
</td>
<td data-bind="text: isNaN(uitgavetypes[2].bedrag.replace(/\./g,'') ) || uitgavetypes[2].bedrag ==0 ? '' : uitgavetypes[2].bedrag,
style: {color: uitgavetypes[2].budget && Number(uitgavetypes[2].budget < Number(uitgavetypes[2].bedrag) ? 'red' : 'black' }"
style="text-align:right;width:91px">
</td>
<td data-bind="text: isNaN(uitgavetypes[3].bedrag.replace(/\./g,'') ) || uitgavetypes[3].bedrag ==0 ? '' : uitgavetypes[3].bedrag,
style: {color: uitgavetypes[3].budget && Number(uitgavetypes[0].budget) < Number(uitgavetypes[3].bedrag) ? 'red' : 'black' }"
style="text-align:right;width:91px">
</td>
<td></td>
<td data-bind="text: uitgavetypes[3].bedrag!= 0 ? uitgavetypes[3].bedragpct : ' ' ,
style: {color: uitgavetypes[3].bedrag && Number(uitgavetypes[0].bedragpct) > 100 ? 'red' : 'black' }" style="text-align:right;width:91px">
</td>
<td data-bind="text: color: #00802b ) || uitgavetypes[3].budget ==0 ? '' : uitgavetypes[3].budget" style="text-align:right;width:91px"></td>
<td ><i class="fa fa-info-circle"
data-bind="visible: Number(uitgavetypes[3].budget) > 0 ,
click: $root.fOpenDetails.bind($data, 'DETAIL')">
</i>
</td>
<td style="text-align:right;" data-bind="text: uitgavetypes[3].budget !=0 ? uitgavetypes[3].gebudgetpct : ' ' ">
</td>
<td style="text-align:right;" data-bind="text: uitgavetypes[3].budget !=0 ? uitgavetypes[3].budgetpct : '' "></td>
<td data-bind="text: uitgavetypes[0].bedrag !=0 || uitgavetypes[0].budget !=0 ? uitgavetypes[3].verschil : ' ',
style: {color: uitgavetypes[3].verschil< 0 ? 'red': 'black'}"
style="text-align:right; ">
</td>
</tr>
<!--/ko-->
<!--/ko-->
<!--/ko-->
</tbody>
<tbody>
<tr style="background-color:#f8f8f8">
<td></td>
<td style="text-align:left">Totaal besteed</td>
<td style="text-align:left">Totaal besteed</td>
<!-- ko if: totsomperuitgavetype() -->
<!-- ko foreach: totsomperuitgavetype-->
<td style="text-align:right" data-bind="text: som"></td>
<!-- /ko -->
<td style="text-align:right" data-bind="text: $root.schooltotaal().budget"></td>
<td style="text-align:right" data-bind="text: $root.schooltotaal().verschil"></td>
<!-- /ko -->
<!-- ko if: ! totsomperuitgavetype() -->
<!-- ko foreach: uitgavetypes-->
<td style="text-align:right" >0,00</td>
<!-- /ko -->
<td style="text-align:right" >0,00</td>
<!-- /ko -->
<td style="text-align:right"
data-bind="text: $root.budgetten() &&parseFloat($root.budgetten().totbedragbudgetkaal) > 0 ? $root.budgetten().totbedragbudgetpct : '0,00' ,
style: {color: parseFloat($root.budgetten().totbedragbudgetkaal) > 100 ? 'red' : 'black'}" >
</td>
<td style="text-align: right" data-bind="text: $root.budgetten() ? $root.budgetten().totbedragpct: '0,00' ">
</td>
<td style="text-align:right" data-bind="text: $root.budgetten() ? $root.schooltotaal().budget : '0,00'">
</td>
<td ><i class="fa fa-info-circle"
data-bind="visible: $root.schooltotaal().budget > 0,
click: $root.fOpenDetails.bind($data, 'TOTAAL') ">
</i>
</td>
<td style="text-align:right"
data-bind="text: $root.budgetten() ? $root.budgetten().totgebudgetpct: '0,00' ">
</td>
<td style="text-align:right"
data-bind="text: $root.budgetten() ? $root.budgetten().totbudgetpct: '0,00' ">
</td>
<td style="text-align:right"
data-bind="text: $root.schooltotaal() && $root.schooltotaal().verschil ? $root.schooltotaal().verschil : '0,00',
style : {color: $root.schooltotaal() && Number($root.schooltotaal().verschil) < 0 ? 'red' : 'black' }">
</td>
</tr>
</tbody>
</table>
<div data-bind="visible: opmerking()" style="margin-top: 20px">
<p>Opmerkingen</p>
@@ -181,4 +406,7 @@
</div>
</div> <!-- holder voor pdf -->
</div> <!-- col sm 9 -->
<?php $this->load->view("monpas/modals/findetails_modal"); ?>
</div>
@@ -1,61 +1,175 @@
<table style="width:100%">
<thead>
<thead>
<tr>
<th style="width:25%"></th>
<th style="width:9%;"></th>
<th style="width:11%;" ></th>
<th style="width:11%; "></th>
<th style="width:11%; "></th>
<th style="width:11%; "></th>
<th style="width:11%; "></th>
<th style="width:11%; "></th>
</tr>
</thead>
<thead>
<tr class="blokheader">
<td></td>
<td colspan='3' style="text-align:center; padding-right:4px">Basisondersteuning</td>
<td colspan='4' style="text-align:center; padding-right:4px">Basisondersteuning</td>
<td colspan='3' style="text-align: center; border-left:1px solid #888888">Extra ondersteuning</td>
</tr>
</thead>
<thead>
<tr>
<th style="width:22%">Organisatie</th>
<th style="width:13%; text-align:right">Personeel</th>
<th style="width:13%; text-align:right">Materieel</th>
<th style="width:13%; text-align:right; border-right:1px solid #888888; padding-right:4px">Scholing</th>
<th style="width:13%; text-align:right">Personeel</th>
<th style="width:13%; text-align:right">Materieel</th>
<th style="width:13%; text-align:right">Scholing</th>
<tr style="background-color: #d6be5c">
<th style="background-color: #d6be5c">Organisatie</th>
<th style="background-color: #d6be5c"></th>
<th style="background-color: #d6be5c; text-align:right">Personeel</th>
<th style="background-color: #d6be5c; text-align:right">Materieel</th>
<th style="background-color: #d6be5c; text-align:right; border-right:1px solid #888888; padding-right:4px">Scholing</th>
<th style=" background-color: #d6be5c; text-align:right">Personeel</th>
<th style="background-color: #d6be5c; text-align:right">Materieel</th>
<th style="background-color: #d6be5c; text-align:right">Scholing</th>
</tr>
</thead>
<tbody data-bind="foreach: otherPMSOrgs">
<tr style="border-bottom: 1px dotted #999999">
<tr >
<td data-bind="text: fullname"></td>
<td style="text-align:right" data-bind="text: pms[0]"></td>
<td style="text-align:right" data-bind="text: pms[1]"></td>
<td style="text-align:right; border-right:1px solid #888888; padding-right:4px" data-bind="text: pms[2]"></td>
<td style="text-align:right;" data-bind="text: pms[3]"></td>
<td style="text-align:right;" data-bind="text: pms[4]"></td>
<td style="text-align:right" data-bind="text: pms[5]"></td>
<td style="color: #00802b;">budget</td>
<td style="background-color: #f5fff8;text-align:right" data-bind="text: bud[0]"></td>
<td style="background-color: #f5fff8;text-align:right" data-bind="text: bud[1]"></td>
<td style="background-color: #f5fff8;text-align:right; border-right:1px solid #888888; padding-right:4px" data-bind="text: bud[2]"></td>
<td style="background-color: #f5fff8;text-align:right;" data-bind="text: bud[3]"></td>
<td style="background-color: #f5fff8;text-align:right;" data-bind="text: bud[4]"></td>
<td style="background-color: #f5fff8;text-align:right" data-bind="text: bud[5]"></td>
</tr>
<tr style="border-bottom: 1px dotted #999999">
<td></td>
<td style="color: #003399">uitgaven</td>
<td style="background-color: #f5faff; text-align:right"
data-bind="text: pms[0],
style: {color: kleur[0]}"></td>
<td style="background-color: #f5faff; text-align:right"
data-bind="text: pms[1],
style: {color: kleur[1] }"></td>
<td style="background-color: #f5faff; text-align:right; border-right:1px solid #888888; padding-right:4px"
data-bind="text: pms[2],
style: {color: kleur[2] }">
</td>
<td style="background-color: #f5faff; text-align:right;"
data-bind="text: pms[3],
style: {color: kleur[3] }">
</td>
<td style="background-color: #f5faff; text-align:right;"
data-bind="text: pms[4],
style: {color: kleur[4] }">
</td>
<td style="background-color: #f5faff; text-align:right"
data-bind="text: pms[5],
style: {color: kleur[5] }">
</td>
</tr>
</tbody>
<tr style="background-color: #e7e2e5; font-style: italic">
<tr style="background-color: #e6ffee; ">
<td style="width:22%">Subtotaal</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[0]"></td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[1]">Materieel</td>
<td style="width:13%; text-align:right; border-right:1px solid #888888; padding-right:4px" data-bind="text: sumotherPMS()[2]">Scholing</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[3]">Personeel</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[4]">Materieel</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[5]">Scholing</td>
<td style="color: #00802b;">budget</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[6] == 0 ? ' ' : sumotherPMS()[6] "></td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[7]== 0 ? ' ' : sumotherPMS()[7] ">Materieel</td>
<td style="width:13%; text-align:right; border-right:1px solid #888888; padding-right:4px"
data-bind="text: sumotherPMS()[8]== 0 ? '' : sumotherPMS()[8]">Scholing</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[9] == 0 ? ' ' : sumotherPMS()[9] ">Personeel</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[10]== 0 ? ' ' : sumotherPMS()[10]">Materieel</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[11] == 0 ? ' ' : sumotherPMS()[11]">Scholing</td>
</tr>
<tr style="background-color: #e6f2ff; ">
<td ></td>
<td style="color: #003399">uitgaven</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[0] == 0 ? ' ' : sumotherPMS()[0] ,
style: {color: sumotherPMS()[12]}"></td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[1] == 0 ? ' ' : sumotherPMS()[1],
style: {color: sumotherPMS()[13]}">Materieel</td>
<td style="width:13%; text-align:right; border-right:1px solid #888888; padding-right:4px" data-bind="text: sumotherPMS()[2] == 0 ? ' ' : sumotherPMS()[2],
style: {color: sumotherPMS()[14]}">Scholing</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[3] == 0 ? ' ' : sumotherPMS()[3],
style: {color: sumotherPMS()[15]}">Personeel</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[4] == 0 ? ' ' : sumotherPMS()[4],
style: {color: sumotherPMS()[16]}">Materieel</td>
<td style="width:13%; text-align:right" data-bind="text: sumotherPMS()[5] == 0 ? ' ' : sumotherPMS()[5],
style: {color: sumotherPMS()[17]}">Scholing</td>
</tr>
<tr data-bind="with: pmsTargetOrg">
<td data-bind="text: naamkort"></td>
<td style="text-align:right" data-bind="text: pms[0]"></td>
<td style="text-align:right" data-bind="text: pms[1]"></td>
<td style="text-align:right; border-right:1px solid #888888; padding-right:4px" data-bind="text: pms[2]"></td>
<td style="text-align:right;" data-bind="text: pms[3]"></td>
<td style="text-align:right;" data-bind="text: pms[4]"></td>
<td style="text-align:right" data-bind="text: pms[5]"></td>
<td style="color: #00802b;">budget</td>
<td style="text-align:right; background-color: #f5fff8" data-bind="text: bud[0]"></td>
<td style="text-align:right; background-color: #f5fff8" data-bind="text: bud[1]"></td>
<td style="text-align:right; background-color: #f5fff8; border-right:1px solid #888888; padding-right:4px" data-bind="text: bud[2]"></td>
<td style="text-align:right;background-color: #f5fff8" data-bind="text: bud[3]"></td>
<td style="text-align:right; background-color: #f5fff8" data-bind="text: bud[4]"></td>
<td style="text-align:right; background-color: #f5fff8" data-bind="text: bud[5]"></td>
</tr>
<tr data-bind="with: pmsTargetOrg">
<td ></td>
<td style="color: #003399">uitgaven</td>
<td style="text-align:right; background-color: #f5faff;"
data-bind="text: pms[0],
style: {color: kleur[0]} "></td>
<td style="text-align:right; background-color: #f5faff;"
data-bind="text: pms[1],
style: {color: kleur[1]}"></td>
<td style="text-align:right; background-color: #f5faff; border-right:1px solid #888888; padding-right:4px"
data-bind="text: pms[2],
style: {color: kleur[2]}"></td>
<td style="text-align:right; background-color: #f5faff;"
data-bind="text: pms[3],
style: {color: kleur[3]}"></td>
<td style="text-align:right; background-color: #f5faff;"
data-bind="text: pms[4],
style: {color: kleur[4]}">
</td>
<td style="text-align:right; background-color: #f5faff;"
data-bind="text: pms[5],
style: {color: kleur[5]}"></td>
</tr>
<tr style="background-color: #e7e2e5; font-weight:bold">
<th style="width:22%">Totaal</th>
<th style="width:13%; text-align:right" data-bind="text: sumtotPMS()[0]">Personeel</th>
<th style="width:13%; text-align:right" data-bind="text: sumtotPMS()[1]">Materieel</th>
<th style="width:13%; text-align:right; border-right:1px solid #888888; padding-right:4px" data-bind="text: sumtotPMS()[2]">Scholing</th>
<th style="width:13%; text-align:right" data-bind="text: sumtotPMS()[3]">Personeel</th>
<th style="width:13%; text-align:right" data-bind="text: sumtotPMS()[4]">Materieel</th>
<th style="width:13%; text-align:right" data-bind="text: sumtotPMS()[5]">Scholing</th>
<tr style="background-color: #ccffdc; font-weight:bold">
<td style="width:22%">Totaal</td>
<td style="color: #00802b;">budget</td>
<td style="width:13%; text-align:right" data-bind="text: sumtotPMS()[6]">Personeel</td>
<td style="width:13%; text-align:right" data-bind="text: sumtotPMS()[7]">Materieel</td>
<td style="width:13%; text-align:right; border-right:1px solid #888888; padding-right:4px" data-bind="text: sumtotPMS()[8]">Scholing</td>
<td style="width:13%; text-align:right" data-bind="text: sumtotPMS()[9]">Personeel</td>
<td style="width:13%; text-align:right" data-bind="text: sumtotPMS()[10]">Materieel</td>
<td style="width:13%; text-align:right" data-bind="text: sumtotPMS()[11]">Scholing</td>
</tr>
<tr style="background-color: #cce6ff; font-weight:bold">
<td style="width:22%"></td>
<td style="color: #003399">uitgaven</td>
<td style="width:13%; text-align:right"
data-bind="text: sumtotPMS()[0],
style: {color: sumtotPMS()[12]} ">Personeel
</td>
<td style="width:13%; text-align:right"
data-bind="text: sumtotPMS()[1],
style: {color: sumtotPMS()[13]}">Materieel
</td>
<td style="width:13%; text-align:right; border-right:1px solid #888888; padding-right:4px"
data-bind="text: sumtotPMS()[2],
style: {color: sumtotPMS()[14]}">Scholing
</td>
<td style="width:13%; text-align:right"
data-bind="text: sumtotPMS()[3],
style: {color: sumtotPMS()[15]}">Personeel
</td>
<td style="width:13%; text-align:right"
data-bind="text: sumtotPMS()[4],
style: {color: sumtotPMS()[16]}">Materieel
</td>
<td style="width:13%; text-align:right"
data-bind="text: sumtotPMS()[5],
style: {color: sumtotPMS()[17]}">Scholing
</td>
</tr>
</table>
+372 -93
View File
@@ -7,30 +7,80 @@ ls.initBestemmingenModel = function(){
this.naam = p.naam;
}
function fAddBasissoort(k){
function fAddBasissoort(j,k, budget, totbudget, bedrag ){
var dit = this;
this.soortID = k.soortID
this.naam = k.naam
this.subsoorten = ko.observableArray([]);
if (k.subsoorten){
$.each(k.subsoorten, function(a,b){
dit.subsoorten.push(new fAddSubsoort(b, k.categorie));
dit.subsoorten.push(new fAddSubsoort(a, b, budget, totbudget, bedrag, k.categorie));
});
}
}
function fAddSubsoort(p,categorie){
var dit = dit;
this.subsoortID = p.subsoortID;
this.naam = p.naam;
function fAddSubsoort(a,b,gebudget, totbudget, totbedrag, categorie){
var dit = this;
var bedrag = 0;
var budget = 0;
var uitgaven = 0;
var budgettot = 0;
var bedragtot = 0;
var centbudget = 0;
var budgettot2 = 0;
var centbudget2 = 0;
this.subsoortID = b.subsoortID;
this.naam = b.naam;
this.categorie = categorie
this.uitgavetypes = ko.observableArray()
var dit = this;
if (p.uitgavetypes){
$.each(p.uitgavetypes, function(i,k){
this.uitgavetypes = ko.observableArray();
this.totaal = ko.observable(0);
this.formtotaal = ko.observable('');
this.procent = ko.observable(0);
this.subbudget = ko.observable(0);
this.subbudgetform = ko.observable('');
this.budgetprocent = ko.observable(0);
this.gebudgetprocent = ko.observable(0);
if (b.uitgavetypes) {
$.each(b.uitgavetypes, function (i, k) {
bedrag = Number(bedrag) + Number(k.bedrag);
budget = Number(budget) + Number(k.budget);
dit.uitgavetypes.push(new fAddUitgavetype(k));
});
dit.totaal(bedrag);
dit.formtotaal(parseFloat(bedrag) === 0 ? '' : parseFloat(bedrag).format(2, 3, '.', ','));
dit.subbudget(budget);
dit.subbudgetform(parseFloat(budget) === 0 ? '' : parseFloat(budget).format(2, 3, '.', ','));
centbudget = dit.subbudgetform();
centbudget = centbudget.replace(/[.| ,]/g, '');
if (totbudget) {
budgettot = totbudget.replace(/[.| ,]/g, '');
var budgetpct = ((Number(centbudget) / Number(budgettot)) * 100).toFixed(1)
budgetpct = budgetpct.replace('.', ',')
dit.budgetprocent(budgettot > 0 ? budgetpct + '%' : '');
}
if (gebudget) {
budgettot2 = gebudget.replace(/[.| ,]/g, '');
var budgetpct2 = ((Number(centbudget) / Number(budgettot2)) * 100).toFixed(1)
budgetpct2 = budgetpct2.replace('.', ',')
dit.gebudgetprocent(budgettot2 > 0 ? budgetpct2 + '%' : '')
}
if(totbedrag) {
bedragtot = totbedrag.replace(/[.| ,]/g, '');
uitgaven = dit.formtotaal();
uitgaven = uitgaven.replace(/[.| ,]/g, '');
uitgaven = ((Number(uitgaven) / Number(bedragtot)) * 100).toFixed(1)
dit.procent(uitgaven > 0 ? uitgaven + '%' : '')
}
}
}
function fAddUitgavetype(k){
@@ -39,6 +89,10 @@ ls.initBestemmingenModel = function(){
this.bedrag = ko.observable(k.bedrag);
this.formatted = ko.observable(parseFloat(k.bedrag).format(2,3,'.',','));
if (parseFloat(k.bedrag) <= 0) this.formatted('');
this.budget = ko.observable(k.budget);
this.budgetFormat = ko.observable(parseFloat(k.budget).format(2,3,'.',','));
if (parseFloat(k.budget) <= 0) this.budgetFormat('');
this.kleur =ko.observable('#000000');
}
@@ -51,9 +105,8 @@ ls.initBestemmingenModel = function(){
kalenderjaren : ko.observableArray([]),
selectedKalenderjaar : ko.observable(),
jaartoewijzing : ko.observable(),
targetjaar : ko.observable(2017), //het jaar waarin met moet werken
targetjaar : ko.observable(2017), //het jaar waarin met moet werken
uitgavetypes : ko.observableArray(),
basissoorten : ko.observableArray(),
extrasoorten : ko.observableArray(),
@@ -64,7 +117,11 @@ ls.initBestemmingenModel = function(){
extrageopend : ko.observable(false),
totaalextra : ko.observable(),
totaalbasis : ko.observable(),
totaalbasis : ko.observable(0),
gebudgetbasis : ko.observable(0),
budgetUnformatted : ko.observable(0),
gebudgetextra : ko. observable(),
initBindings :function(){
var self = ls.BestemmingenModel;
@@ -101,57 +158,271 @@ ls.initBestemmingenModel = function(){
fGetBestemmingen: function(){
var self = ls.BestemmingenModel;
if (!self.selectedKalenderjaar()) return;
self.basissoorten.removeAll();
self.extrasoorten.removeAll();
var sd ={jaarnr:self.selectedKalenderjaar().jaarnr}
$.post("index.php/monfin2/bestemmingen/getBestemmingen", sd, function(data){
if (data.jaartoewijzing){
if (data.jaartoewijzing){
self.jaartoewijzing(data.jaartoewijzing);
}
else {self.jaartoewijzing(false);}
self.jaarclosed(data.jaarclosed);
self.basissoorten.removeAll();
if (data.basisbestemmingen){
$.each(data.basisbestemmingen,function(j,k){
self.basissoorten.push(new fAddBasissoort(k));
});
}
self.extrasoorten.removeAll();
if (data.extrabestemmingen){
$.each(data.extrabestemmingen,function(j,k){
self.extrasoorten.push(new fAddBasissoort(k));
});
}
self.opmerking(data.opmerking);
var budget = 0;
var bedrag = 0;
if (data.basisbestemmingen){
$.each(data.basisbestemmingen, function(i, b){
$.each(b.subsoorten, function(x, s){
$.each(s.uitgavetypes, function(z, t){
budget += Number(t.budget);
bedrag += Number(t.bedrag);
} )
} )
})
budget = self.fSetTotalValue(budget);
self.gebudgetbasis(budget);
bedrag = self.fSetTotalValue(bedrag);
self.totaalbasis(bedrag);
var totbudget = self.jaartoewijzing().basis;
$.each(data.basisbestemmingen,function(j,k){
self.basissoorten.push(new fAddBasissoort(j,k, budget, totbudget, bedrag));
});
}
budget = 0;
bedrag = 0;
totbudget = 0;
if (data.extrabestemmingen){
$.each(data.extrabestemmingen, function(i, b){
$.each(b.subsoorten, function(x, s){
$.each(s.uitgavetypes, function(z, t){
budget += Number(t.budget);
bedrag += Number(t.bedrag);
} )
} )
})
budget = self.fSetTotalValue(budget);
self.gebudgetextra(budget);
bedrag = self.fSetTotalValue(bedrag);
self.totaalextra(bedrag);
totbudget = self.jaartoewijzing().extra;
$.each(data.extrabestemmingen,function(j,k){
self.extrasoorten.push(new fAddBasissoort(j, k, budget, totbudget, bedrag));
});
}
self.opmerking(data.opmerking);
},'json');
},
fSaveBedrag:function(){
fSetTotalValue: function(value){
var self = ls.BestemmingenModel;
var bedrag = value;
bedrag = parseFloat(bedrag).format(2, 3, '.', ',');
return bedrag;
},
fSaveBedrag:function(subsoortid, soort){
var self = ls.BestemmingenModel;
if (self.jaarclosed()) return;
var dit = this;
var dit = this;
var uitgave = 0;
var formuitgave = 0;
var totaaluitgaven = 0;
var totaaluitgavenR = 0;
// if( Number(dit.budget()) <= 0){
// apprise("Vul eerst een budget in.")
// return;
// }
var invoer = dit.formatted();
if ( ! invoer) invoer = '0'
invoer = invoer.split('.').join('');
invoer= invoer.replace(',' , '.');
if (isNaN( parseFloat(invoer) ) ) {
return;
}
else {
invoer=parseFloat(invoer)
}
dit.formatted(parseFloat(invoer).format(2,3,'.',','));
if (invoer <= 0) dit.formatted('');
dit.bedrag(invoer);
$.each(soort === 'BASIS' ? self.basissoorten() : self.extrasoorten(), function(i, b){
$.each(b.subsoorten(), function(x, s){
if (s.uitgavetypes()) {
$.each(s.uitgavetypes(), function (i, k) {
totaaluitgaven = Number(totaaluitgaven) + Number(k.bedrag());
});
if(s.subsoortID === subsoortid) {
$.each(s.uitgavetypes(), function (i, k) {
uitgave = Number(uitgave) + Number(k.bedrag());
});
s.totaal(uitgave);
s.formtotaal(parseFloat(uitgave) === 0 ? '' : parseFloat(uitgave).format(2, 3, '.', ','));
}
}
})
})
totaaluitgaven = totaaluitgaven.format(2, 3, '.', ',');
totaaluitgavenR = totaaluitgaven.replace(/[.| ,]/g, '');
$.each(soort === 'BASIS' ? self.basissoorten() : self.extrasoorten(), function(i, b){
$.each(b.subsoorten(), function(x, s){
if (s.uitgavetypes()) {
let procent = 0;
formuitgave = s.formtotaal();
formuitgave = formuitgave.replace(/[.| ,]/g, '');
if (Number(totaaluitgavenR) > 0) procent = ((Number(formuitgave) / Number(totaaluitgavenR)) * 100).toFixed(1)
else formuitgave = 0;
s.procent(Number(totaaluitgavenR) > 0 && Number(procent) > 0 ? procent + '%' : '')
}
})
})
soort === 'BASIS' ? self.totaalbasis(totaaluitgaven): self.totaalextra(totaaluitgaven) ;
invoer = Math.round(invoer * 100) ;
var sd = {'id': dit.finbestemmingID,
'bedrag' : invoer
}
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd);
},
fSaveBudget:function( subsoortid, soort ){
var self = ls.BestemmingenModel;
if (self.jaarclosed()) return;
var dit = this;
var budgetoud = dit.budget();
var budgetoudForm = dit.budget() > 0 ? parseFloat(budgetoud).format(2, 3, '.', ',') : '';
var subbudget = 0;
var subbudgetoud = 0;
var subbudgetForm = '';
var subbudgetFormoud = '';
var totaalgebudget = 0;
var totaalgebudgetR = 0;
var totaalgebudgetRoud = 0;
var totaalgebudgetpct = '';
var totaalgebudgetpctoud = '';
var subbudgetpct = '';
var subbudgetpctoud = '';
var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, ''));
// update budget en budgetformat
var invoer = dit.budgetFormat();
if ( ! invoer) invoer = '0'
invoer = invoer.split('.').join('');
invoer= invoer.replace(',' , '.');
if (isNaN( parseFloat(invoer) ) ) invoer =0;
else invoer = parseFloat(invoer)
dit.budgetFormat(parseFloat(invoer).format(2, 3, '.', ','));
if (invoer <= 0){
dit.budgetFormat(budgetoudForm);
invoer = 0;
return;
}
dit.budget(invoer);
// update subtotalen
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
$.each(b.subsoorten(), function(x, s){
if (s.uitgavetypes()) {
if (s.subsoortID === subsoortid) {
subbudgetoud = s.subbudget();
subbudgetFormoud= s.subbudgetform();
subbudgetpctoud = s.budgetprocent();
totaalgebudgetpctoud = s.gebudgetprocent();
$.each(s.uitgavetypes(), function (z, k) {
subbudget = Number(subbudget) + Number(k.budget());
});
s.subbudget(subbudget);
if (parseFloat(subbudget) > 0) {
subbudgetForm = parseFloat(subbudget).format(2, 3, '.', ',');
}
s.subbudgetform(Number(subbudget) > 0 ? subbudgetForm : '');
if (Number(subbudget) > 0) {
subbudget = subbudgetForm.replace(/[.| ,]/g, '');
}
subbudgetpct = (Number(totaalbudget) > 0 ? ((Number(subbudget) / Number(totaalbudget)) * 100).toFixed(1) : 0);
subbudgetpct = subbudgetpct.replace('.', ',');
s.budgetprocent(Number(totaalbudget) > 0 ? subbudgetpct + '%' : '')
}
$.each(s.uitgavetypes(), function (z, k) {
totaalgebudget = Number(totaalgebudget) + Number(k.budget());
});
}
})
})
if (parseFloat(totaalgebudget) > 0) {
totaalgebudgetR = parseFloat(totaalgebudget).format(2, 3, '.', ',');
totaalgebudgetR = totaalgebudgetR.replace(/[.| ,]/g, '');
}
totaalgebudgetpct = (Number(totaalgebudgetR) > 0 ? ((Number(subbudget) / Number(totaalgebudgetR)) * 100).toFixed(1) : 0);
totaalgebudgetpct = totaalgebudgetpct.replace('.', ',');
// update procenten
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
$.each(b.subsoorten(), function(x, s){
if (s.uitgavetypes()) {
if (s.subsoortID === subsoortid) {
s.gebudgetprocent(totaalgebudgetpct + '%' );
}
}
})
})
if(Number(totaalgebudget) > Number(totaalbudget) ){
dit.budgetFormat(budgetoudForm);
dit.budget(budgetoud);
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
$.each(b.subsoorten(), function(x, s){
if (s.uitgavetypes()) {
if (s.subsoortID === subsoortid) {
s.subbudget(subbudgetoud);
s.subbudgetform(subbudgetFormoud);
s.budgetprocent(subbudgetpctoud);
s.gebudgetprocent(totaalgebudgetpctoud);
}
}
})
})
//hier alle oude waarden invullen
apprise("Het budget overschrijdt het totaalbudget")
return;
}
else {
soort=== 'BASIS' ? self.gebudgetbasis(totaalgebudget): self.gebudgetextra(totaalbudget);
invoer = Math.round(invoer * 100);
var sd = {
'id' : dit.finbestemmingID,
'budget': invoer,
invoer = dit.formatted();
if (invoer <= '' || ! invoer) invoer = '0'
invoer = invoer.split('.').join('');
invoer= invoer.replace(',' , '.');
if (isNaN( parseFloat(invoer) ) ) {
invoer =0;
}
else {
invoer=parseFloat(invoer)
}
dit.formatted(parseFloat(invoer).format(2,3,'.',','));
if (invoer <= 0) dit.formatted('');
dit.bedrag(invoer);
$.post("index.php/monfin2/bestemmingen/updatebudget", sd);
}
},
invoer = Math.round(invoer * 100) ;
var sd = {id : dit.finbestemmingID,
bedrag : invoer}
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd);
},
fToggle: function(wat){
switch(wat){
@@ -160,6 +431,13 @@ ls.initBestemmingenModel = function(){
};// switch
},
fToelichting: function(){
apprise('<p>In de regel <span style="font-style:italic; ">budget</span> geeft het eerste getal de som van het budget weer als percentage van het toaal gebudgetteerde bedrag.</p>' +
'<p>Het tweede getal is de som ban het budget als percentage van het totaal toegewezen budget.</p>' +
'<p>In de regel <span style="font-style:italic; ">uitgave</span> wordt de som van de uitgave weergegeven als percentage van de totale uitgaven.</p>')
},
fSaveOpmerking: function(){
var self= ls.BestemmingenModel;
if (self.jaarclosed()) return;
@@ -175,51 +453,52 @@ ls.initBestemmingenModel = function(){
}
} ; // definition van model
ls.BestemmingenModel.totaalbasis = ko.computed(function(){
var som =0;
var invoer = 0;
if (this.basissoorten()) {
$.each(this.basissoorten(), function(i,p){
if (p.subsoorten()) {
$.each(p.subsoorten(), function(a,b){
$.each(b.uitgavetypes(), function(o,s){
invoer=String(s.bedrag());
invoer= invoer.replace(',' , '');
if (! isNaN(invoer) ) {
invoer=parseFloat(invoer)
invoer = Math.round(invoer * 100) / 100;
som = som + invoer;
}
}); // each uitgavetypes
}); // each subsoorten
} // if subsoorten
}) // each soorten
} // if basissoorten
return som.format(2,3,'.',',');
},ls.BestemmingenModel);
// ls.BestemmingenModel.totaalbasis = ko.computed(function(){
// var som =0;
// var invoer = 0;
// if (this.basissoorten()) {
// $.each(this.basissoorten(), function(i,p){
// if (p.subsoorten()) {
// $.each(p.subsoorten(), function(a,b){
// $.each(b.uitgavetypes(), function(o,s){
// invoer=String(s.bedrag());
// invoer= invoer.replace(',' , '');
// if (! isNaN(invoer) ) {
// invoer=parseFloat(invoer)
// invoer = Math.round(invoer * 100) / 100;
// som = som + invoer;
// }
// }); // each uitgavetypes
//
// }); // each subsoorten
// } // if subsoorten
// }) // each soorten
// } // if basissoorten
// return som.format(2,3,'.',',');
// },ls.BestemmingenModel);
ls.BestemmingenModel.totaalextra = ko.computed(function(){
var som =0;
var invoer = 0;
if (this.extrasoorten()) {
$.each(this.extrasoorten(), function(i,p){
if (p.subsoorten()) {
$.each(p.subsoorten(), function(a,b){
$.each(b.uitgavetypes(), function(o,s){
invoer=String(s.bedrag());
invoer= invoer.replace(',' , '');
if (! isNaN(invoer) ) {
invoer=parseFloat(invoer)
invoer = Math.round(invoer * 100) / 100;
som = som + invoer;
}
}); // each uitgavetypes
}); // each subsoorten
} // if subsoorten
}) // each soorten
} // if basissoorten
return som.format(2,3,'.',',');
},ls.BestemmingenModel);
// ls.BestemmingenModel.totaalextra = ko.computed(function(){
// var som =0;
// var invoer = 0;
// if (this.extrasoorten()) {
// $.each(this.extrasoorten(), function(i,p){
// if (p.subsoorten()) {
// $.each(p.subsoorten(), function(a,b){
// $.each(b.uitgavetypes(), function(o,s){
// invoer=String(s.bedrag());
// invoer= invoer.replace(',' , '');
// if (! isNaN(invoer) ) {
// invoer=parseFloat(invoer)
// invoer = Math.round(invoer * 100) / 100;
// som = som + invoer;
// }
// }); // each uitgavetypes
// }); // each subsoorten
// } // if subsoorten
// }) // each soorten
// } // if basissoorten
// return som.format(2,3,'.',',');
// },ls.BestemmingenModel);
ls.BestemmingenModel.initBindings();
}; // else
@@ -57,21 +57,22 @@ ls.initMonfinOverzicht2Model = function(){
subTot : ko.observable(),
grandTot : ko.observable(),
//schoolbedragen : ko.observableArray([]),
schooltotaal : ko.observable(''),
kalenderjaren : ko.observableArray(),
selectedKalenderjaar : ko.observable(),
zelfjanee : ko.observable('1'),
schooltotaal : ko.observable(''),
kalenderjaren : ko.observableArray(),
selectedKalenderjaar : ko.observable(),
zelfjanee : ko.observable('1'),
opmerking : ko.observable(),
uitgavetypes : ko.observableArray(),
basis : ko.observableArray(),
extra : ko.observableArray(),
basis : ko.observableArray(),
extra : ko.observableArray(),
sombasisperuitgavetype : ko.observableArray(),
somextraperuitgavetype : ko.observableArray(),
somextraperuitgavetype : ko.observableArray(),
totsomperuitgavetype : ko.observableArray(),
basisgeopend : ko.observable(false),
extrageopend : ko.observable(false),
budgetten : ko.observableArray(),
budgetten : ko.observableArray(),
selectedSubsoort : ko.observable(),
initBindings :function(){
var self = ls.MonfinOverzicht2Model;
@@ -106,6 +107,7 @@ ls.initMonfinOverzicht2Model = function(){
var self = ls.MonfinOverzicht2Model;
if (!self.selectedOrg() || !self.selectedKalenderjaar()) return;
if (self.selectedOrg().soort == 4) { self.zelfjanee('1');};
if (self.zelfjanee()==1 || self.selectedOrg().soort==4){
var sd={orgid : self.selectedOrg().id,
@@ -187,6 +189,31 @@ ls.initMonfinOverzicht2Model = function(){
case "EXTRA" : self.extrageopend(! self.extrageopend()); break;
}
},
fToelichting: function(waarop){
var self = ls.MonfinOverzicht2Model;
var message = '';
switch(waarop){
case 'KOSTEN' : message = 'Uitgaven afgerond op hele euros.';
break;
case 'SOM' : message = 'Totale uitgaven afgerond op hele euros.';
break;
case '%BUDGET' : message = 'Uitgaven als percentage van het totale toegewezen budget.';
break;
case '%UITGAVEN' : message = 'Uitgaven als percentage van de totale uitgaven.';
break;
case 'BUDGET' : message = 'Budget afgerond op hele euros. Klik op i in de regel voor een uitsplitsing van het budget.';
break;
case '%GEBUDGET': message ='Budget als percentage van het totaal gebudgetteerde bedrag.';
break;
case '%BUDGET2' : message='Budget als percentage van het totaal toegewezen budget.';
break;
case 'VERSCHIL' : message = 'Het verschil tussen het toegewezen budget en de uitgaven afgerond op hele euros.';
}
apprise(message);
},
fToggleOrg :function(){
this.geopend(!this.geopend());
},
@@ -195,6 +222,39 @@ ls.initMonfinOverzicht2Model = function(){
self.selectedOrg(this);
self.fGetBedragen()
},
fOpenDetails: function(niveau){
var self = ls.MonfinOverzicht2Model;
self.selectedSubsoort('');
switch(niveau){
case 'BASIS' : self.selectedSubsoort(
{'naam' : 'Basisondersteuning gebudgetteerd',
'uitgavetypes' : self.sombasisperuitgavetype()
});
break;
case 'DETAIL': self.selectedSubsoort(this);
break;
case 'EXTRA': self.selectedSubsoort(
{'naam' : 'Extra ondersteuning gebudgetteerd',
'uitgavetypes' : self.totsomperuitgavetype()
});
break;
case 'TOTAAL': self.selectedSubsoort(
{'naam' : 'Totaal gebudgetteerd',
'uitgavetypes' : self.totsomperuitgavetype()
});
break;
}
$("#modFindetails").modal('show');
},
fShowComment: function(){
var self = ls.MonfinOverzicht2Model;
apprise('Het eerste getal is het percentage van de gebudgetteerde interventie ten opzichte van het totaal gebedugetteerde bedrag. ' +
'Het tweede getal is het percentage van de gebudgetteerde interventie ten opzichte van het toegewezen budget.');
},
} ; // definition van model
ls.MonfinOverzicht2Model.initBindings();
}; // elses