load->model($models);
$this->load->helper('string');
if ( ! $this->check_online_status() ) {
echo json_encode( array('offline' => TRUE) );
die;
};// if
}
function getrechten(){
if (!$this->userid) die;
$editok = false;
if ($this->Autorisaties_model->check_autorisatie($this->userrole,259 ) > 0) $editok = true;
echo json_encode($editok);
}
function getchapters(){
$chapters= $this->Hoofdstukken_model->getoldchapters();
foreach ($chapters as $chapter){
$chapter->aanwezig = false;
}
echo json_encode($chapters);
}
function getschooljaarversies($profielid, $chapterid){
$availversies = $this->Schooljaren_model->getschooljaren();
if ($availversies) {
foreach($availversies as $versie){
$versie->id = $versie->schooljaarnr;
}
}
$currentorgversie = $this->Sopinhouden_model->get_fieldvalue(array("profiel_id"=>$profielid, "chapter_id"=>$chapterid), "orgversieid");
if ($currentorgversie == NULL || $currentorgversie == 'undefined' || ! $currentorgversie){
$currentorgversie= $this->Sopinhouden_model->getschooljaar($profielid);
if ($currentorgversie == NULL && $availversies){
$currentorgversie = $availversies[0]->schooljaarnr;
}
}
$versies = array( "currentorgversie" =>$currentorgversie,"availversies" => $availversies);
return $versies;
}
function getlijstversies($profielid, $modulenr, $chapterid){
$orgid = $this->globorgid;
$profiel = $this->Sop_model->get_record_by_id($profielid);
$versies = $this->Filledversions_model->getfilledversionsperorg($orgid, $modulenr);
$fvid = 0;
$availversies = [];
if ($versies){
foreach($versies as $versie){
$versie->naam = $versie->periodenummer.': '.$versie->geldigvanaf.' - '.$versie->geldigtm;
$fvid = $this->Scores_model->fGetGevuldeVersies($versie->id, $orgid);
if($fvid && $fvid > 0){
$availversies []= $versie;
}
}
}
$currentorgversie = $this->Sopinhouden_model->get_fieldvalue(array("profiel_id"=>$profielid, "chapter_id"=>$chapterid), "orgversieid");
if ($currentorgversie == NULL){
$currentorgversies =$this->Filledversions_model->getversiesperorgperperiode($orgid, $modulenr,$profiel->van, $profiel->tm);
if ($currentorgversies){
$currentorgversie = $currentorgversies[0]->id;
}
else {
// zet currentorgversie op de eerste versie uit de lijst van versies, indien aanwezig
if ($availversies){
$currentorgversie = $availversies[0]->id;
}
};//ELSE
}; //IF ORGVERSIE == NULL
$versies= array('currentorgversie' => $currentorgversie, 'availversies'=>$availversies);
return $versies;
}
function Getversies($profielid,$chapterid){
$versies = [];
$hoofdstuk = $this->Hoofdstukken_model->get_record_by_id($chapterid);
if ($hoofdstuk->module == 0 ) return $versies;
$module = $this->Modules_model->get_record_by_id( $hoofdstuk->module);
if($module){
if (intval($module->versietype) == 1) {
$versies = $this->getschooljaarversies($profielid, $chapterid);
}
if (intval($module->versietype) == 2) {
$versies = $this->getlijstversies($profielid, $module->sysnr, $chapterid);
} ;
}
return $versies;
}
function controleerschool(){
if (!$this->userid) die;
$orgid = $this->globorgid;
$school = false;
$organisatie = $this->Organisaties_model->get_record_by_id($orgid);
if ($organisatie && $organisatie->soort == 4) $school = true;
echo json_encode($school);
}
function getprofielen(){
if (!$this->userid) die;
$orgid = $this->globorgid;
$profielen = $this->Sop_model->getprofielen($orgid);
echo json_encode($profielen);
}
function maaknewprofiel(){
if (!$this->userid) die;
$orgid =$this->globorgid;
$data = array( 'organisatie_id'=> $orgid,
'naam' =>$this->clean_input("naam"),
'van' => date2mysql($this->clean_input("van")),
'tm' => date2mysql($this->clean_input('tm')),
'versie' => 'OUD');
$newid = $this->Sop_model->insert_record($data);
$profiel =$this->Sop_model->getprofiel($newid);
echo json_encode($profiel);
}
function updateprofiel(){
if (!$this->userid) die;
$data = array('naam' =>$this->clean_input("naam"),
'van' => date2mysql($this->clean_input("van")),
'tm' => date2mysql($this->clean_input('tm')),
'versie' => 'OUD' );
$this->Sop_model->update_record($data, $this->clean_input('id'));
echo json_encode('ok');
}
function deleteprofiel(){
if (!$this->userid) die;
//delete het tb_profiel record en alle records in de hoofdstukken tabel
$targetid= $this->uri->segment(4);
$this->Sop_model->delete_record($targetid);
}
function getchaptercontent(){
if (!$this->userid) die;
$chapterid = $this->clean_input("chapterid");
$profielid = $this->clean_input("profielid");
$targetversieid = $this->clean_input("versieid");
$versies = $this->Getversies($profielid, $chapterid);
if (!$targetversieid && (count($versies) > 0 ) && $versies['currentorgversie']) {
$targetversieid = $versies['currentorgversie'];
}
$content = $this->Sopinhouden_model->get_records_where(array('profiel_id'=>$profielid, 'chapter_id'=>$chapterid),true);
if (!$content){
$returnarray = $this->Sopinhouden_model->maakcontent($chapterid,$profielid, $targetversieid);
$contenttekst = $returnarray['content'];
$inhoudid = $this->savecontent($chapterid,$profielid,$contenttekst, $returnarray['versie']);
$content = $this->Sopinhouden_model->get_records_where(array("id"=>$inhoudid),true);
}
if ($content && is_null($content->orgversieid)){
// kan nog voorkomen bij "oude hoofdstukken"
$targetversie = $this->getversieandsave($profielid, $chapterid, $targetversieid);
$content->orgversieid = $targetversie;
}
echo json_encode(array('inhoud'=>$content, 'versies'=>$versies));
}
function getversieandsave($profielid, $chapterid, $targetversieid){
$versie = $targetversieid;
$orgid = $this->globorgid;
$chapter = $this->Hoofdstukken_model->get_record_by_id($chapterid);
$module = $this->Modules_model->get_record_by_id($chapter->module);
if (!$module ) return $versie;
if ($versie == null || $versie==0){
if ($module->versietype == 1) {
// get schooljaar
$versie = $this->Sopinhouden_model->gettargetjaar($profielid, $orgid, $chapterid);
}
if ($module->versietype == 2) {
// orgversie
$versie = $this->Sopinhouden_model->gettargetversie($profielid, $orgid, $chapterid);
}
}
$data = array('orgversieid' => $versie);
$where = array("profiel_id" => $profielid,
"chapter_id" => $chapterid);
$this->Sopinhouden_model->update_record_where($data, $where);
return $versie;
}
function savecontent($chapterid, $profielid,$content,$versie =FALSE){
if (!$this->userid) die;
$data = array( 'profiel_id' => $profielid,
'chapter_id' => $chapterid,
'content' => $content,
'orgversieid' => $versie);
$newid=$this->Sopinhouden_model->insert_record($data);
return $newid;
}
function saveinhoud(){
if (!$this->userid) die;
$tekst = $this->input->post('tekst');
$inhoudid = $this->input->post('id');
$orgversie = $this->input->post('orgversie');
if ($orgversie == '') $orgversie =null; // dit kan bij hoofdstuk inleiding
$this->Sopinhouden_model->update_record(array('content'=>$tekst, 'orgversieid' =>$orgversie), $inhoudid);
}
function maakHtml($profielid, $word){
if (!$this->userid) die;
$profiel = $this->Sop_model->get_record_by_id($profielid);
$jaar1 = substr($profiel->van,0, 4);
$jaar2 = substr($profiel->tm, 0, 4);
$organisatie = $this->Organisaties_model->get_record_by_id($this->globorgid);
$bg = $this->Organisaties_model->get_record_by_id($organisatie->valtonder_id);
$data=array( "profielid" => $profielid,
"orgnaam" => $organisatie->naam,
"jaar1" => $jaar1,
"jaar2" => $jaar2,
"bgnaam" =>$bg->naam);
$html=$this->load->view("monpas/sop/sopvoorpagina", $data, true);
$html=$html;
for ($i=1; $i<=12;$i++){
$where=array("profiel_id" => $profielid,
"chapter_id" => $i);
$tekst=$this->Sopinhouden_model->get_fieldvalue($where,'content');
if ($tekst){
if ($word){
$html=$html."