304 lines
10 KiB
PHP
304 lines
10 KiB
PHP
<?php if ( ! defined( 'BASEPATH' ) ) exit( 'No direct script access allowed' );
|
|
|
|
class Rapontwikkel extends MY_Controller {
|
|
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
$models = [
|
|
"shared/Users_model",
|
|
"monpas/Ijkpunten_model",
|
|
"shared/Organisaties_model",
|
|
"monpas/Modules_model",
|
|
"monpas/Scores_model",
|
|
"monpas/Wenssituaties_model",
|
|
"Phantom_model",
|
|
"shared/Orgusers_model",
|
|
"monpas/Orgversies_model"];
|
|
$this->load->model( $models );
|
|
$this->load->helper( 'string' );
|
|
$this->load->library( 'monpas/kleurcodes' );
|
|
if ( ! $this->check_online_status() )
|
|
{
|
|
echo json_encode( ['offline' => TRUE] );
|
|
die;
|
|
};// if
|
|
}
|
|
|
|
function getModule(){
|
|
$module = $this->session->userdata('module');
|
|
|
|
echo json_encode($module);
|
|
}
|
|
|
|
function savegewenst()
|
|
{
|
|
//TODO clean input
|
|
if ( ! $this->userid ) die;
|
|
$orgid = $this->clean_input( "orgid" );
|
|
$orgversieid = $this->clean_input( "orgversionid" );
|
|
$orguserid = $this->clean_input( "orguserid" );
|
|
|
|
if ( $orguserid == 0 )
|
|
{
|
|
$orguserid = NULL;
|
|
}
|
|
$wensarray = $this->clean_input( "wensarray" );
|
|
$wensids[] = ""; // array van ids om terug te geven
|
|
if ( $wensarray )
|
|
{
|
|
foreach ( $wensarray as $wens )
|
|
{
|
|
|
|
if ( $wens['wensid'] > 0 )
|
|
{
|
|
$data = ["wens" => $wens['gewenst']];
|
|
$this->Wenssituaties_model->update_record( $data, $wens['wensid'] );
|
|
$wensids[] = $wens['wensid'];
|
|
}
|
|
else
|
|
{
|
|
$data = [
|
|
"organisatie_id" => $orgid,
|
|
"orgversie_id" => $orgversieid,
|
|
"orguser_id" => $orguserid,
|
|
"ijkpunt_id" => $wens['ijkpuntid'],
|
|
"wens" => $wens['gewenst']];
|
|
$wensids[] = $this->Wenssituaties_model->insert_record( $data );
|
|
}
|
|
}; // foreach
|
|
echo json_encode( $wensids );
|
|
}
|
|
} // save gewenst
|
|
|
|
function getscores()
|
|
{
|
|
if ( ! $this->userid ) die;
|
|
// deze functie wijkt af van getscores in rapijkpunten omdat ook gewenst moet
|
|
// worden opgehaald, en geen ambities
|
|
|
|
$orgversieid = $this->clean_input( "orgversieid" );
|
|
$orgid = $this->clean_input( "orgid" );
|
|
$organisatie = $this->Organisaties_model->getorg( $orgid );
|
|
$scores = NULL;
|
|
$gewenst = NULL;
|
|
$orgversie = $this->Orgversies_model->get_record_by_id($orgversieid);
|
|
if($orgversie->scoretype == 7){
|
|
$grens1 = 33;
|
|
$grens2 = 66;
|
|
$grens3 = 100;
|
|
}
|
|
// als de organisatie een school is : haal de gemiddelde score op (als de 'ik-versie" wordt gebruikt
|
|
// let op als ik-versie dan moeten de gegevens van de users worden opgehaald maar
|
|
// dat gaat vanzelf omdat gezocht wordt naar organisatie (via filled versions);
|
|
// let op ja nee bezig wordt vertaald naar 10, 0 en 5
|
|
|
|
if ( ! $organisatie )
|
|
{
|
|
echo json_encode( ['scores' => FALSE] );
|
|
return;
|
|
}
|
|
|
|
if ( $organisatie->soort == 1 || $organisatie->soort == 2 || $organisatie->soort == 3 )
|
|
{
|
|
$schoolids = $this->Organisaties_model->getscholenondertarget( $organisatie->id );
|
|
|
|
if ( $schoolids )
|
|
{
|
|
$lijst = implode( ',', $schoolids );
|
|
|
|
}
|
|
}
|
|
if ( $organisatie->soort == 4 )
|
|
{
|
|
$lijst = $organisatie->id;
|
|
//
|
|
}
|
|
|
|
$scores = $this->Scores_model->getgemscores( $orgversieid, $lijst);
|
|
if ( $scores )
|
|
{
|
|
$gewenst = $this->Wenssituaties_model->getgewenst( $orgversieid, $orgid );
|
|
}
|
|
// haal ook nog de criteria van de organisatie op
|
|
if ( $scores )
|
|
{
|
|
foreach ( $scores as $score )
|
|
{
|
|
if(! isset($score->gem)) $score->gem = 0;
|
|
// if ( $score->num > 0 )
|
|
// {
|
|
// $score->gem = round( $score->somscore / $score->num, 1 );
|
|
// }
|
|
$score->huidig = $this->kleurcodes->getnummer( $score->gem );
|
|
if($orgversie->scoretype == 7){
|
|
if($score->gem == $grens3) $score->huidig = 4;
|
|
if($score->gem < $grens3) $score->huidig = 3;
|
|
if($score->gem <= $grens2) $score->huidig = 2;
|
|
if($score->gem <= $grens1) $score->huidig = 1;
|
|
}
|
|
|
|
};
|
|
|
|
{
|
|
|
|
foreach ( $scores as $index=> $score ) {
|
|
if($gewenst && count($gewenst)> ($index)) {
|
|
|
|
$score->gewenstid = $gewenst[$index]->id;
|
|
$score->gewenst = $gewenst[$index]->wens;
|
|
}
|
|
else{
|
|
$score->gewenstid =0;
|
|
$score->gewenst = 0;
|
|
}
|
|
|
|
}; //foreach
|
|
}
|
|
}
|
|
echo json_encode( ['scores' => $scores] );
|
|
} // getscores
|
|
|
|
function checkSchrijfrechtenOrg()
|
|
{
|
|
if ( ! $this->userid ) die;
|
|
$orgid = $this->clean_input( 'orgid' );
|
|
$orgsoort = $this->clean_input( 'orgsoort' );
|
|
|
|
|
|
$werktEr = $this->Orgusers_model->check_for_record( ["user_id" => $this->userid, "organisatie_id" => $orgid] );
|
|
$rechten = FALSE;
|
|
if($this->super){
|
|
$rechten = TRUE;
|
|
}
|
|
|
|
if ($werktEr)
|
|
{
|
|
if ( pow( 4, $orgsoort ) == $this->userrole)
|
|
{
|
|
$rechten = TRUE;
|
|
}
|
|
if($orgsoort == 1 || $orgsoort ==2 || $orgsoort == 3){
|
|
$rechten = TRUE;
|
|
}
|
|
}
|
|
|
|
echo json_encode( $rechten );
|
|
}
|
|
|
|
|
|
|
|
|
|
function scoresindividueel()
|
|
{
|
|
if ( ! $this->userid ) die;
|
|
// deze functie wijkt af van getscores in rapijkpunten omdat ook gewenst moet
|
|
// worden opgehaald, en geen ambities
|
|
|
|
$orgversieid = $this->clean_input( "orgversie" );
|
|
$orgid = $this->clean_input( "orgid" );
|
|
$orguserid = $this->clean_input( "orguserid" );
|
|
$userid = $this->Orgusers_model->get_fieldvalue( ["id" => $orguserid], "user_id" );
|
|
$organisatie = $this->Organisaties_model->getorg( $orgid );
|
|
$scores = NULL;
|
|
$gewenst = FALSE;
|
|
// als de organisatie een school is : haal de gemiddelde score op (als de 'ik-versie" wordt gebruikt
|
|
// let op als ik-versie dan moeten de gegevens van de users worden opgehaald maar
|
|
// dat gaat vanzelf omdat gezocht wordt naar organisatie (via filled versions);
|
|
// let op ja nee bezig wordt vertaald naar 10, 0 en 5
|
|
|
|
$scores = $this->Scores_model->calculateindividualscores( $orgversieid, $orgid, $userid );
|
|
// haal ook nog de criteria op
|
|
if ( ! $scores ) $scores = FALSE;
|
|
|
|
// $genoeg = $this->telScoresSchool( $scores );
|
|
// if ( ! $genoeg ) return;
|
|
|
|
foreach ( $scores as $score )
|
|
{
|
|
|
|
$score->gem = 0;
|
|
if ( $score->num > 0 )
|
|
{
|
|
$score->gem = round( $score->somscore / $score->num, 1 );
|
|
}
|
|
$score->huidig = $this->kleurcodes->getnummer( $score->gem );
|
|
}; // foreach scores
|
|
$gewenst = $this->Scores_model->getgewenstindividueel( $orgid, $orgversieid, $orguserid );
|
|
|
|
foreach ( $scores as $index=> $score ) {
|
|
if($gewenst && count($gewenst)> ($index)) {
|
|
|
|
$score->gewenstid = $gewenst[$index]->id;
|
|
$score->gewenst = $gewenst[$index]->wens;
|
|
}
|
|
else{
|
|
$score->gewenstid =0;
|
|
$score->gewenst = 0;
|
|
}
|
|
|
|
}; //foreach
|
|
|
|
echo json_encode( ['scores' => $scores] );
|
|
} // getscores
|
|
|
|
function checkindividueelschrijfrecht()
|
|
{
|
|
if ( ! $this->userid ) die;
|
|
$orguserid = $this->uri->segment( 4 );
|
|
$userid = $this->Orgusers_model->get_fieldvalue( ["id" => $orguserid], "user_id" );
|
|
|
|
if ( $userid == $this->userid )
|
|
{
|
|
echo json_encode( TRUE );
|
|
}
|
|
else
|
|
{
|
|
echo json_encode( FALSE );
|
|
}
|
|
}
|
|
|
|
|
|
function printontwikkelmatrix()
|
|
{
|
|
if ( ! $this->userid ) die;
|
|
$inputstring = $this->input->get( 'json' );
|
|
$input = json_decode( $inputstring );
|
|
$today = date( "d-m-Y" );
|
|
$organisatie = $this->Organisaties_model->getorg( $input->orgid );
|
|
|
|
$periode = $this->Orgversies_model->get_record_by_id( $input->orgversieid );
|
|
$geldigvanaf= mysql2date( $periode->geldigvanaf );
|
|
$geldigtm = mysql2date( $periode->geldigtm );
|
|
$naam = $geldigvanaf . ' t/m ' . $geldigtm;
|
|
|
|
$resultaten = $input->resultaten;
|
|
|
|
if ( $resultaten ){
|
|
foreach ( $resultaten as $resultaat )
|
|
{
|
|
$resultaat->ijkpunt = $this->Ijkpunten_model->get_fieldvalue( ["id" => $resultaat->ijkpuntid], "omschrijving" );
|
|
}
|
|
}
|
|
|
|
$instrument = $this->Modules_model->get_fieldvalue( ["sysnr" => $this->module], "naam" );
|
|
$labels = $this->Labels_model->getalllabels();
|
|
$kleurtabel = $this->kleurcodes->getkleurlegenda();
|
|
$data = [
|
|
"instrument" => $instrument,
|
|
"organisatie" => $organisatie,
|
|
"periodenaam" => $naam,
|
|
"vandaag" => $today,
|
|
"resultaten" => $resultaten,
|
|
"labels" => $labels,
|
|
"info" => $input->orgversie,
|
|
"docentnaam" => $input->user,
|
|
"kleurtabel" => $kleurtabel];
|
|
// var_dump($data);
|
|
// exit;
|
|
$html = $this->load->view( "monpas/reports/ontwikkelmatrix", $data, TRUE );
|
|
$filenaam = "ontwikkelmatrix";
|
|
$this->Phantom_model->create_pdf( $html, $filenaam, FALSE, FALSE, FALSE );
|
|
}
|
|
}
|