Files
monpas/application/controllers/monpas/Rapontwikkel.php
T
2021-11-18 14:15:47 +01:00

290 lines
9.8 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 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;
}
};
if ( $gewenst )
{
$i = 0;
foreach ( $scores as $score )
{
$score->gewenstid = $gewenst[ $i ]->id;
$score->gewenst = $gewenst[ $i ]->wens;
$i = $i + 1;
}; //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 = NULL;
// 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 );
if ( $gewenst )
{
$i = 0;
foreach ( $scores as $score )
{
$score->gewenstid = $gewenst[ $i ]->id;
$score->gewenst = $gewenst[ $i ]->wens;
$i = $i + 1;
}; //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 );
}
}