tussenopslag
This commit is contained in:
@@ -90,6 +90,8 @@ class Bestemmingen extends MY_Controller{
|
||||
if ($targetjaar == $bestemmingjaar){
|
||||
$this->Finbestemmingen_model->update_record(['bedrag'=>$this->clean_input('bedrag')], $bestemmingID);
|
||||
}
|
||||
$record = $this->Finbestemmingen_model->get_record_by_id($bestemmingID);
|
||||
json_encode(['record'=>$record]);
|
||||
}
|
||||
|
||||
function updatebudget(){
|
||||
|
||||
@@ -35,6 +35,9 @@ class Finbestemmingen_model extends MY_Model{
|
||||
WHERE finsoort_id = {$soortID}";
|
||||
return $this->get_query_result();
|
||||
}
|
||||
|
||||
|
||||
|
||||
function get_overig_subsoorten($soortID,$orgID){
|
||||
$this->sql = "SELECT id as subsoortID,
|
||||
omschrijving as naam
|
||||
@@ -58,13 +61,31 @@ class Finbestemmingen_model extends MY_Model{
|
||||
foreach($soorten as $soort){
|
||||
$soort->subsoorten = $this->get_subsoorten($soort->soortID);
|
||||
if ($soort->subsoorten){
|
||||
foreach($soort->subsoorten as $subsoort){
|
||||
foreach($soort->subsoorten as $index =>$subsoort){
|
||||
// haal per uitgavetypes de bedragen op
|
||||
if ($uitgavetypes) {
|
||||
$restant = 0;
|
||||
$restantbudget = 0;
|
||||
foreach ($uitgavetypes as $uitgavetype) {
|
||||
|
||||
$subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr, $subsoort->subsoortID, $uitgavetype->code);
|
||||
}
|
||||
if (count($subsoort->uitgavetypes) > 0) {
|
||||
$restant = number_format(0, 2);
|
||||
$restantbudget = floatval(str_replace(',' , '' , $subsoort->uitgavetypes[0]->budget)) -
|
||||
floatval(str_replace(',' , '' , $subsoort->uitgavetypes[1]->budget)) -
|
||||
floatval(str_replace(',' , '' , $subsoort->uitgavetypes[2]->budget)) -
|
||||
floatval(str_replace(',' , '' , $subsoort->uitgavetypes[3]->budget));
|
||||
$restantbudget = number_format($restantbudget, 2);
|
||||
}
|
||||
$subsoort->uitgavetypes[] = [
|
||||
'id' => '0',
|
||||
'bedrag' => $restant,
|
||||
'budget' => $restantbudget,
|
||||
'code' => 'RESTANT',
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
}// if subsoorten
|
||||
}
|
||||
|
||||
@@ -23,88 +23,100 @@
|
||||
Basisondersteuning
|
||||
</h4>
|
||||
<div data-bind="visible: basisgeopend()">
|
||||
<table class="lstable" style="width : 100%; font-size:0.9em">
|
||||
<thead>
|
||||
<table class="lstable" style="width : 100%; font-size:0.9em; position: relative">
|
||||
<thead style="position: sticky; top: 0" >
|
||||
<tr>
|
||||
<th style="width:25%"></th>
|
||||
<th style="width:29%"></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>
|
||||
<!-- <th style="width:7%"></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>
|
||||
<tbody data-bind="foreach: basissoorten">
|
||||
<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>
|
||||
<tr class="blokheader" >
|
||||
<th colspan="2" style="background-color: #968026; border: none; " >
|
||||
</th>
|
||||
<!-- ko foreach: uitgavetypes -->
|
||||
<th style="text-align:right; padding-right: 5px; background-color: #968026;" data-bind="style: {'borderRight' : code == 'TOTAAL' ? '2px solid #ffffff' : 'none' } ">
|
||||
<span data-bind="text: code == 'TOTAAL' ? code : code == 'SCHOLING' ? 'SUBTOTALEN' : ' ' "></span>
|
||||
</th>
|
||||
<!-- /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>
|
||||
<th class="blokheader"
|
||||
style="text-align: right;
|
||||
padding-right: 5px;
|
||||
padding-bottom: 5px;
|
||||
background-color: #968026;
|
||||
border-left: 2px solid #ffffff;
|
||||
border-right: 2px solid #ffffff;">
|
||||
<span >Restant
|
||||
</span>
|
||||
</th>
|
||||
<th class="blokheader" style="text-align: right; padding-right:5px; padding-bottom: 5px; background-color: #968026;">
|
||||
<span>Percentage</span>
|
||||
<i class="fa fa-info-circle"
|
||||
data-bind="click: $parent.fToelichting,
|
||||
visible: $index() ==0">
|
||||
data-bind="click: fToelichting
|
||||
">
|
||||
</i>
|
||||
</td>
|
||||
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="blokheader2" style=" text-align:left; padding-left:5px; ">
|
||||
<th colspan="2" style="background-color: #968026; border: none;">
|
||||
</th>
|
||||
|
||||
<!-- ko foreach: $root.uitgavetypes -->
|
||||
<th style="text-align:right; border-right: 2px solid #ffffff; background-color: #968026;padding-right: 5px;"
|
||||
data-bind="style: {'borderTop' : code != 'TOTAAL' ? '2px solid #ffffff' : 'none', }">
|
||||
<span data-bind="text: code != 'TOTAAL' ? code : ' ' ">
|
||||
</span>
|
||||
</th>
|
||||
<!-- /ko -->
|
||||
|
||||
<th class="blokheader2" style="border-right: 2px solid #ffffff; border-top: none; background-color: #968026;">
|
||||
</th>
|
||||
<th class="blokheader2" style="background-color: #968026; border-top: none;">
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
|
||||
<tbody data-bind="foreach: basissoorten">
|
||||
|
||||
<tr class="blokheader">
|
||||
<td class="blokheader" colspan="8" data-bind="text: naam" style="text-align: left; border: 2px solid #ffffff"></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; padding-top: 1px; vertical-align: top ">
|
||||
<!-- ko if : code != 'RESTANT' -->
|
||||
|
||||
<input class="decimal"
|
||||
style="width: 145px; max-width: 98%; background-color: #e6ffee"
|
||||
style="width: 145px; max-width: 98%; background-color: #e6ffee; font-size: 0.9em"
|
||||
data-bind="textInput: budgetFormat,
|
||||
event:{change:$root.fSaveBudget.bind($data, $parent.subsoortID, 'BASIS') } ,
|
||||
enable: ! $root.jaarclosed()"
|
||||
enable: ! $root.jaarclosed() && (code == 'TOTAAL' || Number($parent.uitgavetypes()[0].budget()) > 0),
|
||||
style : {'backgroundColor' : code == 'TOTAAL' ? '#e6ffee' : Number($parent.uitgavetypes()[0].budget()) > 0 ? '#e6ffee' : '#cccccc' } "
|
||||
/>
|
||||
</td>
|
||||
<!-- /ko -->
|
||||
<!-- /ko -->
|
||||
<td style="padding: 0; padding-top: 1px; padding-left: 4px; vertical-align: top">
|
||||
<div style="width:145px; max-width: 98%; 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()">
|
||||
<!-- ko if : code == 'RESTANT' -->
|
||||
<span class="decimal"
|
||||
style="width: 145px; max-width: 98%; font-size: 0.9em; color: #008028"
|
||||
data-bind="text: budgetFormat" >
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- /ko -->
|
||||
</td>
|
||||
<!-- <td style="padding: 0; padding-top: 1px; vertical-align: top">-->
|
||||
<!-- <div style="width:72px; max-width: 98%;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(): '',-->
|
||||
<!-- visible: ! $root.jaarclosed()">-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </td>-->
|
||||
<!-- /ko -->
|
||||
<td style="padding: 0; padding-top: 1px; vertical-align: top">
|
||||
<div style="width: 98%;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;
|
||||
<div style="width: 98%;height: 24px;
|
||||
font-size: 0.9em; font-family: sans-serif, verdana; padding-left: 2px; padding-top: 2px; color: #008028;
|
||||
padding-bottom: 2px; margin: 0; text-align: right; padding-right: 3px;">
|
||||
<span data-bind="text: subbudgetform() != '' ? budgetprocent() : ' ' ,
|
||||
<span data-bind="text: budgetpctFormat() ,
|
||||
visible: ! $root.jaarclosed() ">
|
||||
</span>
|
||||
</div>
|
||||
@@ -114,47 +126,38 @@
|
||||
<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;">
|
||||
<!-- ko if: code != 'RESTANT' && code != 'TOTAAL'-->
|
||||
<input class="decimal"
|
||||
style="width: 145px; max-width:98%; background-color: #e6f2ff"
|
||||
data-bind="textInput: formatted,
|
||||
style: { color : budget() < bedrag() ? '#ff0000' : '#000000'},
|
||||
data-bind="textInput: bedragFormat,
|
||||
style: { color : Number(budget()) < Number(bedrag()) ? '#ff0000' : '#000000' },
|
||||
event: {change:$root.fSaveBedrag.bind($data, $parent.subsoortID, 'BASIS' )} ,
|
||||
enable: ! $root.jaarclosed()" />
|
||||
</td>
|
||||
<!-- /ko -->
|
||||
<!-- /ko -->
|
||||
<td style="padding: 0; padding-left: 4px; vertical-align: top">
|
||||
<div style="width:145px; max-width: 98%; 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: 2px; ">
|
||||
<span data-bind="text: formtotaal,
|
||||
style: { color : subbudget() < totaal() ? '#ff0000' : '#000000'},
|
||||
visible: ! $root.jaarclosed()">
|
||||
<!-- ko if: code == 'RESTANT' || code == 'TOTAAL'-->
|
||||
<span class="decimal"
|
||||
style="width: 145px; max-width:98%"
|
||||
data-bind="text: bedragFormat,
|
||||
style: { color : Number(budget()) < Number(bedrag()) ? '#ff0000' : '#000000',
|
||||
fontSize : code == 'TOTAAL' ? 'small' : 'normal' },
|
||||
">
|
||||
</span>
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
</td>
|
||||
<!-- /ko -->
|
||||
|
||||
<td style="padding: 0; vertical-align: top">
|
||||
<div style="width: 98%;height: 24px; background-color: #e6f2ff; border-radius: 3px;border: 1px solid #a07b8e;
|
||||
<div style="width: 98%;height: 24px; color:#003e80;
|
||||
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: procent,
|
||||
<span data-bind="text: bedragpctFormat,
|
||||
visible: ! $root.jaarclosed()">
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<!-- <td style="padding: 0; vertical-align: top">-->
|
||||
<!-- <div style="width:72px; max-width: 98%;height: 24px; background-color: #e6f2ff; 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: totaalbudgetprocent,-->
|
||||
<!-- visible: ! $root.jaarclosed()">-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </td>-->
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
<!-- /ko -->
|
||||
</tbody> <!-- FOREACH basissoorten -->
|
||||
</table>
|
||||
@@ -187,89 +190,92 @@
|
||||
Extra ondersteuning
|
||||
</h4>
|
||||
<div data-bind="visible: extrageopend()">
|
||||
<table class="lstable" style="width : 100%; font-size:0.9em">
|
||||
<thead>
|
||||
<table class="lstable" style="width : 100%; font-size:0.9em; position: relative;">
|
||||
<thead style="position: sticky; top: 100px;">
|
||||
<tr>
|
||||
<th style="width:25%"></th>
|
||||
<th style="width:29%"></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>
|
||||
<!-- <th style="width:7%"></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>
|
||||
<tr class="blokheader" style=" text-align:left; padding-left:5px; ">
|
||||
<th colspan='2' style=" background-color: #968026; border: none ">
|
||||
</th>
|
||||
|
||||
<!-- ko foreach: uitgavetypes -->
|
||||
<th style="text-align:right; background-color: #968026; padding-right: 5px;" data-bind="style: {'borderRight' : code == 'TOTAAL' ? '2px solid #ffffff' : 'none' } ">
|
||||
<span data-bind="text: code == 'TOTAAL' ? code : code == 'SCHOLING' ? 'SUBTOTALEN' : ' ' "></span>
|
||||
</th>
|
||||
<!-- /ko -->
|
||||
<th class="blokheader"
|
||||
style="text-align: right;
|
||||
padding-right: 5px;
|
||||
padding-bottom: 5px;
|
||||
background-color: #968026;
|
||||
border-left: 2px solid #ffffff;
|
||||
border-right: 2px solid #ffffff;">
|
||||
Restant
|
||||
</th>
|
||||
<th class="blokheader" style="text-align: right; padding-right:5px; padding-bottom: 5px; background-color: #968026">
|
||||
<span >Percentage</span>
|
||||
<i class="fa fa-info-circle"
|
||||
data-bind="click: fToelichting">
|
||||
</i>
|
||||
</th>
|
||||
|
||||
</tr>
|
||||
<tr class="blokheader2" style=" text-align:left; padding-left:5px; ">
|
||||
<th colspan="2" style=" background-color: #968026; border: none;">
|
||||
</th>
|
||||
<!-- ko foreach: $root.uitgavetypes -->
|
||||
<th style="text-align:right; border-right: 2px solid #ffffff; background-color: #968026; padding-right: 5px;"
|
||||
data-bind="style: {'borderTop' : code != 'TOTAAL' ? '2px solid #ffffff' : 'none', }" >
|
||||
<span data-bind="text: code != 'TOTAAL' ? code : ' ' "></span>
|
||||
</th>
|
||||
<!-- /ko -->
|
||||
<th class="blokheader2" style="border-right: 2px solid #ffffff; background-color: background-color: #968026; border-top: none;">
|
||||
</th>
|
||||
<th class="blokheader2" style="background-color: background-color: #968026; border-top: none;">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody data-bind="foreach: extrasoorten">
|
||||
<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 class="blokheader">
|
||||
<td class="blokheader" colspan="8" data-bind="text: naam" style="text-align: left; border: 2px solid #ffffff"></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; padding-top: 1px; vertical-align: top ">
|
||||
<!-- ko if : code != 'RESTANT' -->
|
||||
|
||||
<input class="decimal"
|
||||
style="width: 145px; max-width: 98%; 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; padding-left: 4px; vertical-align: top">
|
||||
<div style="width:145px; max-width: 98%; 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()">
|
||||
<!-- ko if : code == 'RESTANT' -->
|
||||
<span class="decimal"
|
||||
data-bind="text: budget" >
|
||||
</span>
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
</td>
|
||||
<!-- <td style="padding: 0; padding-top: 1px; vertical-align: top">-->
|
||||
<!-- <div style="width:72px; max-width: 98%;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(): '',-->
|
||||
<!-- visible: ! $root.jaarclosed()">-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </td>-->
|
||||
<!-- /ko -->
|
||||
<td style="padding: 0; padding-top: 1px; vertical-align: top">
|
||||
<div style="width: 98%;height: 24px; background-color: #e6ffee; border-radius: 3px;border: 1px solid #a07b8e;
|
||||
<div style="width: 98%;height: 24px;
|
||||
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() != '' ? budgetprocent() : ' ' ,
|
||||
<span data-bind="text: budgetpctFormat() ,
|
||||
visible: ! $root.jaarclosed() ">
|
||||
</span>
|
||||
</div>
|
||||
@@ -279,47 +285,34 @@
|
||||
<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;">
|
||||
<td style="text-align: right; padding-top: 1px; vertical-align: top ">
|
||||
<!-- ko if: code != 'RESTANT' && code != 'TOTAAL'-->
|
||||
<input class="decimal"
|
||||
style="width: 145px; max-width:98%; background-color: #e6f2ff"
|
||||
data-bind="textInput: formatted,
|
||||
style: { color : budget() < bedrag() ? '#ff0000' : '#000000'},
|
||||
data-bind="textInput: bedragFormat,
|
||||
style: { color : Number(budget()) < Number(bedrag()) ? '#ff0000' : '#000000'},
|
||||
event: {change:$root.fSaveBedrag.bind($data, $parent.subsoortID, 'BASIS' )} ,
|
||||
enable: ! $root.jaarclosed()" />
|
||||
</td>
|
||||
<!-- /ko -->
|
||||
<!-- /ko -->
|
||||
<td style="padding: 0; padding-left: 4px; vertical-align: top">
|
||||
<div style="width:145px; max-width: 98%; 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: 2px; ">
|
||||
<span data-bind="text: formtotaal,
|
||||
style: { color : subbudget() < totaal() ? '#ff0000' : '#000000'},
|
||||
visible: ! $root.jaarclosed()">
|
||||
<!-- ko if: code == 'RESTANT' || code == 'TOTAAL'-->
|
||||
<span class="decimal"
|
||||
data-bind="text: bedragFormat,
|
||||
style: { color : Number(budget()) < Number(bedrag()) ? '#ff0000' : '#000000'}" >
|
||||
</span>
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
</td>
|
||||
<!-- /ko -->
|
||||
<td style="padding: 0; vertical-align: top">
|
||||
<div style="width: 98%;height: 24px; background-color: #e6f2ff; border-radius: 3px;border: 1px solid #a07b8e;
|
||||
<div style="width: 98%;height: 24px;
|
||||
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: procent,
|
||||
<span data-bind="text: bedragpctFormat,
|
||||
visible: ! $root.jaarclosed()">
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<!-- <td style="padding: 0; vertical-align: top">-->
|
||||
<!-- <div style="width:72px; max-width: 98%;height: 24px; background-color: #e6f2ff; 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: totaalbudgetprocent,-->
|
||||
<!-- visible: ! $root.jaarclosed()">-->
|
||||
<!-- </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </td>-->
|
||||
</tr>
|
||||
|
||||
|
||||
<!-- /ko -->
|
||||
</tbody>
|
||||
<!-- FOREACH extrasoorten -->
|
||||
@@ -351,9 +344,7 @@
|
||||
<p style="margin-top:20px">Opmerkingen</p>
|
||||
<textarea style="width:100%"
|
||||
data-bind="textInput: opmerking, event:{input: fSaveOpmerking}"></textarea>
|
||||
|
||||
</div> <!-- als onderscheid tussen basis en extra is gemaakt bij budgetten, maar dat moet vanaf nu-->
|
||||
</div> <!-- col sm 12 als jaartoewijzing-->
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@@ -112,6 +112,19 @@ a.email:before {
|
||||
padding-top: 5px;
|
||||
margin-top:2px;
|
||||
}
|
||||
|
||||
.blokheader2{
|
||||
border-radius:3px;
|
||||
text-transform:lowercase;
|
||||
background-color:#968026;
|
||||
width:99%;
|
||||
height:15px;
|
||||
text-align:center;
|
||||
margin-left:0.5%;
|
||||
color:#ffffff;
|
||||
padding-top: 5px;
|
||||
margin-top:2px;
|
||||
}
|
||||
.bloksubheader{
|
||||
float:left;
|
||||
font-size:0.8em;
|
||||
|
||||
@@ -7,108 +7,92 @@ ls.initBestemmingenModel = function(){
|
||||
this.naam = p.naam;
|
||||
}
|
||||
|
||||
function fAddBasissoort(j,k, budget, totbudget, bedrag ){
|
||||
function fAddBasissoort(j,k, 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(a, b, budget, totbudget, bedrag, k.categorie));
|
||||
dit.subsoorten.push(new fAddSubsoort(a, b, totbudget, bedrag, k.categorie));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function fAddSubsoort(a,b,gebudget, totbudget, totbedrag, categorie){
|
||||
function fAddSubsoort(a,b, 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 centbedrag = 0;
|
||||
this.subsoortID = b.subsoortID;
|
||||
this.naam = b.naam;
|
||||
this.categorie = categorie
|
||||
this.uitgavetypes = ko.observableArray();
|
||||
this.totaal = ko.observable(0);
|
||||
this.formtotaal = ko.observable('');
|
||||
this.procent = ko.observable(0);
|
||||
this.totaalbudgetprocent = ko.observable('');
|
||||
this.subbudget = ko.observable(0);
|
||||
this.subbudgetReserve = ko.observable(0);
|
||||
this.subbudgetform = ko.observable('');
|
||||
this.subbudgetformReserve = ko.observable('');
|
||||
this.budgetprocent = ko.observable(0);
|
||||
this.gebudgetprocent = ko.observable(0);
|
||||
this.categorie = categorie;
|
||||
this.bedragpct = ko.observable(0);
|
||||
this.bedragpctFormat = ko.observable('');
|
||||
this.budgetpct = ko.observable(0);
|
||||
this.budgetpctFormat = ko.observable('');
|
||||
this.uitgavetypes = ko.observableArray([]);
|
||||
var subbudget = 0;
|
||||
var subbedrag = 0;
|
||||
|
||||
|
||||
if (b.uitgavetypes) {
|
||||
subbudget = b.uitgavetypes[0].budget;
|
||||
subbedrag = b.uitgavetypes[0].bedrag;
|
||||
|
||||
$.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.subbudgetReserve(budget);
|
||||
dit.subbudgetform(parseFloat(budget) === 0 ? '' : parseFloat(budget).format(2, 3, '.', ','));
|
||||
dit.subbudgetformReserve(parseFloat(budget) === 0 ? '' : parseFloat(budget).format(2, 3, '.', ','));
|
||||
|
||||
centbudget = dit.subbudgetform();
|
||||
centbudget = centbudget.replace(/[.| ,]/g, '');
|
||||
uitgaven = dit.formtotaal();
|
||||
uitgaven = uitgaven.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 + '%' : '');
|
||||
var budgetbedragpct = ((Number(uitgaven) / Number(budgettot)) * 100).toFixed(1)
|
||||
budgetbedragpct = budgetbedragpct.replace('.', ',')
|
||||
dit.totaalbudgetprocent(Number(budgettot) > 0 && Number(centbudget) > 0 ? budgetbedragpct + '%' : '');
|
||||
}
|
||||
else{
|
||||
dit.budgetprocent('');
|
||||
dit.totaalbudgetprocent('');
|
||||
if ( Number(totbudget) > 0) {
|
||||
if(Number(subbudget) > 0) subbudget = subbudget.replace(/[.| ,]/g, '');
|
||||
var budgettot = totbudget.replace(/[.| ,]/g, '');
|
||||
var budgetpct = Number(subbudget) / Number(budgettot)
|
||||
budgetpct = budgetpct * 100
|
||||
budgetpct = budgetpct.toFixed(1);
|
||||
dit.budgetpct(budgetpct);
|
||||
var format = budgetpct.replace('.', ',') + '%'
|
||||
dit.budgetpctFormat(Number(budgetpct) > 0 ? format : '' );
|
||||
}
|
||||
|
||||
if (gebudget) {
|
||||
budgettot2 = gebudget.replace(/[.| ,]/g, '');
|
||||
var budgetpct2 = ((Number(centbudget) / Number(budgettot2)) * 100).toFixed(1)
|
||||
budgetpct2 = budgetpct2.replace('.', ',')
|
||||
dit.gebudgetprocent(budgettot2 > 0 ? budgetpct2 + '%' : '')
|
||||
}
|
||||
else dit.gebudgetprocent('');
|
||||
|
||||
|
||||
if(totbedrag) {
|
||||
bedragtot = totbedrag.replace(/[.| ,]/g, '');
|
||||
|
||||
|
||||
var uitgavenF = ((Number(uitgaven) / Number(bedragtot)) * 100).toFixed(1)
|
||||
dit.procent(Number(uitgaven) > 0 ? uitgavenF + '%' : '')
|
||||
}
|
||||
else dit.procent('');
|
||||
|
||||
if( Number(totbedrag) > 0) {
|
||||
if(Number(subbedrag) > 0) subbedrag = subbedrag.replace(/[.| ,]/g, '')
|
||||
var bedragtot = totbedrag.replace(/[.| ,]/g, '');
|
||||
var bedragpct = Number(subbedrag) / Number(bedragtot);
|
||||
bedragpct = bedragpct * 100;
|
||||
bedragpct = bedragpct.toFixed(1);
|
||||
dit.bedragpct(bedragpct);
|
||||
var format2 = bedragpct.replace('.', ',') + '%';
|
||||
dit.bedragpctFormat(Number(bedragpct) > 0 ? format2 : '' );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function fAddUitgavetype(k){
|
||||
this.finbestemmingID = k.id
|
||||
this.code = k.code
|
||||
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');
|
||||
this.finbestemmingID = k.id;
|
||||
this.code = k.code;
|
||||
this.bedrag = ko.observable(0);
|
||||
this.bedragFormat = ko.observable('');
|
||||
this.budget = ko.observable(0);
|
||||
this.budgetFormat = ko.observable('');
|
||||
if(k.bedrag && Number(k.bedrag) !== 0) {
|
||||
var bedrag = Math.round(k.bedrag.replace(/[.| ,]/g, '') / 100).toFixed(2);
|
||||
this.bedrag(bedrag);
|
||||
bedrag = Number(bedrag).format(2,3,'.',',');
|
||||
this.bedragFormat(bedrag);
|
||||
}
|
||||
|
||||
if(k.budget && Number(k.budget) !== 0) {
|
||||
var budget = Math.round(k.budget.replace(/[.| ,]/g, '') / 100).toFixed(2);
|
||||
this.budget(budget);
|
||||
budget = Number(budget).format(2,3,'.',',');
|
||||
this.budgetFormat = ko.observable(budget);
|
||||
}
|
||||
if(Number(this.bedrag) > Number(this.budget())) this.bedragKleur('red');
|
||||
if( Number(this.bedrag()) < 0) this.bedragKleur('red');
|
||||
if(Number(this.budget())< 0) this.budgetKleur('red')
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -186,22 +170,91 @@ ls.initBestemmingenModel = function(){
|
||||
$.post("index.php/monfin2/bestemmingen/getBestemmingen ", sd, function(data) {
|
||||
if (data.jaartoewijzing) {
|
||||
self.jaartoewijzing(data.jaartoewijzing);
|
||||
} else {
|
||||
self.jaartoewijzing(false);
|
||||
}
|
||||
else {self.jaartoewijzing(false);}
|
||||
self.jaarclosed(data.jaarclosed);
|
||||
self.fUpdateSubbedragen(function (){self.fGetUpdatedBestemmingen()}, data);
|
||||
},'json')
|
||||
},
|
||||
fUpdateSubbedragen: function(callback, data) {
|
||||
var self = ls.BestemmingenModel;
|
||||
self.bezig(true);
|
||||
if (data.basisbestemmingen) {
|
||||
$.each(data.basisbestemmingen, function (i, b) {
|
||||
$.each(b.subsoorten, function (x, s) {
|
||||
if (s.uitgavetypes) {
|
||||
var subtotaal = Number(s.uitgavetypes[1].bedrag) + Number(s.uitgavetypes[2].bedrag) + Number(s.uitgavetypes[3].bedrag);
|
||||
subtotaal = subtotaal.format(2, 3, '.', ',');
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '')
|
||||
|
||||
var id = s.uitgavetypes[0].id;
|
||||
|
||||
var sd = {
|
||||
'id': id,
|
||||
'bedrag': subtotaal,
|
||||
}
|
||||
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd, function(data){
|
||||
|
||||
}, 'json');
|
||||
}
|
||||
})
|
||||
if(i=== data.basisbestemmingen.length -1 ) self.bezig(false);
|
||||
})
|
||||
}
|
||||
if (data.extrabestemmingen) {
|
||||
$.each(data.extrabestemmingen, function (i, b) {
|
||||
$.each(b.subsoorten, function (x, s) {
|
||||
if (s.uitgavetypes) {
|
||||
var subtotaal = Number(s.uitgavetypes[1].bedrag) + Number(s.uitgavetypes[2].bedrag) + Number(s.uitgavetypes[3].bedrag);
|
||||
subtotaal = subtotaal.format(2, 3, '.', ',');
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '')
|
||||
var id = s.uitgavetypes[0].id;
|
||||
|
||||
var sd = {
|
||||
'id': id,
|
||||
'bedrag': subtotaal,
|
||||
}
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd, function(data){
|
||||
|
||||
}, 'json');
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
if(! self.bezig()) if (typeof callback == "function") callback()
|
||||
},
|
||||
|
||||
|
||||
fGetUpdatedBestemmingen(){
|
||||
var self = ls.BestemmingenModel;
|
||||
var budget = 0;
|
||||
var bedrag = 0;
|
||||
var totbudget = self.jaartoewijzing().basis
|
||||
totbudget = totbudget.replace(/[.| ,]/g, '');
|
||||
var totbasispct = '';
|
||||
var gebudgetbasispct = '';
|
||||
|
||||
var sd ={jaarnr:self.selectedKalenderjaar().jaarnr}
|
||||
|
||||
$.post("index.php/monfin2/bestemmingen/getBestemmingen ", sd, function(data) {
|
||||
|
||||
|
||||
if (data.basisbestemmingen){
|
||||
$.each(data.basisbestemmingen, function(i, b){
|
||||
$.each(b.subsoorten, function(x, s) {
|
||||
if (s.uitgavetypes) {
|
||||
|
||||
|
||||
$.each(s.uitgavetypes, function (z, t) {
|
||||
if (t.code == 'TOTAAL') {
|
||||
budget += Number(t.budget);
|
||||
bedrag += Number(t.bedrag);
|
||||
}
|
||||
})
|
||||
}
|
||||
} )
|
||||
})
|
||||
if(Number(totbudget) > 0) {
|
||||
@@ -224,8 +277,10 @@ ls.initBestemmingenModel = function(){
|
||||
bedrag = self.fSetTotalValue(bedrag);
|
||||
self.totaalbasis(bedrag);
|
||||
|
||||
bedrag = bedrag.replace(/[.|,]/g, '');
|
||||
|
||||
$.each(data.basisbestemmingen,function(j,k){
|
||||
self.basissoorten.push(new fAddBasissoort(j,k, budget, totbudget, bedrag));
|
||||
self.basissoorten.push(new fAddBasissoort(j,k, totbudget, bedrag));
|
||||
});
|
||||
}
|
||||
budget = 0;
|
||||
@@ -237,8 +292,10 @@ ls.initBestemmingenModel = function(){
|
||||
$.each(data.extrabestemmingen, function(i, b){
|
||||
$.each(b.subsoorten, function(x, s){
|
||||
$.each(s.uitgavetypes, function(z, t){
|
||||
if(t.code == 'TOTAAL') {
|
||||
budget += Number(t.budget);
|
||||
bedrag += Number(t.bedrag);
|
||||
}
|
||||
} )
|
||||
} )
|
||||
})
|
||||
@@ -263,9 +320,10 @@ ls.initBestemmingenModel = function(){
|
||||
self.gebudgetextra(budget);
|
||||
bedrag = self.fSetTotalValue(bedrag);
|
||||
self.totaalextra(bedrag);
|
||||
bedrag = bedrag.replace(/[.|,]/g, '');
|
||||
|
||||
$.each(data.extrabestemmingen,function(j,k){
|
||||
self.extrasoorten.push(new fAddBasissoort(j, k, budget, totbudget, bedrag));
|
||||
self.extrasoorten.push(new fAddBasissoort(j, k, totbudget, bedrag));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -286,52 +344,58 @@ ls.initBestemmingenModel = function(){
|
||||
var self = ls.BestemmingenModel;
|
||||
if (self.jaarclosed()) return;
|
||||
var dit = this;
|
||||
|
||||
var subtotaal = 0;
|
||||
var subtotaalForm = '';
|
||||
var totuitgaven = 0;
|
||||
var totuitgavenForm = 0;
|
||||
var uitgavenpct = '0,0';
|
||||
var budgetpct = '';
|
||||
var subtotID = 0;
|
||||
var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, ''));
|
||||
|
||||
// update bedrag en bedragformat
|
||||
var invoer = dit.formatted();
|
||||
var invoer = dit.bedragFormat();
|
||||
|
||||
if ( ! invoer) invoer = '0'
|
||||
invoer = invoer.split('.').join('');
|
||||
|
||||
invoer= invoer.replace(',' , '.');
|
||||
|
||||
if (isNaN( parseFloat(invoer) ) ) invoer = 0;
|
||||
else invoer = parseFloat(invoer)
|
||||
|
||||
if(Number(invoer) > 0) dit.formatted(parseFloat(invoer).format(2, 3, '.', ','));
|
||||
else dit.formatted('');
|
||||
|
||||
if(Number(invoer) > 0) dit.bedragFormat(parseFloat(invoer).format(2, 3, '.', ','));
|
||||
else dit.bedragFormat('');
|
||||
|
||||
|
||||
|
||||
dit.bedrag(invoer);
|
||||
var code = dit.code;
|
||||
|
||||
// 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) {
|
||||
$.each(s.uitgavetypes(), function (z, k) {
|
||||
subtotaal = Number(subtotaal) + Number(k.bedrag());
|
||||
});
|
||||
subtotID = s.uitgavetypes()[0].finbestemmingID;
|
||||
|
||||
s.totaal(subtotaal);
|
||||
switch(code){
|
||||
case 'PERSONEEL' : s.uitgavetypes()[0].bedrag(invoer+Number(s.uitgavetypes()[2].bedrag()) +Number(s.uitgavetypes()[3].bedrag()));
|
||||
break;
|
||||
case 'MATRIEEL': s.uitgavetypes()[0].bedrag(Number(s.uitgavetypes()[1].bedrag()) +invoer +Number(s.uitgavetypes()[3].bedrag()));
|
||||
break;
|
||||
case 'SCHOLING':s.uitgavetypes()[0].bedrag(Number(s.uitgavetypes()[1].bedrag()) +Number(s.uitgavetypes()[2].bedrag()) +invoer);
|
||||
break;
|
||||
}
|
||||
//zonder nullen van centen
|
||||
if (Number(subtotaal) > 0) {
|
||||
subtotaalForm = Number(subtotaal).format(2, 3, '.', ',');
|
||||
s.formtotaal(subtotaalForm);
|
||||
if (Number(s.uitgavetypes()[0].bedrag()) > 0) {
|
||||
subtotaalForm = Number(s.uitgavetypes()[0].bedrag()).format(2, 3, '.', ',');
|
||||
s.uitgavetypes()[0].bedragFormat(subtotaalForm)
|
||||
}
|
||||
|
||||
if (Number(subtotaal) > 0) {
|
||||
subtotaal = subtotaalForm.replace(/[.| ,]/g, '');
|
||||
}
|
||||
//met extra nullen van centen
|
||||
}
|
||||
$.each(s.uitgavetypes(), function (z, k) {
|
||||
totuitgaven = Number(totuitgaven) + Number(k.bedrag());
|
||||
});
|
||||
}
|
||||
totuitgaven = Number(totuitgaven) + Number(s.uitgavetypes()[0].bedrag());
|
||||
|
||||
})
|
||||
})
|
||||
@@ -343,27 +407,25 @@ ls.initBestemmingenModel = function(){
|
||||
// update procenten en reserve totalen van subsoorten
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
$.each(b.subsoorten(), function(x, s){
|
||||
if (s.uitgavetypes()) {
|
||||
subtotaal = s.totaal();
|
||||
|
||||
if (s.uitgavetypes() && s.subsoortID === subsoortid) {
|
||||
subtotaal = Number(s.uitgavetypes()[0].bedrag());
|
||||
if (parseFloat(subtotaal) > 0) {
|
||||
subtotaal = parseFloat(subtotaal).format(2, 3, '.', ',');
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '');
|
||||
if (Number(totuitgaven) > 0) {
|
||||
uitgavenpct = ((Number(subtotaal) / Number(totuitgaven)) * 100).toFixed(1);
|
||||
uitgavenpct = uitgavenpct.replace('.', ',');
|
||||
s.procent(uitgavenpct + '%');
|
||||
budgetpct = ((Number(subtotaal) / Number(totaalbudget)) * 100).toFixed(1);
|
||||
budgetpct = budgetpct.replace('.', ',')
|
||||
s.totaalbudgetprocent(budgetpct + '%');
|
||||
}
|
||||
}
|
||||
else{
|
||||
s.procent('');
|
||||
s.totaalbudgetprocent('');
|
||||
}
|
||||
s.bedragpctFormat(uitgavenpct + '%');
|
||||
|
||||
} else {
|
||||
s.bedragpct(0);
|
||||
s.bedragpctFormat('')
|
||||
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
})
|
||||
})
|
||||
if(Number(totuitgaven) > 0) {
|
||||
@@ -383,6 +445,12 @@ ls.initBestemmingenModel = function(){
|
||||
'bedrag': invoer,
|
||||
}
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd);
|
||||
|
||||
var sd2 = {
|
||||
'id' : subtotID,
|
||||
'bedrag': subtotaal,
|
||||
}
|
||||
$.post("index.php/monfin2/bestemmingen/updatebedrag", sd2);
|
||||
},
|
||||
|
||||
|
||||
@@ -393,113 +461,141 @@ ls.initBestemmingenModel = function(){
|
||||
if (self.jaarclosed()) return;
|
||||
var dit = this;
|
||||
var budgetoud = dit.budget();
|
||||
var code = dit.code;
|
||||
var budgetoudForm = Number(dit.budget()) > 0 ? parseFloat(budgetoud).format(2, 3, '.', ',') : '';
|
||||
var subbudget = 0;
|
||||
var subbudgetForm = '';
|
||||
var totaalgebudget = 0;
|
||||
var totaalgebudgetForm = 0;
|
||||
var totaalgebudgetpct = 0;
|
||||
var budgetpct = '';
|
||||
var gebudgetpct = '';
|
||||
var totaalbudget = (soort === 'BASIS' ? self.jaartoewijzing().basis.replace(/[.| ,]/g, '') : self.jaartoewijzing().extra.replace(/[.| ,]/g, ''));
|
||||
var stuurMelding = true;
|
||||
var restantOud = 0;
|
||||
var restantOudForm = '';
|
||||
|
||||
// update budget en budgetformat
|
||||
var invoer = dit.budgetFormat();
|
||||
if ( ! invoer) invoer = '0'
|
||||
if ( ! invoer) invoer = '0';
|
||||
invoer = invoer.split('.').join('');
|
||||
invoer= invoer.replace(',' , '.');
|
||||
if (isNaN( parseFloat(invoer) ) ) invoer = 0;
|
||||
else invoer = parseFloat(invoer)
|
||||
|
||||
// update budget
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
$.each(b.subsoorten(), function(x, s){
|
||||
if (s.uitgavetypes()) {
|
||||
if (s.subsoortID === subsoortid) {
|
||||
switch(code){
|
||||
case 'TOTAAL' : subbudget = Number(s.uitgavetypes()[1].budget()) +Number(s.uitgavetypes()[2].budget()) + Number(s.uitgavetypes()[3].budget());
|
||||
if(invoer >= subbudget) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
}
|
||||
totaalgebudget +=invoer
|
||||
|
||||
break;
|
||||
case 'PERSONEEL': subbudget = invoer +Number(s.uitgavetypes()[2].budget()) + Number(s.uitgavetypes()[3].budget());
|
||||
if(Number(s.uitgavetypes()[0].budget()) >= subbudget) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
totaalgebudget+= Number(s.uitgavetypes()[0].budget())
|
||||
}
|
||||
break;
|
||||
case 'MATERIEEL': subbudget = Number(s.uitgavetypes()[1].budget()) + invoer+ Number(s.uitgavetypes()[3].budget());
|
||||
if(Number(s.uitgavetypes()[0].budget()) >= subbudget) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
totaalgebudget+= Number(s.uitgavetypes()[0].budget());
|
||||
}
|
||||
break;
|
||||
case 'SCHOLING': subbudget = Number(s.uitgavetypes()[1].budget()) + Number(s.uitgavetypes()[2].budget())+ invoer ;
|
||||
if(Number(s.uitgavetypes()[0].budget() >= subbudget)) {
|
||||
dit.budget(invoer);
|
||||
stuurMelding = false;
|
||||
totaalgebudget+= Number(s.uitgavetypes()[0].budget())
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
restantOud = s.uitgavetypes()[4].budget();
|
||||
restantOudForm = parseFloat(restantOud).format(2, 3, '.', ',');
|
||||
if(stuurMelding) {
|
||||
apprise('Het totaalbudget is kleiner dan de deelbudgetten.');
|
||||
dit.budgetFormat('');
|
||||
}
|
||||
else{
|
||||
|
||||
if(Number(invoer) > 0) dit.budgetFormat(parseFloat(invoer).format(2, 3, '.', ','));
|
||||
else dit.budgetFormat('');
|
||||
var restant = Number(s.uitgavetypes()[0].budget()) -subbudget;
|
||||
s.uitgavetypes()[4].budget(restant);
|
||||
if(restant > 0 ) s.uitgavetypes()[4].budgetFormat(parseFloat(restant).format(2, 3, '.', ','));
|
||||
|
||||
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) {
|
||||
$.each(s.uitgavetypes(), function (z, k) {
|
||||
subbudget = Number(subbudget) + Number(k.budget());
|
||||
});
|
||||
s.subbudget(subbudget);
|
||||
//zonder nullen van centen
|
||||
if (parseFloat(subbudget) > 0) {
|
||||
subbudgetForm = parseFloat(subbudget).format(2, 3, '.', ',');
|
||||
}
|
||||
s.subbudgetform(Number(subbudget) > 0 ? subbudgetForm : '');
|
||||
|
||||
if (Number(subbudget) > 0) {
|
||||
subbudget = subbudgetForm.replace(/[.| ,]/g, '');
|
||||
}
|
||||
//met extra nullen van centen
|
||||
}
|
||||
$.each(s.uitgavetypes(), function (z, k) {
|
||||
totaalgebudget = Number(totaalgebudget) + Number(k.budget());
|
||||
});
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
if (parseFloat(totaalgebudget) > 0) {
|
||||
totaalgebudgetForm = parseFloat(totaalgebudget).format(2, 3, '.', ',');
|
||||
totaalgebudget = totaalgebudgetForm.replace(/[.| ,]/g, '');
|
||||
|
||||
}
|
||||
//waarden terugzetten als totaal budget wordt overschreden
|
||||
|
||||
if(Number(totaalgebudget) > Number(totaalbudget)){
|
||||
dit.budget(budgetoud);
|
||||
dit.budgetFormat(budgetoudForm);
|
||||
$.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(s.subbudgetReserve());
|
||||
s.subbudgetform(s.subbudgetformReserve());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
var string = "Het budget overschrijdt het totaalbudget."
|
||||
if(Number(totaalbudget) ===0) string = 'Er is nog geen budget.'
|
||||
apprise(string);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// update procenten en reserve totalen van subsoorten
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
$.each(b.subsoorten(), function(x, s){
|
||||
if (s.uitgavetypes()) {
|
||||
subbudget = s.subbudget();
|
||||
if (parseFloat(subbudget) > 0) {
|
||||
subbudget = parseFloat(subbudget).format(2, 3, '.', ',');
|
||||
subbudget = subbudget.replace(/[.| ,]/g, '');
|
||||
if(Number(totaalgebudget)> 0 ) {
|
||||
gebudgetpct = ((Number(subbudget) / Number(totaalgebudget)) * 100).toFixed(1);
|
||||
gebudgetpct = gebudgetpct.replace('.', ',');
|
||||
s.gebudgetprocent(gebudgetpct + '%');
|
||||
budgetpct = ((Number(subbudget) / Number(totaalbudget)) * 100).toFixed(1);
|
||||
budgetpct = budgetpct.replace('.', ',')
|
||||
s.budgetprocent(budgetpct + '%');
|
||||
}
|
||||
}
|
||||
else{
|
||||
s.gebudgetprocent('');
|
||||
s.budgetprocent('');
|
||||
totaalgebudget += s.uitgavetypes()[0].budget();
|
||||
}
|
||||
|
||||
if (s.subsoortID === subsoortid) {
|
||||
s.subbudgetReserve(s.subbudget());
|
||||
s.subbudgetformReserve(s.subbudgetform());
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
if(stuurMelding) return;
|
||||
if (parseFloat(totaalgebudget) > 0) {
|
||||
totaalgebudgetForm = parseFloat(totaalgebudget).format(2, 3, '.', ',');
|
||||
totaalgebudgetForm = parseFloat(totaalgebudget).format(2, 3, '.', ',');
|
||||
totaalgebudget = totaalgebudgetForm.replace(/[.| ,]/g, '');
|
||||
}
|
||||
|
||||
//waarden terugzetten als totaal budget wordt overschreden
|
||||
// if(Number(totaalgebudget) > Number(totaalbudget)){
|
||||
// dit.budget(budgetoud);
|
||||
// dit.budgetFormat(budgetoudForm);
|
||||
//
|
||||
// //terugzetten restanten
|
||||
// $.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b) {
|
||||
// $.each(b.subsoorten(), function (x, s) {
|
||||
// if (s.uitgavetypes()) {
|
||||
// if (s.subsoortID === subsoortid) {
|
||||
// s.uitgavetypes()[4].budget(restantOud);
|
||||
// s.uitgavetypes()[4].budgetFormat(restantOudForm);
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// })
|
||||
//
|
||||
// // var string = "Het budget overschrijdt het totaalbudget."
|
||||
// // if(Number(totaalbudget) ===0) string = 'Er is nog geen budget.'
|
||||
// // apprise(string);
|
||||
// // return;
|
||||
//
|
||||
// }
|
||||
|
||||
// update procenten
|
||||
$.each(soort === 'BASIS' ? self.basissoorten(): self.extrasoorten(), function(i, b){
|
||||
|
||||
$.each(b.subsoorten(), function(x, s) {
|
||||
if (s.uitgavetypes()) {
|
||||
if (Number(totaalgebudget) > 0) {
|
||||
var subtotaal = s.uitgavetypes()[0].budget();
|
||||
subtotaal = parseFloat(subtotaal).format(2, 3, '.', ',')
|
||||
subtotaal = subtotaal.replace(/[.| ,]/g, '')
|
||||
budgetpct = subtotaal / totaalbudget;
|
||||
budgetpct = budgetpct * 100;
|
||||
budgetpct = budgetpct.toFixed(1)
|
||||
budgetpct = budgetpct.replace('.', ',')
|
||||
s.budgetpctFormat(budgetpct + '%');
|
||||
}
|
||||
else {
|
||||
s.budgetpctFormat('');
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
@@ -539,8 +635,8 @@ ls.initBestemmingenModel = function(){
|
||||
fToelichting: function(){
|
||||
|
||||
apprise(
|
||||
'<p><span>In de rijen </span><span style="font-style: italic">budget </span><span>geeft het</span> <span style="font-weight: bold">percentage </span><span>het gebugeteerde bedrag in de rij weer in verhouding tot het toaalbudget.</span></p>'+
|
||||
' <p><span>In de rijen </span><span style="font-style: italic">uitgaven </span><span>geeft het</span> <span style="font-weight: bold">percentage </span><span>de uitgaven weer in de rij in verhouding tot de totale uitgaven.</span></p>'
|
||||
'<p><span>In de rijen </span><span style="font-style: italic">budget </span><span>geeft het</span> <span style="font-weight: bold">percentage </span><span>het gebugeteerde bedrag uit de kolom TOTAAL weer in verhouding tot het totaalbudget.</span></p>'+
|
||||
' <p><span>In de rijen </span><span style="font-style: italic">uitgaven </span><span>geeft het</span> <span style="font-weight: bold">percentage </span><span>de uitgaven weer in de kolom TOTAAL in verhouding tot de totale uitgaven.</span></p>'
|
||||
)
|
||||
},
|
||||
|
||||
@@ -558,54 +654,6 @@ ls.initBestemmingenModel = function(){
|
||||
},500);
|
||||
}
|
||||
} ; // 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.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
|
||||
} // function initBestemmingenModel
|
||||
|
||||
Reference in New Issue
Block a user