kamerversies bij swv en scholen

This commit is contained in:
Monique
2022-12-05 12:52:06 +01:00
parent 8f5449e80d
commit 962d91cf71
6 changed files with 351 additions and 210 deletions
+169 -50
View File
@@ -119,11 +119,11 @@ class Streefcijfers extends MY_Controller{
echo json_encode($ambities);
}
function getAmbitieOrgs($orgid, $ambitieorgs){
function setBovenliggend($orgid, $ambitieorgs){
$ambitieorgs .= $orgid . ',';
$valtonder = $this->Organisaties_model->get_fieldvalue(['id' => $orgid], 'valtonder_id');
if($valtonder != $orgid){
return $this->getAmbitieOrgs($valtonder, $ambitieorgs);
return $this->setBovenliggend($valtonder, $ambitieorgs);
}
return $ambitieorgs;
@@ -146,72 +146,191 @@ class Streefcijfers extends MY_Controller{
}
function getambities(){
function setSWVKamer($org){
$kamer = '';
$swv = '';
switch($org->soort ){
case 2: $kamer = $this->globorgid;
$swv = $org->valtonder_id;
break;
case 3: $kamer = $org->valtonder_id;
$swv = $this->Organisaties_model->get_fieldvalue(['id' => $org->valtonder_id], 'valtonder_id');
break;
case 4: $kamer = $this->Organisaties_model->get_fieldvalue(['id' => $org->valtonder_id], 'valtonder_id');
$swv = $this->Organisaties_model->get_fieldvalue(['id' => $kamer], 'valtonder_id');
break;
}
return ['swv'=>$swv,
'kamer' =>$kamer];
}
function getambities()
{
if (!$this->userid) die;
$module = $this->session->userdata('module');
$modulenaam = $this->Modules_model->get_fieldvalue(['sysnr'=>$module], 'naam');
$org = $this->Organisaties_model->get_record_by_id($this->globorgid);
$bovenliggend = '';
$bovenliggend = $this->getAmbitieOrgs($this->globorgid, $bovenliggend);
$bovenliggend = rtrim($bovenliggend, ',');
$toporgsarray = explode(',', $bovenliggend);
$toporgs = '';
$index = 0;
for($i = count($toporgsarray)-1; $i >= 0 ; $i--) {
if($index < 2) {
$toporgs .= $toporgsarray[$i] . ',';
$index++;
}
}
$toporgs = rtrim($toporgs, ',' );
$onderliggend = '';
$module = $this->session->userdata('module');
$modulenaam = $this->Modules_model->get_fieldvalue(['sysnr' => $module], 'naam');
$standaardNodig = true;
$org = $this->Organisaties_model->get_record_by_id($this->globorgid);
$orgversiesK = [];
$ambities = [];
$ambities2 = [];
$kamerids = [];
$bovenliggend = '';
$bovenliggend = $this->setBovenliggend($this->globorgid, $bovenliggend);
$bovenliggend = rtrim($bovenliggend, ',');
$onderliggend = '';
if($org->soort < 4){
$orgs = $this->Organisaties_model->getlistrecursief($this->globorgid, []);
$onderliggend = implode(',', $orgs);
$ambitieorgs = $onderliggend .','. $bovenliggend;
$orgs = $this->Organisaties_model->getlistrecursief($this->globorgid, []);
$onderliggend = implode(',', $orgs);
$ambitieorgs = $onderliggend .','. $bovenliggend;
}
if($org->soort == 4 ) $ambitieorgs = $bovenliggend;
$standaardNodig = true;
$ambities = [];
$aantalY = $this->Ijkpunten_model->telijkpunten_bij_orgs($toporgs, $module);
$ambities = $this->Ambities_model->mh_get_ambities($module, $ambitieorgs, $toporgs);
if($org->soort == 1) {
$kamers = $this->Organisaties_model->get_onderliggende_orgs($this->globorgid);
$orgids = [];
$ambities = $this->Ambities_model->mh_get_ambities($module, $ambitieorgs, FALSE);
if($ambities){
foreach( $ambities AS $ambitie){
if($ambitie->soort <= $org->soort){
$standaardNodig = false;
$orgids = [];
$array = [];
foreach($ambities AS $ambitie) {
if ($ambitie->orgID != $this->globorgid) {
$orgids[] = $ambitie->orgID;
$array[] = $ambitie;
}
}
$ambities = $array;
}
foreach($kamers as $kamer){
if(! in_array( $kamer->id, $orgids,)){
$orgversie = $this->Orgversies_model->getOrgversie($kamer->id, $module);
if ($orgversie) $orgversiesK [] = $orgversie;
}
}
if(!$ambities || $standaardNodig) {
$orgversie = $this->Orgversies_model->getAmbitieVersie($toporgs, $module);
if (!$orgversie) {
$this->json("geen results");
return;
}
else {
$this->Orgversies_model->getOrgVersie($this->globorgid, $module);
if ($orgversiesK){
foreach($orgversiesK AS $orgversie){
$aantalY = $this->Ijkpunten_model->telijkpunten($orgversie->orgversieID);
$ambitie = new stdClass();
$ambitie->ambitievan = 'standaard';
$ambitie->id = 0;
$ambitie->geldigtm = $orgversie->geldigtm;
$ambitie->ambitievan = 'standaard';
$ambitie->id = 0;
$ambitie->geldigtm = $orgversie->geldigtm;
$ambitie->geldigvanaf = $orgversie->geldigvanaf;
$ambitie->gemscore = 80;
$ambitie->naam = $orgversie->naam;
$ambitie->orgversie_id = $orgversie->orgversie_id;
$ambitie->gemscore = 80;
$ambitie->naam = $orgversie->naam;
$ambitie->orgnaam = $org->naamkort;
$ambitie->versievan = $orgversie->versievan;
$ambitie->orgversieID = $orgversie->orgversieID;
$ambitie->periodenummer = $orgversie->periodenummer;
$ambitie->soort = 0;
$ambitie->xijkpunten = ROUND($aantalY * 0.8);
$ambitie->zprocent = 60;
$ambities[] = $ambitie;
}
}
$this->json(['aantalY' => $aantalY,
'ambities' => $ambities,
'module' => $modulenaam]);
$ambitie = $this->Ambities_model->mh_get_ambities($module, $this->globorgid, FALSE);
if($ambitie) $ambities = array_merge($ambities,$ambitie);
else $standaardNodig = true;
}
if ($org->soort > 1) {
$orgs = $this->setSWVKamer($org);
$kamer = $orgs['kamer'];
$swv = $orgs['swv'];
$orgversie = $this->Orgversies_model->getOrgVersie($kamer, $module);
}
if($org->soort == 2) {
if ($orgversie) $ambities = $this->Ambities_model->mh_get_ambities($module, $ambitieorgs, $orgversie->orgversieID);
if (!$orgversie) {
$orgversie = $this->Orgversies_model->getOrgVersie($swv, $module);
if ($orgversie) {
$ambities = $this->Ambities_model->mh_get_ambities($module, $this->globorgid, $orgversie->orgversieID);
}
if (!$ambities) $ambities = $this->Ambities_model->mh_get_ambities($module, $swv, $orgversie->orgversieID);
$ambities2 = $this->Ambities_model->mh_get_ambities($module, $onderliggend, $orgversie->orgversieID);
}
}
if($org->soort == 3){
if ($orgversie) $ambities = $this->Ambities_model->mh_get_ambities($module, $this->globorgid, $orgversie->orgversieID);
if (!$ambities) $ambities = $this->Ambities_model->mh_get_ambities($module, $kamer, $orgversie->orgversieID);
if (!$orgversie) {
$orgversie = $this->Orgversies_model->getOrgVersie($swv, $module);
if ($orgversie) $ambities = $this->Ambities_model->mh_get_ambities($module, $this->globorgid, $orgversie->orgversieID);
if (!$ambities) $ambities = $this->Ambities_model->mh_get_ambities($module, $kamer, $orgversie->orgversieID);
if (!$ambities) $ambities = $this->Ambities_model->mh_get_ambities($module, $swv, $orgversie->orgversieID);
$ambities2 = $this->Ambities_model->mh_get_ambities($module, $onderliggend, $orgversie->orgversieID);
}
}
if($org->soort == 4) {
if ($orgversie) {
$ambitie = $this->Ambities_model->mh_get_ambitie_orgversie($orgversie->orgversieID, $bovenliggend, $kamer);
if($ambitie) $ambities[] = $ambitie;
}
if (!$orgversie) {
$orgversie = $this->Orgversies_model->getOrgVersie($swv, $module);
if ($orgversie){
$ambitie = $this->Ambities_model->mh_get_ambitie_orgversie($orgversie->orgversieID, $bovenliggend, $swv);
if($ambitie) $ambities[] = $ambitie;
}
}
}
if(!$orgversie) {
$this->json('geen actieve versie gevonden');
return;
}
if ($ambities) {
if(count($ambities2) > 0) $ambities[] = $ambities2;
foreach ($ambities as $ambitie) {
if (intval($ambitie->soort) <= intval($org->soort)) {
$standaardNodig = false;
}
$ambitie->aantalY = $this->Ijkpunten_model->telijkpunten($ambitie->orgversieID);
}
}
$orgversie->aantalY = $this->Ijkpunten_model->telijkpunten($orgversie->orgversieID);
$orgversie->ambitievan = $org->naamkort;
if ( $standaardNodig) {
$aantalY = $this->Ijkpunten_model->telijkpunten($orgversie->orgversieID);
$ambitie = new stdClass();
$ambitie->ambitievan = 'standaard';
$ambitie->id = 0;
$ambitie->geldigtm = $orgversie->geldigtm;
$ambitie->geldigvanaf = $orgversie->geldigvanaf;
$ambitie->gemscore = 80;
$ambitie->naam = $orgversie->naam;
$ambitie->orgnaam = $org->naamkort;
$ambitie->versievan = $orgversie->versievan;
$ambitie->orgversieID = $orgversie->orgversieID;
$ambitie->periodenummer = $orgversie->periodenummer;
$ambitie->soort = 0;
$ambitie->xijkpunten = ROUND($aantalY * 0.8);
$ambitie->zprocent = 60;
$ambities[] = $ambitie;
}
$this->json([
'orgversie' => $orgversie,
'ambities' => $ambities,
'module' => $modulenaam]);
}
@@ -317,7 +436,7 @@ function saveAmbitie(){
if ($id ==0 || !$alaanwezig ){
$data=array("organisatie_id" => $this->globorgid,
"orgversie_id" => $this->clean_input("orgversie_id"),
"gem_score" => $this->clean_input("gemscore"),
"gem_score" => $this->clean_input("gemscore"),
"x_ijkpunten" => $this->clean_input("xijkpunten"),
"z_procent" => $this->clean_input("zprocent"));
$newid= $this->Ambities_model->insert_record($data);
+2 -1
View File
@@ -79,7 +79,8 @@ class MY_Controller extends CI_Controller{
// public $version = '1.18.05';// fout schoolgegevens compactsop
// public $version = '1.18.08';// kleurenfout
// public $version = '1.19.00';// ambities per org
public $version = '1.19.01';// compactdiv met orgid ipv globorg
// public $version = '1.19.01';// compactdiv met orgid ipv globorg
public $version = '1.19.02';// ambities per org incl kamerversies
+39 -12
View File
@@ -103,18 +103,20 @@ class Ambities_model extends MY_Model{
return $ambitie;
}
function mh_get_ambities($moduleid, $ambitieorgs, $toporgs){
function mh_get_ambities($moduleid, $ambitieorgs, $orgversieid = FALSE){
$this->sql = " SELECT A.id AS ambitieID,
A.gem_score AS gemscore,
A.x_ijkpunten AS xijkpunten,
A.z_procent AS zprocent,
OV.id AS orgversie_id,
OV.id AS orgversieID,
DATE_FORMAT( OV.geldigvanaf, '%d-%m-%Y') as geldigvanaf,
DATE_FORMAT( OV.geldigtm, '%d-%m-%Y') as geldigtm,
OV.periodenummer, V.naam,
O.soort AS soort,
concat_ws(' ', O.brin, O.naamkort) AS organisatie,
O.id AS orgID,
O2.naamkort AS versievan,
CASE WHEN O.soort = 1 THEN
'swv'
WHEN O.soort = 2 THEN
@@ -123,17 +125,21 @@ function mh_get_ambities($moduleid, $ambitieorgs, $toporgs){
'bestuur'
WHEN O.soort = 4 THEN
'school'
END AS ambitievan
END AS ambitievan
FROM tb_orgversies OV
JOIN tb_versies V ON OV.versie_id = V.id
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
JOIN tb_organisaties O2 ON OV.organisatie_id = O2.id
WHERE A.organisatie_id IN ({$ambitieorgs})
AND OV.organisatie_id IN ({$toporgs})
AND V.modulenr = {$moduleid}
AND OV.actief = 1
ORDER BY soort DESC ";
AND OV.actief = 1 ";
if($orgversieid) {
$this->sql .= " AND OV.id = {$orgversieid} ";
}
$this->sql.= " ORDER BY O.soort DESC ";
return $this->get_query_result();
}
@@ -142,17 +148,38 @@ function mh_get_ambitie_orgversie($orgversieid, $ambitieorgs, $toporgs){
A.gem_score AS gemscore,
A.x_ijkpunten AS xijkpunten,
A.z_procent AS zprocent,
O.naam AS ambitievan
O.naamkort AS ambitievan,
OV.id AS orgversieID,
DATE_FORMAT( OV.geldigvanaf, '%d-%m-%Y') as geldigvanaf,
DATE_FORMAT( OV.geldigtm, '%d-%m-%Y') as geldigtm,
OV.periodenummer, V.naam,
O.soort AS soort,
concat_ws(' ', O.brin, O.naamkort) AS organisatie,
O.id AS orgID,
O2.naamkort AS versievan,
CASE 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_ijkpunten Y ON V.id = Y.versie_id
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
JOIN tb_organisaties O2 ON OV.organisatie_id = O2.id
WHERE A.organisatie_id IN ({$ambitieorgs})
AND OV.organisatie_id IN ({$toporgs})
AND OV.id = {$orgversieid}
AND Y.disabled = 'F'
ORDER BY soort DESC
LIMIT 1 ";
return $this->get_query_row();
+28 -5
View File
@@ -265,20 +265,43 @@ class Orgversies_model extends MY_Model{
return $this->get_query_result();
}
function getAmbitieVersie($toporgs, $moduleid){
function getAmbitieVersie( $orgversieid){
$this->sql = "SELECT
OV.id AS orgversie_id,
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
OV.periodenummer, V.naam,
O.naamkort AS versievan
FROM tb_orgversies OV
JOIN tb_versies V ON OV.versie_id = V.id
WHERE OV.organisatie_id IN ({$toporgs})
AND V.modulenr = {$moduleid}
JOIN tb_organisaties O ON O.id = OV.organisatie_id
WHERE OV.id = {$orgversieid}
AND OV.actief = 1 ";
return $this->get_query_row();
}
function getOrgversie($orgid, $module){
$this->sql = "SELECT OV.id AS orgversieID,
DATE_FORMAT( OV.geldigvanaf, '%d-%m-%Y') as geldigvanaf,
DATE_FORMAT( OV.geldigtm, '%d-%m-%Y') as geldigtm,
OV.periodenummer, V.naam,
O.naamkort AS versievan,
O.id AS orgID
FROM tb_orgversies OV
JOIN tb_organisaties O ON OV.organisatie_id = O.id
JOIN tb_versies V ON OV.versie_id = V.id
WHERE OV.actief = 1
AND V.modulenr = {$module}
AND OV.organisatie_id = ({$orgid}) ";
return $this->get_query_row();
}
}
@@ -10,56 +10,58 @@
<table style="width: 100%;">
<thead>
<tr>
<th style="width: 3%; vertical-align: text-top">nr</th>
<th style="width: 15%; vertical-align: text-top">versie</th>
<th style="width: 10%; vertical-align: text-top">van</th>
<th style="width: 10%; vertical-align: text-top">t/m</th>
<th style="width: 9%; vertical-align: text-top"> gem. score</th>
<th style="width: 30%; vertical-align: text-top">minimum</th>
<th style="width: 20%; vertical-align: text-top">criteria van</th>
<th style="width: 3%; vertical-align: text-top"></th>
<th style="width: 2%; vertical-align: text-top">nr</th>
<th style="width: 12%; vertical-align: text-top">versienaam</th>
<th style="width: 9%; vertical-align: text-top">van</th>
<th style="width: 9%; vertical-align: text-top">t/m</th>
<th style="width: 7%; vertical-align: text-top"> gem. score</th>
<th style="width: 5%; vertical-align: text-top">minimum</th>
<th style="width: 9%; vertical-align: text-top"></th>
<th style="width: 14%; vertical-align: text-top"></th>
<th style="width: 20%; vertical-align: text-top">streefcijfers van</th>
<th style="width: 14%; vertical-align: text-top">versie van</th>
<th style="width: 2%; vertical-align: text-top"></th>
</tr>
</thead>
<tbody >
<!-- ko foreach: ambities -->
<tr>
<td>
<!-- ko if: $index() == 0 -->
<span data-bind="text: $parent.periodenummer() "></span>
<!-- /ko -->
<td style="vertical-align: text-top">
<span data-bind="text: periodenummer "></span>
</td>
<td> <!-- ko if: $index() == 0 -->
<span data-bind="text: $parent.naam() "></span>
<!-- /ko -->
<td style="vertical-align: text-top">
<span data-bind="text: naam "></span>
</td>
<td> <!-- ko if: $index() == 0 -->
<span data-bind="text: $parent.geldigvanaf() "></span>
<!-- /ko -->
<td style="vertical-align: text-top">
<span data-bind="text: geldigvanaf "></span>
</td>
<td> <!-- ko if: $index() == 0 -->
<span data-bind="text: $parent.geldigtm() "></span>
<!-- /ko -->
<td style="vertical-align: text-top">
<span data-bind="text: geldigtm "></span>
</td>
<td><input class="integer" type="number" min="0" max="100" step="5"
<td style="vertical-align: text-top"><input class="integer" type="number" min="0" max="100" step="5" size="8"
data-bind="textInput: gemscore,
event: {input: $parent.fUpdateAmbitie},
enable: $parent.manage() == 'T' && $parent.orgsoort() == soort " />%</td>
<td><input class="integer" type="number" min="0" step="1"
enable: $parent.manage() == 'T' && $parent.orgsoort() == soort " />%
</td>
<td style="vertical-align: text-top"><input class="integer" type="number" min="0" step="1" size="8"
data-bind="textInput: xijkpunten,
event: {input: $parent.fUpdateAmbitie},
attr: {'max': $parent.aantalY},
enable: $parent.manage() =='T' && $parent.orgsoort() == soort " /> ijkpunten
op <input class="integer" type="number" min="0" max="100" step="5"
attr: {'max': aantalY},
enable: $parent.manage() =='T' && $parent.orgsoort() == soort " />
</td>
<td style="vertical-align: text-top">ijkpunten op</td>
<td style="vertical-align: text-top"><input class="integer" type="number" min="0" max="100" step="5" size="8"
data-bind="textInput: zprocent,
event: {input: $parent.fUpdateAmbitie},
enable: $parent.manage() =='T' && $parent.orgsoort() == soort " />
<span >%</span><span data-bind="text: ' of hoger', visible: zprocent() != '100' "></span>
</td>
<td data-bind="text: organisatie + ' (' + ambitievan() + ')' " ></td>
<td style="vertical-align: text-top" data-bind="text: organisatie + ' (' + ambitievan() + ')' " ></td>
<td style="vertical-align: text-top" data-bind="text: versievan " ></td>
<td style="text-align: right">
<td style="text-align: right; vertical-align: text-top">
<span class="glyphicon glyphicon-trash"
data-bind="visible: $parent.manage() =='T' && $parent.orgsoort() == soort ,
click:$root.fDelete ">
@@ -69,60 +71,65 @@
<!--/ko-->
<!-- ko if: 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: fNew,
visible: manage() =='T' && eigenAmbitie() == false ">nieuw
visible: manage() =='T' && eigenAmbitie() == false ">nieuw
</button>
</td>
<td colspan="6"></td>
<td colspan="8" ></td>
</tr>
<!--/ko -->
</tbody>
<tbody>
<!-- ko if: 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: scoreNieuw "/>%</td>
<td><input type="number" min="0" class="integer"
data-bind="textInput: ijkNieuw,
attr: {'max': aantalY} " /> ijkpunten
op <input type="number" min="0" max="100" step="5" class="integer"
data-bind="textInput: procentNieuw" />
<span >%</span><span data-bind="text: ' of hoger', visible: procentNieuw() != '100' "></span>
<!-- ko with: orgversie() -->
<tr >
<td style="vertical-align: text-top" data-bind="text: periodenummer "></td>
<td style="vertical-align: text-top" data-bind="text: naam "></td>
<td style="vertical-align: text-top" data-bind="text: geldigvanaf "></td>
<td style="vertical-align: text-top" data-bind="text: geldigtm"></td>
<td style="vertical-align: text-top"><input type="number" min="0" max="100" step="5" class="integer"
data-bind="textInput: $parent.gemscoreNew "/>%</td>
<td style="vertical-align: text-top"><input type="number" min="0" class="integer"
data-bind="textInput: $parent.aantalYNew,
attr: {'max': $parent.aantalYNew} " />
</td>
<td data-bind="text: soortNaam() " ></td>
<td style="vertical-align: text-top">ijkpunten op </td>
<td style="vertical-align: text-top"><input type="number" min="0" max="100" step="5" class="integer"
data-bind="textInput: $parent.zprocentNew" />
<span >%</span>
<span data-bind="text: ' of hoger', visible: $parent.zprocentNew() != '100' "></span>
</td>
<td style="vertical-align: text-top" data-bind="text: ambitievan "></td>
<td style="vertical-align: text-top" data-bind="text: versievan" ></td>
<td >
</td>
</tr>
<tr>
<td colspan="2">
<td colspan="10">
<button style="background-color: #A28A29; color: white; box-shadow: 1px 1px 2px #faf7eb;
font-weight: bold; margin-top; 20px;"
data-bind="click: fOpslaan ">opslaan
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: fAnnuleer ">annuleer
data-bind="click: $parent.fAnnuleer ">annuleer
</button>
</td>
<td colspan="4"></td>
</tr>
<!--/ko -->
<!--/ko -->
</tbody>
</table>