250 lines
10 KiB
PHP
250 lines
10 KiB
PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
class Monitor extends MY_Controller{
|
|
|
|
function __construct(){
|
|
parent::__construct();
|
|
$models = array("shared/Users_model",
|
|
"monpas/Filledversions_model" ,
|
|
"monpas/Modules_model",
|
|
"monpas/Orgversies_model",
|
|
"monpas/Ijkpunten_model",
|
|
"monpas/Antwoordopties_model",
|
|
"monpas/Indicatoren_model",
|
|
"monpas/Scores_model",
|
|
"monpas/Oordelen_model",
|
|
"shared/Session_model",
|
|
"Phantom_model");
|
|
$this->load->model($models);
|
|
$this->load->helper('string');
|
|
if ( ! $this->check_online_status() ) {
|
|
echo json_encode( array('offline' => TRUE) );
|
|
die;
|
|
};// if
|
|
}
|
|
|
|
function getperiodesperschool(){
|
|
if (!$this->userid) die;
|
|
$versies = array();
|
|
$organisatie=$this->Organisaties_model->get_record_by_id($this->globorgid);
|
|
$module = $this->session->userdata('module');
|
|
$modulenaam = $this->Modules_model->get_fieldvalue(['id'=>$module],'naamkort');
|
|
$modulenaam = str_replace(' ', '', $modulenaam);
|
|
$gaverder = true; // zoek verder omdat er nog geen actieve versie is
|
|
// zoek eerst de reeds ingevulde versies
|
|
// zoek dan de actieve versie
|
|
// als de actieve versie nog niet bij de ingevulde versies zit, voeg die dan toe.
|
|
$versies = $this->Filledversions_model->getfilledversionsperorg($organisatie->id, $module);
|
|
if ($versies){
|
|
foreach($versies as $versie){
|
|
if ($versie->actief){$gaverder = false;};
|
|
}
|
|
};
|
|
if ($gaverder){
|
|
// zoek de actieve versie
|
|
$BGid = $this->Organisaties_model->get_fieldvalue(array("id" => $this->globorgid), 'valtonder_id');
|
|
$actieveversie = $this->Orgversies_model->getallorgversies($BGid,$module,true);
|
|
|
|
if (!$actieveversie){
|
|
$KamerID = $this->Organisaties_model->get_fieldvalue(array("id" =>$BGid), 'valtonder_id');
|
|
$actieveversie = $this->Orgversies_model->getallorgversies($KamerID,$module,true);
|
|
|
|
if (!$actieveversie){
|
|
$SWVID = $this->Organisaties_model->get_fieldvalue(array("id" =>$KamerID), 'valtonder_id');
|
|
$actieveversie = $this->Orgversies_model->getallorgversies($SWVID, $module,true);
|
|
}
|
|
// merge de actieveversie als die gevonden is
|
|
if (!$versies ) {$versies = array();};
|
|
if (!$actieveversie) {$actieveversie = array();};
|
|
$versies = array_merge($actieveversie, $versies);
|
|
}
|
|
};
|
|
echo json_encode(array("versies"=>$versies,
|
|
"soort"=>$organisatie->soort,
|
|
"module" => $modulenaam));
|
|
}
|
|
function getperiodesperschoolvanuitpartituur(){
|
|
if (!$this->userid) die;
|
|
|
|
$versies = array();
|
|
|
|
$organisatie=$this->Organisaties_model->get_record_by_id($this->globorgid);
|
|
$module = $this->uri->segment(4); // dit hier gezet worden omdat de partituur zelf een module is
|
|
$gaverder = true; // zoek verder omdat er nog geen actieve versie is
|
|
// zoek eerst de reeds ingevulde versies
|
|
// zoek dan de actieve versie
|
|
// als de actieve versie nog niet bij de ingevulde versies zit, voeg die dan toe.
|
|
$versies = $this->Filledversions_model->getfilledversionsperorg($organisatie->id, $module);
|
|
if ($versies){
|
|
foreach($versies as $versie){
|
|
if ($versie->actief){$gaverder = false;};
|
|
}
|
|
};
|
|
if ($gaverder){
|
|
// zoek de actieve versie
|
|
$BGid = $this->Organisaties_model->get_fieldvalue(array("id" => $this->globorgid), 'valtonder_id');
|
|
$actieveversie = $this->Orgversies_model->getallorgversies($BGid,$module,true);
|
|
|
|
if (!$actieveversie){
|
|
$KamerID = $this->Organisaties_model->get_fieldvalue(array("id" =>$BGid), 'valtonder_id');
|
|
$actieveversie = $this->Orgversies_model->getallorgversies($KamerID,$module,true);
|
|
|
|
if (!$actieveversie){
|
|
$SWVID = $this->Organisaties_model->get_fieldvalue(array("id" =>$KamerID), 'valtonder_id');
|
|
$actieveversie = $this->Orgversies_model->getallorgversies($SWVID, $module,true);
|
|
}
|
|
// merge de actieveversie als die gevonden is
|
|
if (!$versies ) {$versies = array();};
|
|
if (!$actieveversie) {$actieveversie = array();};
|
|
$versies = array_merge($actieveversie, $versies);
|
|
}
|
|
};
|
|
echo json_encode(array("versies"=>$versies, "soort"=>$organisatie->soort));
|
|
}
|
|
function getperiodes(){
|
|
if (!$this->userid) die;
|
|
$versies = false;
|
|
|
|
$organisatie=$this->Organisaties_model->get_record_by_id($this->globorgid);
|
|
$soort = $organisatie->soort;
|
|
$module = $this->session->userdata('module');
|
|
if ($soort == 4) {
|
|
$versies = $this->Filledversions_model->getfilledversionsperorg($organisatie->id, $module);
|
|
|
|
$BGid = $this->Organisaties_model->get_fieldvalue(array("id" => $this->globorgid), 'valtonder_id');
|
|
$versies = $this->Orgversies_model->getallorgversies($BGid,$module);
|
|
if (!$versies ){
|
|
$KamerID = $this->Organisaties_model->get_fieldvalue(array("id" =>$BGid), 'valtonder_id');
|
|
$versies = $this->Orgversies_model->getallorgversies($KamerID,$module);
|
|
}
|
|
$gaverder = $this->Orgversies_model->getallorgversies($BGid, $module, TRUE);
|
|
if (!$versies ){
|
|
$SWVID = $this->Organisaties_model->get_fieldvalue(array("id" =>$KamerID), 'valtonder_id');
|
|
$versies = $this->Orgversies_model->getallorgversies($SWVID, $module);
|
|
}
|
|
}
|
|
echo json_encode(array("versies"=>$versies, "soort"=>$soort));
|
|
}
|
|
|
|
function getlistitems(){
|
|
if (!$this->userid) die;
|
|
$orgversieid = $this->uri->segment(4);
|
|
$orgversie = $this->Orgversies_model->get_record_by_id($orgversieid);
|
|
|
|
// haal de ijkpunten op waar de scores onder moeten komen
|
|
$listijkpunten = $this->Ijkpunten_model->getijkpunten1($orgversie->versie_id);
|
|
// zoek op of er al scores zijn ingevuld (via filledversion)
|
|
$fillerid =false;
|
|
$orgid = $this->globorgid; //er moet altijd gezocht worden op orgid omdat de gebruiker tot verschillende organisaties kan behoren
|
|
if ($orgversie->vorm == 2) $fillerid = $this->userid;
|
|
$filledversion = $this->Filledversions_model->getfilledversion($orgversieid, $orgid,$fillerid, $orgversie->vorm);
|
|
if (!$filledversion){
|
|
// start een nieuwe filledversion
|
|
$userid= null;
|
|
if ($orgversie->vorm == 2) {$userid = $this->userid;};
|
|
$data = array( "orgversie_id" => $orgversie->id,
|
|
"organisatie_id" => $this->globorgid,
|
|
"user_id" => $userid);
|
|
$newid = $this->Filledversions_model->insert_record($data);
|
|
$filledversion = $this->Filledversions_model->getfilledversionbyid($newid);
|
|
// start een nieuwe set van score-records
|
|
if ($listijkpunten){
|
|
foreach($listijkpunten as $ijkpunt){
|
|
$this->MaakScoreRecords($ijkpunt->id,$filledversion->id, $orgversie->scoretype);
|
|
}; //foreach
|
|
}; //if
|
|
}; // if not fillversion
|
|
// als er al wel een filledversion is, haal dan de scores op
|
|
if ($listijkpunten) {
|
|
foreach($listijkpunten as $ijkpunt){
|
|
$ijkpunt->indicatorscores = $this->Scores_model->getscores($ijkpunt->id, $filledversion->id,$orgversie->vorm);
|
|
if ($ijkpunt->indicatorscores){
|
|
foreach($ijkpunt->indicatorscores as $score){
|
|
if ($score->scoretype != 1){$score->score= substr($score->score, 0, strlen($score->score) -2 ); };
|
|
if ($score->scoretype ==1) {$score->score= str_replace('.',',',$score->score); };
|
|
}; //for each
|
|
}; // if scores
|
|
}; //foreach
|
|
};
|
|
if ($listijkpunten) {
|
|
$scoreopties = $this->Antwoordopties_model->getAntwoordopties($orgversie->scoretype);
|
|
}
|
|
$writer = $this->Autorisaties_model->check_write();
|
|
echo json_encode(array("ijkpunten" => $listijkpunten,
|
|
"notitie" => $filledversion->notitie,
|
|
"fvid" => $filledversion->id,
|
|
"meetellen" => $filledversion->meetellen,
|
|
"scoreopties" => $scoreopties,
|
|
"writer" => $writer) );
|
|
}
|
|
|
|
function MaakScoreRecords($ijkpuntid, $filledversionid, $scoretype){
|
|
$indicators = $this->Indicatoren_model->getindicatoren($ijkpuntid);
|
|
if ($indicators){
|
|
foreach($indicators as $indicator){
|
|
$data=array( "filledversion_id" =>$filledversionid,
|
|
"ijkpunt_id" => $ijkpuntid,
|
|
"indicator_id" => $indicator->id,
|
|
"score" => 0,
|
|
"scoretype" =>$scoretype);
|
|
$this->Scores_model->insert_record($data);
|
|
}
|
|
}
|
|
}
|
|
|
|
function updatescore(){
|
|
//TODO clean input
|
|
if (!$this->userid) die;
|
|
$scoreid = $this->clean_input("indicatorscoreid");
|
|
$score = str_replace(',','.',$this->clean_input("score"));
|
|
// $this->deleteOordeel($scoreid);
|
|
$scorerecord = $this->Scores_model->get_record_by_id($scoreid);
|
|
$this->Oordelen_model->delete_record_where(array("ijkpunt_id"=>$scorerecord->ijkpunt_id,
|
|
"filledversion_id"=>$scorerecord->filledversion_id))
|
|
;
|
|
$this->Scores_model->update_record(array("score" => $score), $scoreid);
|
|
}
|
|
|
|
function savenotitie(){
|
|
// TODO Clean input
|
|
if (!$this->userid) die;
|
|
$notitie = $this->clean_input('notitie');
|
|
$fvid = $this->clean_input('fvID');
|
|
if ($fvid){
|
|
$this->Filledversions_model->update_record(array("notitie"=>$notitie), $fvid);
|
|
}
|
|
}
|
|
|
|
function lijstmeetellen(){
|
|
if (!$this->userid) die;
|
|
$meetellen = $this->clean_input('meetellen');
|
|
$fvid = $this->clean_input('fvID');
|
|
if($fvid)
|
|
$this->Filledversions_model->update_record(array('meetellen' =>$meetellen), $fvid);
|
|
|
|
}
|
|
|
|
function printlijst(){
|
|
$inputstring = $this->input->post('data');
|
|
$input = json_decode($inputstring);
|
|
$module = $input->module;
|
|
$info = $input->info;
|
|
$tabel = $input->tabel;
|
|
$notitie = $input->notitie;
|
|
$zichtbaar = $input->zichtbaar;
|
|
$data = [];
|
|
$data['module'] = $module;
|
|
$data['info'] = $info;
|
|
$data['tabel'] = $tabel;
|
|
$data['notitie'] = $notitie;
|
|
$data['zichtbaar'] = $zichtbaar;
|
|
$data['today'] = date("d-m-Y");
|
|
$data['organisatie'] = '';
|
|
$organisatie = $this->Organisaties_model->get_orgnaam($this->globorgid);
|
|
if($organisatie) $data['organisatie'] = $organisatie;
|
|
$filenaam = $input->filenaam;
|
|
$html=$this->load->view("monpas/reports/printlijst.php", $data, true);
|
|
|
|
$this->Phantom_model->create_pdf($html,$filenaam, FALSE,FALSE,FALSE);
|
|
}
|
|
}
|