tussenopslag

This commit is contained in:
2023-06-09 15:50:11 +02:00
parent 702c565674
commit ac46447bea
5 changed files with 513 additions and 438 deletions
@@ -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){
// haal per uitgavetypes de bedragen op
if ($uitgavetypes){
foreach($uitgavetypes as $uitgavetype){
$subsoort->uitgavetypes[] = $this->get_bedrag_per_type($orgID, $jaarnr,$subsoort->subsoortID,$uitgavetype->code);
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,89 +23,101 @@
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>
<!-- /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" >
<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 -->
<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: fToelichting
">
</i>
</th>
</tr>
<tr class="blokheader2" style=" text-align:left; padding-left:5px; ">
<th colspan="2" style="background-color: #968026; border: none;">
</th>
</tr>
<!-- ko foreach:subsoorten -->
<tr>
<!-- 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()"
event:{change:$root.fSaveBudget.bind($data, $parent.subsoortID, 'BASIS') } ,
enable: ! $root.jaarclosed() && (code == 'TOTAAL' || Number($parent.uitgavetypes()[0].budget()) > 0),
style : {'backgroundColor' : code == 'TOTAAL' ? '#e6ffee' : Number($parent.uitgavetypes()[0].budget()) > 0 ? '#e6ffee' : '#cccccc' } "
/>
<!-- /ko -->
<!-- ko if : code == 'RESTANT' -->
<span class="decimal"
style="width: 145px; max-width: 98%; font-size: 0.9em; color: #008028"
data-bind="text: budgetFormat" >
</span>
<!-- /ko -->
</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()">
</span>
</div>
</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() : ' ' ,
visible: ! $root.jaarclosed()">
<span data-bind="text: budgetpctFormat() ,
visible: ! $root.jaarclosed() ">
</span>
</div>
</td>
@@ -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()" />
<!-- /ko -->
<!-- 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>
<!-- /ko -->
</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()">
</span>
</div>
</td>
<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,90 +190,93 @@
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()"
/>
<!-- /ko -->
<!-- ko if : code == 'RESTANT' -->
<span class="decimal"
data-bind="text: budget" >
</span>
<!-- /ko -->
</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()">
</span>
</div>
</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>-->
<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() : ' ' ,
visible: ! $root.jaarclosed()">
<span data-bind="text: budgetpctFormat() ,
visible: ! $root.jaarclosed() ">
</span>
</div>
</td>
@@ -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()" />
<!-- /ko -->
<!-- ko if: code == 'RESTANT' || code == 'TOTAAL'-->
<span class="decimal"
data-bind="text: bedragFormat,
style: { color : Number(budget()) < Number(bedrag()) ? '#ff0000' : '#000000'}" >
</span>
<!-- /ko -->
</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()">
</span>
</div>
</td>
<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>