tussenopslag

This commit is contained in:
Monique
2022-10-17 12:13:04 +02:00
parent 3d715f6b87
commit ab9a53542e
5 changed files with 438 additions and 103 deletions
@@ -21,6 +21,7 @@ class Streefcijfers extends MY_Controller{
$swvid = null; $swvid = null;
$kamerid = null; $kamerid = null;
$bgid = null; $bgid = null;
$schoolid = null;
switch ($organisatie->soort) { switch ($organisatie->soort) {
case 1: $swvid = $organisatie->id; case 1: $swvid = $organisatie->id;
break; break;
@@ -32,7 +33,8 @@ class Streefcijfers extends MY_Controller{
$org2 = $this->Organisaties_model->get_record_by_id($kamerid); $org2 = $this->Organisaties_model->get_record_by_id($kamerid);
$swvid = $org2->valtonder_id; $swvid = $org2->valtonder_id;
break; break;
case 4: $bgid = $organisatie->valtonder_id; case 4: $schoolid = $organisatie->id;
$bgid = $organisatie->valtonder_id;
$org2 = $this->Organisaties_model->get_record_by_id($bgid); $org2 = $this->Organisaties_model->get_record_by_id($bgid);
$kamerid = $org2->valtonder_id; $kamerid = $org2->valtonder_id;
$org3 = $this->Organisaties_model->get_record_by_id($kamerid); $org3 = $this->Organisaties_model->get_record_by_id($kamerid);
@@ -41,7 +43,8 @@ class Streefcijfers extends MY_Controller{
} ; // einde switch } ; // einde switch
return array('swvid'=>$swvid, return array('swvid'=>$swvid,
"kamerid" =>$kamerid, "kamerid" =>$kamerid,
"bgid" =>$bgid); "bgid" =>$bgid,
"schoolid" =>$schoolid);
} }
@@ -61,7 +64,8 @@ class Streefcijfers extends MY_Controller{
// let op dit is een array // let op dit is een array
break; break;
case 2: case 2:
case 3: $orgversies = $this->Orgversies_model->getallorgversies($hierarchie['kamerid'],$module, true); case 3:
case 4:$orgversies = $this->Orgversies_model->getallorgversies($hierarchie['kamerid'],$module, true);
if (!$orgversies){ if (!$orgversies){
$orgversies = $this->Orgversies_model->getallorgversies($hierarchie['swvid'],$module, true); $orgversies = $this->Orgversies_model->getallorgversies($hierarchie['swvid'],$module, true);
} }
@@ -113,6 +117,65 @@ class Streefcijfers extends MY_Controller{
echo json_encode($ambities); echo json_encode($ambities);
} }
function getAmbitieOrgs($orgid, $ambitieorgs){
$ambitieorgs .= $orgid . ',';
$valtonder = $this->Organisaties_model->get_fieldvalue(['id' => $orgid], 'valtonder_id');
if($valtonder != $orgid){
return $this->getAmbitieOrgs($valtonder, $ambitieorgs);
}
return $ambitieorgs;
}
function mh_getorgversies_ambities(){
if (!$this->userid) die;
$orgid = $this->uri->segment(4);
$module = $this->session->userdata('module');
$ambitieorgs = '';
$ambitieorgs = $this->getAmbitieOrgs($orgid, $ambitieorgs);
$ambitieorgs = rtrim($ambitieorgs, ',');
$toporgsarray = explode(',', $ambitieorgs);
$toporgs = '';
$index = 0;
for($i = count($toporgsarray)-1; $i >= 0 ; $i--) {
if($index < 2) {
$toporgs .= $toporgsarray[$i] . ',';
$index++;
}
}
$toporgs = rtrim($toporgs, ',' );
$orgversies = $this->Orgversies_model->getorgversies($toporgs, $module);
if(!$orgversies) echo json_encode("geen orgversies");
$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($ambities);
}
}
// function getorgversies_ambities_oud(){ // function getorgversies_ambities_oud(){
// $versies = false; // $versies = false;
// $module = $this->session->userdata('module'); // $module = $this->session->userdata('module');
@@ -102,4 +102,41 @@ class Ambities_model extends MY_Model{
}; };
return $ambitie; 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
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})
AND OV.organisatie_id IN ({$toporgs})
AND OV.id = {$orgversieid}
ORDER BY soort DESC
LIMIT 1;
";
return $this->get_query_result();
}
} }
@@ -43,6 +43,29 @@ class Orgversies_model extends MY_Model{
return $this->get_query_result(); 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){ function getVersieinfo($orgversieid){
$this->sql="SELECT OV.id AS orgversieid, $this->sql="SELECT OV.id AS orgversieid,
OV.organisatie_id, OV.organisatie_id,
+205 -47
View File
@@ -1,55 +1,213 @@
<div class="col-sm-12 mainpagina" id ="pagstreefcijfers"> <div class="col-sm-12 mainpagina" id ="pagstreefcijfers">
<div class="row" > <div class="row" >
<div class="col-sm-12 col-md-3"> <div class="col-sm-12 col-md-4">
<h3>Selecteer een organisatieniveau</h3> <h3>Selecteer een organisatieniveau</h3>
<table style="width:100%">
<tbody data-bind="foreach: swv">
<tr class="swv" data-bind=" css: {'selected' : $parent.selectedOrganisatie().id ==id}, <!-- <table style="width:100%">-->
click:$parent.fSetSelected "> <!-- <tbody data-bind="foreach: swv">-->
<!-- <tr class="swv" data-bind=" css: {'selected' : $parent.selectedOrganisatie().id ==id},-->
<td style="width:100%" <!-- click:$parent.fSetSelected ">-->
data-bind="text: naam"></td> <!-- -->
<!-- <td style="width:100%"-->
</tr> <!-- data-bind="text: naam"></td>-->
<tr data-bind="visible: kamers() !== undefined"> <!-- -->
<!-- </tr>-->
<td > <!-- <tr data-bind="visible: kamers() !== undefined">-->
<table style="width: 100%"> <!-- -->
<tbody data-bind="foreach: kamers"> <!-- <td >-->
<tr class="kamer selectable" <!-- <table style="width: 100%">-->
data-bind="css: {'selected' : $root.selectedOrganisatie().id ==id}, <!-- <tbody data-bind="foreach: kamers">-->
click: $root.fSetSelected"> <!-- <tr class="kamer selectable" -->
<td style="width:5%"></td> <!-- data-bind="css: {'selected' : $root.selectedOrganisatie().id ==id},-->
<td style="width: 95%" data-bind="text: naam"></td> <!-- click: $root.fSetSelected">-->
<!-- <td style="width:5%"></td>-->
</tr> <!-- <td style="width: 95%" data-bind="text: naam"></td>-->
<tr data-bind="visible: bgs() !== undefined "> <!-- -->
<td></td> <!-- </tr>-->
<td > <!-- <tr data-bind="visible: bgs() !== undefined "> -->
<table style="width: 100%"> <!-- <td></td>-->
<tbody data-bind="foreach: bgs"> <!-- <td >-->
<tr class= "selectable" <!-- <table style="width: 100%">-->
data-bind="css: {'selected' : $root.selectedOrganisatie().id ==id}, <!-- <tbody data-bind="foreach: bgs">-->
click: $root.fSetSelected"> <!-- <tr class= "selectable"-->
<!-- data-bind="css: {'selected' : $root.selectedOrganisatie().id ==id},-->
<td style="width: 100%" data-bind="text: naam"></td> <!-- click: $root.fSetSelected">-->
<!-- -->
</tr> <!-- <td style="width: 100%" data-bind="text: naam"></td>-->
</tbody> <!-- -->
</table> <!-- </tr>-->
</td> <!-- </tbody> -->
</tr> <!-- </table> -->
</tbody> <!-- </td> -->
</table> <!-- </tr> -->
<td> <!-- </tbody> -->
</tr> <!-- </table>-->
</tbody> <!-- <td> -->
</table> <!-- </tr>-->
<!-- </tbody>-->
<!-- </table>-->
<div style = "max-height: 300px; overflow-y:auto">
<!-- ko if : orgsoort() ==4 -->
<div data-bind="visible: orgsoort()== 4, with: toporg">
<p data-bind="text: brin + ' - ' + naam"></p>
</div>
<!-- /ko -->
<!-- ko if : orgsoort() ==3 -->
<div data-bind="visible: orgsoort() == 3">
<table style="width: 100%;">
<tbody data-bind="with: toporg">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td data-bind="click: $root.fToggleGeopend" style="width:16px;">
<button class="noshowklein openbutton"
data-bind="css: {'closebutton': geopend() }">
</button>
</td>
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
<tr data-bind="visible: geopend">
<td></td>
<td colspan = 2>
<table style="width: 100%;">
<tbody data-bind="foreach: scholen">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<!-- /ko -->
<!-- ko if: orgsoort() ==2 -->
<table style="width: 100%">
<tbody data-bind="foreach: toporg">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td data-bind="click: $root.fToggleGeopend" style="width:16px;">
<button class="noshowklein openbutton"
data-bind="css: {'closebutton': geopend() }">
</button>
</td>
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
<tr data-bind="visible: geopend">
<td></td>
<td colspan = 2 style="padding-left: 20px;">
<table style="width: 100%">
<tbody data-bind="foreach: bgs">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td data-bind="click: $root.fToggleGeopend" style="width:16px;">
<button class="noshowklein openbutton"
data-bind="css: {'closebutton': geopend() }">
</button>
</td>
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
<tr data-bind="visible: geopend">
<td></td>
<td colspan = 2 style="padding-left: 20px;">
<table>
<tbody data-bind="foreach: scholen">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tbody>
</table>
</td>
</tr>
</tbody>
</table>
<!-- /ko -->
<!-- ko if: orgsoort() ==1 -->
<table style="width: 100%;">
<tbody data-bind="foreach: toporg">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td data-bind="click: $root.fToggleGeopend" style="width:16px;">
<button class="noshowklein openbutton"
data-bind="css: {'closebutton': geopend() }">
</button>
</td>
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
<tr data-bind="visible: geopend()">
<td></td>
<td colspan = 2>
<table style="width: 100%;">
<tbody data-bind="foreach: kamers">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td data-bind="click: $root.fToggleGeopend" style="width:16px;">
<button class="noshowklein openbutton"
data-bind="css: {'closebutton': geopend() }">
</button>
</td>
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
<tr data-bind="visible: geopend()">
<td></td>
<td colspan = 2>
<table style="width: 100%;">
<tbody data-bind="foreach: bgs">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td data-bind="click: $root.fToggleGeopend" style="width:16px;">
<button class="noshowklein openbutton"
data-bind="css: {'closebutton': geopend() }">
</button>
</td>
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
<tr data-bind="visible:geopend()">
<td></td>
<td colspan = 2>
<table style="width: 100%;">
<tbody data-bind="foreach: scholen">
<tr class="selectable" data-bind="css: {'selected': $root.selectedOrg().id == id}">
<td class="orgtd brin" data-bind="text: brin, click: $root.fSwitchOrg"></td>
<td class='orgtd' data-bind="text: naam, click: $root.fSwitchOrg"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<!-- /ko -->
</div >
</div> </div>
<div class="col-sm-12 col-md-9" data-bind="visible: selectedOrganisatie().id !=0"> <div class="col-sm-12 col-md-8" data-bind="visible: selectedOrg().id !=0">
<h4> Criteria voor scholen onder organisatie: <h4> Criteria voor scholen onder organisatie:
<span data-bind="text: selectedOrganisatie().naam"></span> <span data-bind="text: selectedOrg().naam"></span>
</h4> </h4>
<table style="width: 100%;"> <table style="width: 100%;">
<thead> <thead>
@@ -74,7 +232,7 @@
<td><input class="integer" <td><input class="integer"
data-bind="textInput: xijkpunten, event:{input: $root.fUpdateAmbitie},enable:wijzigok" /> ijkpunten data-bind="textInput: xijkpunten, event:{input: $root.fUpdateAmbitie},enable:wijzigok" /> ijkpunten
op <input class="integer" op <input class="integer"
data-bind="textInput: zprocent, event:{input: $root.fUpdateAmbitie}, enable:wijzigok" />% of hoger data-bind="textInput: zprocent, event:{input: $root.fUpdateAmbitie}, enable:wijzigok" />% of hoger
</td> </td>
<td class="glyphicon glyphicon-trash" data-bind="click:$root.fDelete"></td> <td class="glyphicon glyphicon-trash" data-bind="click:$root.fDelete"></td>
</tr> </tr>
+107 -53
View File
@@ -23,46 +23,65 @@ ls.initStreefcijfersModel = function(){
this.gemscore = ko.observable(p.gemscore); this.gemscore = ko.observable(p.gemscore);
this.xijkpunten = ko.observable(p.xijkpunten); this.xijkpunten = ko.observable(p.xijkpunten);
this.zprocent = ko.observable(p.zprocent); this.zprocent = ko.observable(p.zprocent);
this.wijzigok = p.wijzigok; this.wijzigok = ko.observable(true);
} }
function fAddSwv (p){ function fAddSWV(p){
var dit = this; var dit = this;
this.id = p.id; this.id = p.id;
this.brin = p.brin this.soort = p.soort;
this.naam = p.brin + ' - ' + p.naamkort; this.brin = p.brin;
this.naam = p.naamkort;
this.plaats = p.plaats; this.plaats = p.plaats;
this.kamers = ko.observableArray([]); this.geopend = ko.observable(false);
if (p.kamers){ dit.kamers = ko.observableArray([]);
if (p.kamers ){
$.each(p.kamers, function(j,k){ $.each(p.kamers, function(j,k){
dit.kamers.push(new fAddNivo2(k)); dit.kamers.push(new fAddKamer(k));
}) })
}
if (p.bgs){
$.each(p.bgs, function(j,k){
dit.kamers.push(new fAddBG(k));
});
} }
} }
function fAddNivo2 (p){
function fAddKamer(p){
var dit = this; var dit = this;
this.id = p.id; this.id = p.id;
this.naam = p.brin + ' - ' + p.naamkort; this.soort = p.soort;
this.brin = p.brin;
this.naam = p.naamkort;
this.plaats = p.plaats; this.plaats = p.plaats;
this.bgs = ko.observableArray([]); this.geopend = ko.observable(false);
this.bgs = ko.observableArray([]);
if (p.bgs){ if (p.bgs){
$.each(p.bgs, function(j,k){ $.each(p.bgs, function(x,z){
dit.bgs.push(new fAddBG(k)); dit.bgs.push(new fAddBG(z));
}) })
} }
} }
function fAddBG (p){ function fAddBG(p){
var dit = this; var dit = this;
this.id = p.id; this.id = p.id;
this.naam = p.brin + ' - ' + p.naamkort; this.soort = p.soort;
this.plaats = p.plaats; this.brin = p.brin;
this.bgs = ko.observableArray([]); this.naam = p.naamkort;
this.plaats = p.plaats;
this.geopend = ko.observable(false);
this.scholen = ko.observableArray([]);
if (p.scholen){
$.each(p.scholen, function(a,b){
dit.scholen.push(new fAddSchool(b));
})
}
}
function fAddSchool(p){
var dit = this;
this.id = p.id;
this.soort = p.soort;
this.brin = p.brin;
this.naam = p.naamkort;
this.plaats = p.plaats;
} }
if (ls.StreefcijfersModel !== undefined){ if (ls.StreefcijfersModel !== undefined){
@@ -71,10 +90,15 @@ ls.initStreefcijfersModel = function(){
else { else {
ls.StreefcijfersModel = { ls.StreefcijfersModel = {
versieambities : ko.observableArray([]), versieambities : ko.observableArray([]),
swv : ko.observableArray([]), toporg : ko.observableArray([]),
selectedOrganisatie : ko.observable(''), orgsoort : ko.observable(1),
zelfniveau : ko.observable(3), orgversions : ko.observableArray([]),
bezig : ko.observable(false), selectedOrgversion : ko.observable(''),
selectedOrg : ko.observable(''),
userniveau : ko.observable(4),
inzage : ko.observable(),
bezig : ko.observable(false),
isSWV : ko.observable(false),
initBindings :function(){ initBindings :function(){
var self = ls.StreefcijfersModel; var self = ls.StreefcijfersModel;
@@ -86,32 +110,62 @@ ls.initStreefcijfersModel = function(){
initModel: function(){ initModel: function(){
var self = ls.StreefcijfersModel; var self = ls.StreefcijfersModel;
self.swv.removeAll(); self.toporg('');
$.post("index.php/monpas/streefcijfers/getorganisaties", function(swv){ $.post("index.php/monpas/rapijkpunten/getorgs", function(data){
if (swv){ self.bezig(true);
self.swv.push(new fAddSwv(swv)); if (data.organisatie){
self.selectedOrganisatie(self.swv()[0]);
} self.orgsoort(data.soort);
switch (self.orgsoort()){
$.post("index.php/monpas/streefcijfers/getzelfniveau", function(nivo){ case 1: self.toporg(new fAddSWV(data.organisatie));
self.zelfniveau(nivo); self.isSWV(true);
self.fGetAmbities(); break;
},'json') case 2: self.toporg(new fAddKamer(data.organisatie));
},'json'); break;
case 3: self.toporg(new fAddBG(data.organisatie));
break;
case 4: self.toporg(new fAddSchool(data.organisatie));
break;
} // switch
$.post('index.php/monpas/rapijkpunten/getusernivo', function(result){
self.userniveau(result);
self.selectedOrg(self.toporg());
$.post('index.php/monpas/rapmatrix/checkinzage', function(result){
self.inzage(result);
},'json');
self.fGetAmbities();
},'json');
}
self.bezig(false);
},'json');
},
fToggleGeopend: function(){
this.geopend(!this.geopend());
}, },
fSetSelected : function(){ fSwitchOrg : function(){
var self = ls.StreefcijfersModel; var self = ls.StreefcijfersModel;
if (this.id == self.selectedOrganisatie().id) return; self.isSWV(false);
self.selectedOrganisatie(this); if (this.id == self.selectedOrg().id) return;
if (self.selectedOrganisatie() == undefined) return; self.selectedOrg(this);
if (self.selectedOrg() == undefined) return;
if(self.selectedOrg().soort === '1'){
self.isSWV(true);
}
self.fGetAmbities(); self.fGetAmbities();
}, },
fGetAmbities : function() { fGetAmbities : function() {
var self = ls.StreefcijfersModel; var self = ls.StreefcijfersModel;
self.versieambities.removeAll(); self.versieambities.removeAll();
$.post("index.php/monpas/streefcijfers/getorgversies_ambities/" + self.selectedOrganisatie().id, function(data){ $.post("index.php/monpas/streefcijfers/mh_getorgversies_ambities/" + self.selectedOrg().id, function(data){
if (data){ if (data){
$.each(data, function(i,p){ $.each(data, function(i,p){
self.versieambities.push(new fAddVersieAmbitie(p)); self.versieambities.push(new fAddVersieAmbitie(p));
@@ -132,14 +186,14 @@ ls.initStreefcijfersModel = function(){
self.bezig(true); self.bezig(true);
var submitData={ "id" : dit.id, var submitData={ "id" : dit.id,
"orgversie_id" : dit.orgversieid, "orgversie_id" : dit.orgversieid,
"organisatie_id" : self.selectedOrganisatie().id, "organisatie_id" : self.selectedOrg().id,
"gemscore" : dit.gemscore(), "gemscore" : dit.gemscore(),
"xijkpunten" : dit.xijkpunten(), "xijkpunten" : dit.xijkpunten(),
"zprocent" : dit.zprocent()} "zprocent" : dit.zprocent()}
$.post("index.php/monpas/streefcijfers/updateambitie", submitData, function(newid){ // $.post("index.php/monpas/streefcijfers/updateambitie", submitData, function(newid){
if (newid) {self.fGetAmbities();}; // if (newid) {self.fGetAmbities();};
self.bezig(false); // self.bezig(false);
},'json'); // },'json');
},700); },700);
}, },
fDelete:function(){ fDelete:function(){