Files
2021-07-10 16:25:16 +02:00

224 lines
8.1 KiB
PHP

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Nivoprofielen extends MY_controller {
function __construct(){
parent::__construct();
$models = array('ijkpartituur/Nivoprofielen_model',
'ijkpartituur/Pijlers_model',
"ijkpartituur/ModActiviteiten",
"ijkpartituur/Versies_model",
'ijkpartituur/Niveaus_model');
$this->load->model($models);
$this->load->library('monpas/kleurcodes');
if ( ! $this->check_online_status() ) {
echo json_encode( array('offline' => TRUE) );
die;
};// if
}
public function index(){
}
function getNiveaus($versieID=false){
if (!$versieID ) { $versieID = $this->globProfielVersieID; };
$niveaus = $this->Nivoprofielen_model->get_profielen_niveaus($versieID);
return $niveaus;
}
function getPijlerprofiel(){
$nivo = $this->uri->segment(4);
$pijlerprofiel=$this->Nivoprofielen_model->get_profielen_profiel($nivo);
echo json_encode(array('pijlerprofiel' =>$pijlerprofiel));
}
function savePijlerProfiel(){
$niveauID=$this->input->post('niveauID');
$profielArray = $this->input->post("pijlerwaarden");
foreach ($profielArray as $profiel){
$data =array('niveauID' =>$niveauID,
'pijlerID' => $profiel['pijlerID'],
'waarde' => $profiel['waarde']);
$id = $profiel['profielID'];
if ($id == 0){ $this->Nivoprofielen_model->save_record($data,false); }
else { $this->Nivoprofielen_model->save_record($data, $id); };
}; // for each
}
function getVersies(){
$versies=$this->Versies_model->get_versies();
return $versies;
}
function getPijlers($versieID=false){
if (!$versieID) {$versieID = $this->globProfielVersieID;} ;
$versieID = 1;
if ($this->super ) {
$naam="gebruikersactiviteiten" ;
$pijlernul= array("id" => 0,
"volgorde" => 0,
"naam" => "Gebruikersactiviteiten/inhouden",
"omschrijving" => 'activiteiten aangemaakt door niet-framework gebruikers');
$pijlers=$this->Pijlers_model->get_pijlers($versieID);
array_push($pijlers, $pijlernul);
}
else{
$pijlers= array(array("id" => 0,
"volgorde" => 0,
"naam" => "Eigen activiteiten/inhouden",
'omschrijving' => "activiteiten aangemaakt door de gebruikers van de eigen organisatie"));
};
echo json_encode($pijlers);
}
function getPijlers2($versieID=false){
if (!$versieID) { $versieID = $this->globProfielVersieID;} ;
$pijlers=$this->Pijlers_model->get_pijlers($versieID);
return $pijlers;
}
function getActiviteiten(){
$pijlerid=$this->uri->segment(4);
$activiteiten = $this->Activiteiten_model->get_activiteiten_per_pijler(0,$pijlerid);
echo json_encode($activiteiten);
}
function saveVersion(){
$data = $this->clean_input();
$vID = $this->clean_input('id');
$this->Versies_model->update_record($data, $vID);
}
function saveNewVersion(){
$fromID= -1;
$copyJN=true;
if($this->uri->segment(3) == 'false') {$copyJN= false; };
$data=$this->clean_input();
$laatsteVersieID=-1;
if ($copyJN==true){
$laatsteVersieID = $this->Versies_model->get_laatste_record();
$where = array("fw_versie" =>$laatsteVersieID);
$laatsteOTypen = $this->Niveaus_model->get_last_niveaus($laatsteVersieID);
$laatstePijlers = $this->Pijlers_model->get_last_pijlers($laatsteVersieID);
}; // if copyjn
$newVersieID = $this->Versies_model->insert_record($data);
$newVersie = $this->Versies_model->get_record_by_id($newVersieID,false,true);
//NU INSERT kopieen
if ($copyJN==true){
foreach($laatstePijlers as $Pijler){
$data = array("volgorde" => $Pijler->volgorde,
"naam" => $Pijler->naam,
"omschrijving" =>$Pijler->omschrijving,
"fw_versie" => $newVersieID,
"actief" => 1 );
$newID = $this->Pijlers_model->insert_record($data);
if ($fromID <=-1) {$fromID=$newID;};
$laatsteProfielen = $this->Nivoprofielen_model->get_last_profielen($Pijler->id);
foreach($laatsteProfielen as $Profiel){
$data = array("niveauID " => $Profiel->niveauID,
"pijlerID" => $newID,
"waarde" => $Profiel->waarde);
$this->Nivoprofielen_model->insert_record($data);
}
}; // for each laatste Pijlers
foreach ($laatsteOTypen as $OType){
$data=array("nummer" => $OType->nummer,
"omschrijving" => $OType->omschrijving,
"fw_versie" => $newVersieID,
"actief" =>1);
$newID = $this->Niveaus_model->insert_record($data);
$this->Nivoprofielen_model->update_niveau($OType->id, $newID,$fromID);
}; // for each OTypen
};
echo json_encode(array('newVersie'=>$newVersie));
}
function deleteVersion(){
if(!$this->Autorisaties_model->check_autorisatie($this->user_role, SUPERUSER) <=0) return;
$ID = $this->uri->segment(4);
// delete Niveaus
$where = array("fw_versie" =>$ID);
$this->Niveaus_model->delete_record_where($where);
//delete profielen, zoek eerst de pijlers, verwijder dan de profielen
$Pijlers =$this->Pijlers_model->get_records_where($where);
foreach($Pijlers as $Pijler) {
$where= array("pijlerID" =>$Pijler->id);
$this->Nivoprofielen_model->delete_record_where($where);
}; // foreach
$where= array("fw_versie" =>$ID);
$this->Pijlers_model->delete_record_where($where);
$this->Versies_model->delete_record($ID);
}
function GetAll(){
if(!$this->Autorisaties_model->check_autorisatie($this->user_role, SUPERUSER) <=0) return;
$versieID = $this->uri->segment(4);
$versies='';
if ($versieID == 0) {
$versies = $this->getVersies();
$versieID = $versies[0]->id;
};
$niveaus = $this->getNiveaus($versieID);
$pijlers = $this->getPijlers2($versieID);
$kleurcodes = $this->kleurcodes->getkleurcodesfromdatabase();
echo json_encode(array( 'versies' =>$versies,
'niveaus' =>$niveaus,
'pijlers' =>$pijlers,
"kleurcodes"=> $kleurcodes));
}
function DeleteNiveaus(){
$NiveauID = $this->uri->segment(4);
//1. delete pijlerprofielen
$where= array("niveauID" =>$NiveauID);
$this->Nivoprofielen_model->delete_record_where($where);
//2. delete niveau
$this->Niveaus_model->delete_record($NiveauID);
}
function AddNiveau(){
$where=array( 'nummer' => $this->clean_input("nummer"),
"omschrijving" => $this->clean_input("omschrijving"),
"fw_versie" => $this->clean_input("versie"),
'actief' => 1);
$newID = $this->Niveaus_model->insert_record($where);
$newRecord = $this->Niveaus_model->get_record_by_id($newID);
echo json_encode($newRecord);
}
function SaveNiveau(){
$id = $this->clean_input("id");
$data = array("nummer" => $this->clean_input('nummer'),
"omschrijving" => $this->clean_input('omschrijving') );
$this->Niveaus_model->update_record($data,$id);
}
function DeletePijler(){
// verwijder eerst het bijbehorende pijlerprofiel
// verwijder dan de pijler
$niveauID = $this->uri->segment(5);
$pijlerID = $this->uri->segment(4);
$where =array("niveauID" => $niveauID,
"pijlerID" => $pijlerID);
$this->Niovprofielen_model->delete_record_where($where);
$this->Pijlers_model->delete_record($pijlerID);
}
function SavePIJler(){
$id = $this->input->post("id");
$data=array('volgorde' =>$this->clean_input("volgorde"),
'naam' => $this->clean_input("naam"));
$this->Pijlers_model->update_record($data, $id);
}
function SaveProfiel(){
$id = $this->input->post("id");
$data=array('waarde' =>$this->input->post("waarde") );
$this->Nivoprofielen_model->update_record($data, $id);
}
function AddPijler(){
// add de pijler en add dan, indien nodig het rocrd voor profiel
$where=array( 'volgorde' => $this->clean_input("volgorde"),
"naam" => $this->clean_input("pijlernaam"),
"fw_versie" => $this->clean_input("versie"));
$newID = $this->Pijlers_model->insert_record($where);
$newRecord = $this->Pijlers_model->get_record_by_id($newID);
if ($this->input->post("niveauID") > 0){
$where=array("niveauID" => $this->input->post("niveauID" ),
"pijlerID" => $newID,
'waarde ' => 1);
$newProfID = $this->Nivoprofielen_model->insert_record($where);
$newRecord->profielID = $newProfID;
};
echo json_encode($newRecord);
}
}