Files
monpas/application/controllers/monpas/Streefcijfers.php
T
2022-11-17 11:34:44 +01:00

301 lines
10 KiB
PHP

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Streefcijfers extends MY_Controller{
function __construct(){
parent::__construct();
$models = array( "shared/Users_model",
'shared/Organisaties_model',
"monpas/Orgversies_model",
"monpas/Ambities_model");
$this->load->model($models);
$this->load->helper('string');
if ( ! $this->check_online_status() ) {
echo json_encode( array('offline' => TRUE) );
die;
};// if
}
function gethierarchie($selfid){
if (!$this->userid) die;
$organisatie= $this->Organisaties_model->get_record_by_id($selfid);
$swvid = null;
$kamerid = null;
$bgid = null;
$schoolid = null;
switch ($organisatie->soort) {
case 1: $swvid = $organisatie->id;
break;
case 2: $kamerid = $organisatie->id;
$swvid =$organisatie->valtonder_id;
break;
case 3: $bgid = $organisatie->id;
$kamerid = $organisatie->valtonder_id;
$org2 = $this->Organisaties_model->get_record_by_id($kamerid);
$swvid = $org2->valtonder_id;
break;
case 4: $schoolid = $organisatie->id;
$bgid = $organisatie->valtonder_id;
$org2 = $this->Organisaties_model->get_record_by_id($bgid);
$kamerid = $org2->valtonder_id;
$org3 = $this->Organisaties_model->get_record_by_id($kamerid);
$swvid = $org2->valtonder_id;
break;
} ; // einde switch
return array('swvid'=>$swvid,
"kamerid" =>$kamerid,
"bgid" =>$bgid,
"schoolid" =>$schoolid);
}
function getorgversies_ambities(){
if (!$this->userid) die;
$targetorgid = $this->uri->segment(4);
$module = $this->session->userdata('module');
// get de ambities van de targetorganisatie
$ambities = $this->Ambities_model->getambities($targetorgid);
// zoek de huidige, actieve orgversie
$organisatie = $this->Organisaties_model->get_record_by_id($targetorgid);
$hierarchie = $this->gethierarchie($targetorgid);
switch ($organisatie->soort){
case 1: $orgversies = $this->Orgversies_model->getallorgversies($hierarchie['swvid'],$module,true);
// let op dit is een array
break;
case 2:
case 3:
case 4:$orgversies = $this->Orgversies_model->getallorgversies($hierarchie['kamerid'],$module, true);
if (!$orgversies){
$orgversies = $this->Orgversies_model->getallorgversies($hierarchie['swvid'],$module, true);
}
// een bg is voorlopig nog niet gekoppeld aan een orgversie
break;
}; //einde switch
if ($orgversies) {
// Als er voor de huidige, actieve orgversies voor de gegeven organisatie nog geen
//ambities zijn, zoek dan de ambitie van de hogere organisatie en anders de default
$alaanwezig = false;
if ($ambities){
foreach($ambities as $ambitie){
if ($ambitie->orgversie_id == $orgversies[0]->id) {$alaanwezig = true; };
}
}
if (!$alaanwezig){
switch($organisatie->soort){
case 1: $ambitie_new = $this->Ambities_model->getdefault2($orgversies[0]->id, $targetorgid);
break;
case 2: $ambitie_new = $this->Ambities_model->getambitie2($orgversies[0]->id, $hierarchie["swvid"]);
if (!$ambitie_new){
$ambitie_new = $this->Ambities_model->getdefault2($orgversies[0]->id, $targetorgid);
};
break;
case 3: $ambitie_new = $this->Ambities_model->getambitie2($orgversies[0]->id, $hierarchie["kamerid"]);
if (!$ambitie_new) {
$ambitie_new = $this->Ambities_model->getambitie2($orgversies[0]->id, $hierarchie["swvid"]);
if (!$ambitie_new){
$ambitie_new = $this->Ambities_model->getdefault2($orgversies[0]->id, $targetorgid);
}
}; // if
break;
};//switch
if ($ambities){
array_push($ambities,$ambitie_new); }
else {$ambities[0] = $ambitie_new;};
}; // if not al aanwezig
}; // if orgversies
if ($ambities){
foreach($ambities as $ambitie){
$ambitie->wijzigok = true;
// if (new DateTime( $ambitie->geldigtm) <= new DateTime() ) {$ambitie->wijzigok = false;};
$ambitie->geldigvanaf = mysql2date($ambitie->geldigvanaf);
$ambitie->geldigtm = mysql2date($ambitie->geldigtm);
}
}
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 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 getambitie(){
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, ',' );
$aantalY = $this->Ijkpunten_model->telijkpunten_bij_orgs($toporgs, $module);
$ambitie = $this->Ambities_model->mh_get_ambitie($module, $ambitieorgs, $toporgs, $aantalY);
if(!$ambitie) return json_encode("Er is geen actieve versie bij het instrument");
echo json_encode($ambitie);
}
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);
$saveorg = $this->globorgid;
if (!$result) return;
}
else{
$saveorg = $orgid;
}
$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);
}
// function getorgversies_ambities_oud(){
// $versies = false;
// $module = $this->session->userdata('module');
// $targetorgid = $this->uri->segment(3);
// $organisatie = $this->Organisaties_model->get_record_by_id($targetorgid);
// $hierarchie = $this->gethierarchie($targetorgid);
// // haal alle orgversies op
// $orgversies = null;
// switch ($organisatie->soort){
// case 1: $orgversiesSWV = $this->Orgversies_model->getallorgversies($targetorgid,$module);
// break;
// case 2: $orgversiesSWV =$this->Orgversies_model->getallorgversies($targetorgid,$module);
// $orgversiesKamer = $this->Orgversies_model->getallorgversies($hierarchie["swvid"],$module);
// break;
// case 3: $orgversiesBG = $this->Orgversies_model->getallorgversies($hierarchie["bgid"],$module);
// $orgversiesKamer = $this->Orgversies_model->getallorgversies($hierarchie["kamerid"],$module);
// $orgversiesBG = $this->Orgversies_model->getallorgversies($hierarchie["swvid"], $module);
// break;
// }; //einde switch
// if ($orgversiesSWV){
// foreach($orgversiesSWV as $orgversie){
// $orgversie->ambitie = $this->Ambities_model->getambitie($orgversie->id,$targetorgid);
// }// foreach
// }; // if
// if ($orgversiesKamer){
// foreach($orgversiesKamer as $orgversie){
// $orgversie->ambitie = $this->Ambities_model->getambitie($orgversie->id,$targetorgid);
// }// foreach
// }; // if
// echo json_encode($orgversies);
// }
function getorganisaties(){
if (!$this->userid) die;
$orgid = $this->globorgid;
$organisatie = $this->Organisaties_model->get_record_by_id($orgid);
if ($organisatie->soort == 3){
// doe verder niks
}
if ($organisatie->soort == 2){
$organisatie->bgs = $this->Organisaties_model->getorgsvanaf($organisatie->id);
}
if ($organisatie->soort == 1) {
$organisatie->kamers = $this->Organisaties_model->getorgsvanaf($organisatie->id);
if ($organisatie->kamers){
foreach ($organisatie->kamers as $kamer){
$kamer->bgs = $this->Organisaties_model->getorgsvanaf($kamer->id);
}
}
}
echo json_encode($organisatie);
}
function getzelfniveau(){
if (!$this->userid) die;
$nivo = $this->Organisaties_model->get_fieldvalue(array("id"=>$this->globorgid), "soort");
echo json_encode($nivo);
}
function updateambitie(){
if (!$this->userid) die;
$id=$this->clean_input("id");
// zoek of de ambitie voor een nieuwe organisatie is
$alaanwezig = $this->Ambities_model->check_for_record(array("organisatie_id"=>$this->clean_input("organisatie_id"),
"orgversie_id" => $this->clean_input("orgversie_id")) );
if ($id ==0 || !$alaanwezig ){
$data=array("organisatie_id" => $this->clean_input("organisatie_id"),
"orgversie_id" => $this->clean_input("orgversie_id"),
"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);
}
else {
$data=array("gem_score" => $this->clean_input("gemscore"),
"x_ijkpunten" => $this->clean_input("xijkpunten"),
"z_procent" => $this->clean_input("zprocent"));
$this->Ambities_model->update_record($data, $id);
$newid =false;
} ;
echo json_encode($newid);
}
function verwijder(){
$ambitieID = $this->clean_input('id');
$error = true;
if ($this->userid){
$this->Ambities_model->delete_record($ambitieID);
$error = false;
}
echo json_encode($error);
}
}