tussenopslag

This commit is contained in:
Monique
2022-10-25 13:43:24 +02:00
parent ab9a53542e
commit 5dfba96fc6
8 changed files with 308 additions and 130 deletions
@@ -15,6 +15,7 @@ class Streefcijfers extends MY_Controller{
};// if
}
function gethierarchie($selfid){
if (!$this->userid) die;
$organisatie= $this->Organisaties_model->get_record_by_id($selfid);
@@ -127,8 +128,19 @@ class Streefcijfers extends MY_Controller{
return $ambitieorgs;
}
function checkrecht(){
if (!$this->userid) die;
$manage = 'F';
if($this->super) $manage = 'T';
else {
$result = $this->Autorisatiesnivos_model->checkmanage($this->userid, $this->orgid);
if($result) $manage = 'T';
}
$this->json($manage);
}
function mh_getorgversies_ambities(){
function getambitie(){
if (!$this->userid) die;
$orgid = $this->uri->segment(4);
$module = $this->session->userdata('module');
@@ -148,31 +160,41 @@ function mh_getorgversies_ambities(){
}
$toporgs = rtrim($toporgs, ',' );
$orgversies = $this->Orgversies_model->getorgversies($toporgs, $module);
if(!$orgversies) echo json_encode("geen orgversies");
$ambitie = $this->Ambities_model->mh_get_ambitie($module, $ambitieorgs, $toporgs);
if(!$ambitie) return json_encode("Er is geen actieve versie bij het instrument");
$ambities = [];
foreach($orgversies as $orgversie) {
$ambitie = $this->Ambities_model->get_ambities_orgversie($orgversie->id, $ambitieorgs, $toporgs);
if ($ambitie) $ambtities [] = $ambitie;
else {
$aantalY = $this->Ijkpunten_model->telijkpunten($orgversie->id);
$ambities[] = ['id' => 0,
'gemscore' => 80,
'aantalY' => $aantalY,
'xijkpunten' => round($aantalY * 0.8),
'z_procent' => 60,
'orgversieid' => $orgversie->id,
'geldigvanaf' => $orgversie->geldigvanaf,
'geldigtm' => $orgversie->geldigtm,
'periodenummer' => $orgversie->periodenummer,
'actief' => $orgversie->actief,
'naam' => $orgversie->naam,
'soort' => 0];
}
echo json_encode($ambitie);
echo json_encode($ambities);
}
function saveAmbitie(){
if (!$this->userid) die;
$orgversieid = $this->clean_input("orgversieid");
$orgid = $this->clean_input("orgid");
if($this->super == false){
if ($orgid != $this->orgid) return;
$result = $this->Autorisatiesnivos_model->checkmanage($this->userid, $this->orgid);
if(!$result) return;
}
$bestaand = $this->Ambities_model->get_fieldvalue(['organisatie_id'=>$orgid,
'orgversie_id' =>$orgversieid], 'id');
if(!$bestaand) {
$id = $this->Ambities_model->insert_record([
'organisatie_id' => $orgid,
'orgversie_id' => $orgversieid,
'gem_score' => $this->clean_input("gemscore"),
'x_ijkpunten' => $this->clean_input("xijkpunten"),
'z_procent' => $this->clean_input("zprocent")
]);
}
$this->json($id);
}
+33 -22
View File
@@ -103,31 +103,42 @@ class Ambities_model extends MY_Model{
return $ambitie;
}
function get_ambities_orgversie($orgversieid, $ambitieorgs, $toporgs)
{
$this->sql = "
SELECT A.id,
A.gem_score AS gemscore,
A.z_procent AS zprocent,
OV.id AS orgversie_id,
DATE_FORMAT( OV.geldigvanaf, '%d-%m-%Y') as geldigvanaf,
DATE_FORMAT( OV.geldigtm, '%d-%m-%Y') as geldigtm,
OV.periodenummer, OV.actief, V.naam,
O.soort
function mh_get_ambitie($moduleid, $ambitieorgs, $toporgs){
$this->sql = " SELECT COALESCE(A.id, 0) AS ambitieID,
COALESCE(A.gem_score, 80) AS gemscore,
COUNT(Y.id) AS aantalY,
COALESCE(A.x_ijkpunten, ROUND(COUNT(Y.id) * 0.8)) AS xijkpunten,
COALESCE(A.z_procent, 60) AS zprocent,
OV.id AS orgversie_id,
DATE_FORMAT( OV.geldigvanaf, '%d-%m-%Y') as geldigvanaf,
DATE_FORMAT( OV.geldigtm, '%d-%m-%Y') as geldigtm,
OV.periodenummer, V.naam,
COALESCE(O.soort, 0) AS soort,
O.id AS orgID,
CASE WHEN O.soort IS NULL THEN
'standaard'
WHEN O.soort = 1 THEN
'swv'
WHEN O.soort = 2 THEN
'regio'
WHEN O.soort = 3 THEN
'bestuur'
WHEN O.soort = 4 THEN
'school'
END AS ambitievan
FROM tb_orgversies OV
JOIN tb_versies V ON OV.versie_id = V.id
JOIN tb_ambities A ON A.orgversie_id = OV.id
JOIN tb_organisaties O ON A.organisatie_id = O.id
WHERE A.organisatie_id IN ({$ambitieorgs})
JOIN tb_versies V ON OV.versie_id = V.id
JOIN tb_ijkpunten Y ON V.id = Y.versie_id
LEFT JOIN tb_ambities A ON A.orgversie_id = OV.id
LEFT JOIN tb_organisaties O ON A.organisatie_id = O.id
WHERE (A.organisatie_id IN ({$ambitieorgs}) OR A.id IS NULL)
AND OV.organisatie_id IN ({$toporgs})
AND OV.id = {$orgversieid}
AND V.modulenr = {$moduleid}
AND OV.actief = 1
AND Y.disabled = 'F'
ORDER BY soort DESC
LIMIT 1;
";
LIMIT 1 ";
return $this->get_query_result();
}
@@ -43,29 +43,6 @@ class Orgversies_model extends MY_Model{
return $this->get_query_result();
}
function getorgversies($toporgs, $module){
$this->sql="SELECT OV.id,
periodenummer,
OV.actief,
DATE_FORMAT(geldigvanaf,'%d-%m-%Y') as geldigvanaf,
DATE_FORMAT(geldigtm,'%d-%m-%Y') as geldigtm,
V.naam,
COUNT(Y.id) AS aantalY
FROM tb_orgversies OV
JOIN tb_versies V ON V.id = versie_id
JOIN tb_ijkpunten Y ON V.id = Y.versie_id
WHERE OV.organisatie_id IN ({$toporgs})
AND V.modulenr = {$module}
AND Y.disabled = 'F' ";
$this->sql .=" GROUP BY OV.id
ORDER BY periodenummer DESC";
return $this->get_query_result();
}
function getVersieinfo($orgversieid){
$this->sql="SELECT OV.id AS orgversieid,
OV.organisatie_id,
@@ -50,5 +50,17 @@ class Autorisatienivos_model extends MY_Model{
return $this->get_query_row('nivo');
}
function checkmanage($userid, $orgid){
$this->sql=" SELECT nivo
FROM tb_autorisatienivos AN
JOIN tb_autorisaties A ON A.nivo_id = AN.id
JOIN tb_orgusers OU ON OU.id = A.orguser_id
WHERE OU.user_id = {$userid}
AND OU.organisatie_id = {$orgid}
AND AN.nivo IN (1, 4, 16, 64, 256) ";
return $this->get_query_row('nivo');
}
}
@@ -1,7 +1,8 @@
<div class="col-sm-12 mainpagina submenupage" id ="pagcompactsop">
<h2 data-bind="text: 'Compact ' + label()"></h2>
<?php $this->load->view("monpas/compactsop/maaksoponderdelen/knoppenbalk"); ?>
<?php $this->load->view("monpas/compactsop/maaksoponderdelen/knoppenbalk"); ?>
<div class="row" style="margin-left: 10px;" data-bind="visible: toonOnderdelen()">
<?php $this->load->view("monpas/compactsop/maaksoponderdelen/kiesonderdelen"); ?>
@@ -1,6 +1,6 @@
<div class="col-sm-12 mainpagina" id ="pagstreefcijfers">
<div class="row" >
<div class="col-sm-12 col-md-4">
<div class="col-sm-12 col-md-3">
<h3>Selecteer een organisatieniveau</h3>
@@ -205,40 +205,113 @@
</div >
</div>
<div class="col-sm-12 col-md-8" data-bind="visible: selectedOrg().id !=0">
<div class="col-sm-12 col-md-9" data-bind="visible: selectedOrg().id !=0" style="margin: 0; padding:0">
<h4> Criteria voor scholen onder organisatie:
<span data-bind="text: selectedOrg().naam"></span>
</h4>
<table style="width: 100%;">
<table style="width: 100%;padding: 0; margin: 0; ">
<thead>
<tr>
<th style="width:20px">nr</th>
<th >versie</th>
<th style="width:95px">van</th>
<th style ="width:95px">t/m</th>
<th style="width:100px"> gem.<br/>score</th>
<th style="width:280px">minimum <?=$labels['ijkpunten']?> </th>
<th style="width: 20px">D</th>
<th style="width: 3%; vertical-align: text-top">nr</th>
<th style="width: 15%; vertical-align: text-top">versie</th>
<th style="width: 13%; vertical-align: text-top">van</th>
<th style="width: 13%; vertical-align: text-top">t/m</th>
<th style="width: 8%; vertical-align: text-top"> gem. score</th>
<th style="width: 36%; vertical-align: text-top">minimum</th>
<th style="width: 9%; vertical-align: text-top">criteria van</th>
<th style="width: 3%; vertical-align: text-top"></th>
</tr>
</thead>
<tbody data-bind="foreach: versieambities">
<tbody data-bind="with: versieambities ? versieambities : '' ">
<tr>
<td data-bind="text: periodenummer"></td>
<td data-bind="text:naam"></td>
<td data-bind="text: geldigvanaf"></td>
<td data-bind="text: geldigtm"></td>
<td><input class="integer"
data-bind="textInput: gemscore, event:{input: $root.fUpdateAmbitie}, enable: wijzigok" />%</td>
<td><input class="integer"
data-bind="textInput: xijkpunten, event:{input: $root.fUpdateAmbitie},enable:wijzigok" /> ijkpunten
op <input class="integer"
data-bind="textInput: zprocent, event:{input: $root.fUpdateAmbitie}, enable:wijzigok" />% of hoger
<td><input class="integer" type="number" min="0" max="100" step="5"
data-bind="textInput: gemscore,
event: {input: $parent.fUpdateAmbitie},
enable: $parent.manage() == 'T' && $parent.toporg().soort == soort " />%</td>
<td><input class="integer" type="number" min="0" step="1"
data-bind="textInput: xijkpunten,
event: {input: $parent.fUpdateAmbitie},
attr: {'max': aantalY},
enable: $parent.manage() =='T' && $parent.toporg().soort == soort " /> ijkpunten
op <input class="integer" type="number" min="0" max="100" step="5"
data-bind="textInput: zprocent,
event: {input: $parent.fUpdateAmbitie},
enable: $parent.manage() =='T' && $parent.toporg().soort == soort " />
<span > % of hoger</span>
</td>
<td class="glyphicon glyphicon-trash" data-bind="click:$root.fDelete"></td>
</tr>
<td data-bind="text: ambitievan " ></td>
<td style="text-align: right">
<span class="glyphicon glyphicon-trash"
data-bind="visible: $parent.manage() =='T' && $parent.toporg().soort == soort ,
click:$root.fDelete ">
</span>
</td>
</tr>
<!-- ko if: $parent.insert() == false -->
<tr>
<td colspan="2">
<button style="background-color: #A28A29; color: white; box-shadow: 1px 1px 2px #faf7eb;
font-weight: bold; margin-top; 20px;"
data-bind="click: $parent.fNew,
visible: $parent.manage() =='T' &&
$parent.toporg().soort != soort
&& $parent.toporg().id == $parent.selectedOrg().id ">nieuw
</button>
</td>
<td colspan="6"></td>
</tr>
<!--/ko -->
<!-- ko if: $parent.insert() -->
<tr>
<td data-bind="text: periodenummer "></td>
<td data-bind="text: naam "></td>
<td data-bind="text: geldigvanaf"></td>
<td data-bind="text: geldigtm"></td>
<td><input type="number" min="0" max="100" step="5" class="integer"
data-bind="textInput: $parent.scoreNieuw "/>%</td>
<td><input type="number" min="0" class="integer"
data-bind="textInput: $parent.ijkNieuw,
attr: {'max': aantalY} " /> ijkpunten
op <input type="number" min="0" max="100" step="5" class="integer"
data-bind="textInput: $parent.procentNieuw" />% of hoger
</td>
<td data-bind="text: nieuw " ></td>
<td >
</td>
</tr>
<tr>
<td colspan="2">
<button style="background-color: #A28A29; color: white; box-shadow: 1px 1px 2px #faf7eb;
font-weight: bold; margin-top; 20px;"
data-bind="click: $parent.fOpslaan ">opslaan
</button>
<button style="background-color: #f1f1f1; box-shadow: 1px 1px 2px ghostwhite;
font-weight: bold; margin-top; 20px;"
data-bind="click: $parent.fAnnuleer ">annuleer
</button>
</td>
<td colspan="4"></td>
</tr>
<!--/ko -->
</tbody>
</table>
</div> <!-- rechts -->
</div>