Files
monpas/application/controllers/monpas/Monitor.php
T
2022-02-02 11:12:25 +01:00

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);
}
}