284 lines
11 KiB
PHP
284 lines
11 KiB
PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
/**Orgversies_model maart 2015 */
|
|
|
|
class Orgversies_model extends MY_Model{
|
|
|
|
protected $tablename = 'tb_orgversies';
|
|
|
|
function __construct(){
|
|
parent::__construct();
|
|
$models = array('');
|
|
$this->load->model($models);
|
|
}
|
|
function getallorgversies($orgid, $module, $actief=FALSE){
|
|
$this->sql="SELECT OV.id,
|
|
OV.organisatie_id,
|
|
periodenummer,
|
|
OV.actief,
|
|
versie_id,
|
|
vorm, scoretype,
|
|
DATE_FORMAT(geldigvanaf,'%d-%m-%Y') as geldigvanaf,
|
|
DATE_FORMAT(geldigtm,'%d-%m-%Y') as geldigtm,
|
|
DATE_FORMAT(invullentm,'%d-%m-%Y') as invullentm,
|
|
V.naam,
|
|
count(FV.id) AS ingevuld,
|
|
CASE WHEN count(AO.optie) = count(AO.omschrijving) AND count(AO.omschrijving) > 0 THEN
|
|
1
|
|
ELSE 0
|
|
END AS scoretekst,
|
|
score_omschrijving
|
|
FROM tb_orgversies OV
|
|
JOIN tb_versies V ON V.id = versie_id
|
|
LEFT JOIN tb_filledversions FV ON FV.orgversie_id = OV.id
|
|
LEFT JOIN tb_antwoordopties AO ON AO.type_nr = OV.scoretype
|
|
WHERE OV.organisatie_id = {$orgid}
|
|
AND V.actief = 1
|
|
AND V.modulenr = {$module}";
|
|
if ($actief){
|
|
$this->sql .=" AND OV.actief = 1";
|
|
}
|
|
$this->sql .=" GROUP BY OV.id
|
|
ORDER BY periodenummer DESC";
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getVersieinfo($orgversieid){
|
|
$this->sql="SELECT OV.id AS orgversieid,
|
|
OV.organisatie_id,
|
|
OV.periodenummer,
|
|
OV.actief,
|
|
OV.versie_id,
|
|
OV.vorm, OV.scoretype,
|
|
DATE_FORMAT(geldigvanaf,'%d-%m-%Y') as geldigvanaf,
|
|
DATE_FORMAT(geldigtm,'%d-%m-%Y') as geldigtotenmet,
|
|
DATE_FORMAT(invullentm,'%d-%m-%Y') as invullentm,
|
|
A.omschrijving,
|
|
V.naam
|
|
FROM tb_orgversies OV
|
|
JOIN tb_versies V ON V.id = versie_id
|
|
JOIN tb_antwoordtypes A ON A.sysnr = OV.scoretype
|
|
WHERE OV.id = {$orgversieid}
|
|
ORDER BY geldigtm DESC";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
|
|
|
|
function getkoppeling($id){
|
|
$this->sql="SELECT OV.id, versie_id,vorm,scoretype, OV.actief, OV.organisatie_id
|
|
periodenummer, score_omschrijving,
|
|
DATE_FORMAT(geldigvanaf,'%d-%m-%Y') as geldigvanaf,
|
|
DATE_FORMAT(geldigtm,'%d-%m-%Y') as geldigtm,
|
|
DATE_FORMAT(invullentm,'%d-%m-%Y') as invullentm,
|
|
V.naam ,
|
|
count(FV.id) AS ingevuld
|
|
FROM tb_orgversies OV
|
|
JOIN tb_versies V ON V.id = versie_id
|
|
LEFT JOIN tb_filledversions FV ON FV.orgversie_id = OV.id
|
|
WHERE OV.id = {$id}";
|
|
return $this->get_query_row();
|
|
}
|
|
|
|
function getversie($id){
|
|
$this->sql="SELECT id, naam, ingangsdatum,systemnorm, actief
|
|
FROM tb_versies
|
|
WHERE id = {$id}";
|
|
return $this->get_query_row();
|
|
}
|
|
|
|
function getVorm($orgversieid){
|
|
$this->sql= "SELECT vorm
|
|
FROM tb_orgversies
|
|
WHERE id = {$orgversieid} ";
|
|
return $this->get_query_row('vorm');
|
|
}
|
|
|
|
function gettargetversie($orgid, $today){
|
|
$this->sql="SELECT id, versie_id, gebruikvanaf, vorm
|
|
FROM tb_orgversies
|
|
WHERE organisatie_id = {$orgid}
|
|
AND geldigvanaf <= '{$today}'
|
|
AND geldigtm >= '{$today}'
|
|
ORDER BY periodenummer
|
|
LIMIT 1";
|
|
return $this->get_query_row();
|
|
}
|
|
function getmaxperiode($orgid){
|
|
$this->sql = "SELECT MAX(periodenummer) AS nummer
|
|
FROM tb_orgversies
|
|
WHERE organisatie_id = {$orgid}";
|
|
return $this->get_query_row();
|
|
}
|
|
function getijkpunten($orgversieid){
|
|
$this->sql="SELECT Y.omschrijving, Y.toelichting , Y.nummer
|
|
FROM tb_orgversies O
|
|
JOIN tb_versies V ON V.id = O.versie_id
|
|
JOIN tb_ijkpunten Y ON Y.versie_id = V.id
|
|
WHERE O.id = {$orgversieid}
|
|
ORDER BY Y.nummer ";
|
|
return $this->get_query_result();
|
|
}
|
|
function updateactief($orgid, $modulenr){
|
|
$this->sql="UPDATE tb_orgversies OV
|
|
JOIN tb_versies V ON V.id = OV.versie_id
|
|
SET OV.actief =0
|
|
WHERE OV.organisatie_id = {$orgid}
|
|
AND V.modulenr={$modulenr}";
|
|
$this->db->query($this->sql);
|
|
}
|
|
|
|
function get_vergelijkbaar($orgversieid){
|
|
$this->sql= "SELECT O.id
|
|
FROM tb_orgversies O
|
|
JOIN tb_orgversies OV ON O.organisatie_id = OV.organisatie_id
|
|
WHERE OV.id = {$orgversieid}
|
|
AND O.versie_id = OV.versie_id
|
|
AND O.scoretype = OV.scoretype
|
|
ORDER BY O.geldigtm DESC
|
|
LIMIT 2 ";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
|
|
function get_vergelijkbaar2($orgversieid){
|
|
$this->sql= "SELECT O.id, O.vorm, O.scoretype, O.versie_id, O.periodenummer, O.actief, DATE_FORMAT(O.geldigvanaf,'%d-%m-%Y') AS geldigvanaf,
|
|
DATE_FORMAT(O.geldigtm,'%d-%m-%Y') AS geldigtm,
|
|
DATE_FORMAT(O.invullentm,'%d-%m-%Y') AS invullentm
|
|
FROM tb_orgversies O
|
|
JOIN tb_orgversies OV ON O.organisatie_id = OV.organisatie_id
|
|
WHERE OV.id = {$orgversieid}
|
|
AND O.versie_id = OV.versie_id
|
|
AND O.scoretype = OV.scoretype
|
|
AND O.geldigtm <= OV.geldigtm
|
|
ORDER BY O.geldigtm DESC
|
|
LIMIT 2 ";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function get_vergelijkbaarSWVKamer($orgversieid){
|
|
$this->sql= "SELECT O.id, O.vorm, O.scoretype, O.versie_id, O.periodenummer, O.actief, DATE_FORMAT(O.geldigvanaf,'%d-%m-%Y') AS geldigvanaf,
|
|
DATE_FORMAT(O.geldigtm,'%d-%m-%Y') AS geldigtm,
|
|
DATE_FORMAT(O.invullentm,'%d-%m-%Y') AS invullentm
|
|
FROM tb_orgversies O
|
|
JOIN tb_orgversies OV ON O.organisatie_id = OV.organisatie_id
|
|
WHERE OV.id = {$orgversieid}
|
|
AND O.versie_id = OV.versie_id
|
|
AND O.scoretype = OV.scoretype
|
|
AND O.geldigtm <= OV.geldigtm
|
|
ORDER BY O.geldigtm DESC
|
|
LIMIT 2 ";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getversiecats($orgid, $module){
|
|
$this->sql="SELECT Y.nummer, Y.omschrijving
|
|
FROM tb_orgversies OV
|
|
JOIN tb_versies V ON V.id = versie_id
|
|
JOIN tb_ijkpunten Y ON Y.versie_id = V.id
|
|
WHERE OV.organisatie_id = {$orgid}
|
|
AND modulenr = {$module}
|
|
AND OV.actief = 1
|
|
ORDER BY UPPER(omschrijving) DESC";
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getOrgVersiesBijSop($swvid, $modulenr){
|
|
$this->sql = "SELECT OV.id,V.naam
|
|
FROM tb_orgversies OV
|
|
JOIN tb_versies V ON V.id =OV.versie_id
|
|
JOIN tb_organisaties O ON OV.organisatie_id = O.id
|
|
WHERE (O.id = {$swvid} OR O.valtonder_id = {$swvid})
|
|
AND V.modulenr = {$modulenr}
|
|
|
|
";
|
|
return $this->get_query_result();
|
|
|
|
}
|
|
|
|
function getOrgsBijOrgversie($orgID, $orgversie, $orgsoort, $module, $join){
|
|
$this->sql=" SELECT O.id AS schoolID, O.brin, O.naam AS school, BG.naam AS bg, K.naam AS kamer, SD.email1 AS mail,
|
|
'niet geopend' AS status
|
|
FROM tb_organisaties O
|
|
JOIN tb_organisaties BG ON O.valtonder_id = BG.id
|
|
JOIN tb_organisaties K ON BG.valtonder_id = K.id
|
|
JOIN tb_licenties L ON O.id = L.orgid
|
|
JOIN tb_orgversies OV ON OV.organisatie_id = {$join}
|
|
LEFT JOIN tb_schooldetails SD ON O.id = SD.organisatie_id
|
|
WHERE O.soort = 4
|
|
AND O.actief = 1
|
|
AND L.modulenr ={$module}
|
|
AND OV.id = {$orgversie} ";
|
|
if($orgsoort == 2){
|
|
$this->sql.="
|
|
AND K.id = {$orgID}
|
|
ORDER BY BG.naam, O.naam ";
|
|
}
|
|
else{
|
|
$this->sql.=" AND K.valtonder_id = {$orgID}
|
|
ORDER BY K.naam, BG.naam, O.naam ";
|
|
}
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getUsersBijOrgversie($orgID, $orgversie, $orgsoort, $module, $join){
|
|
$this->sql=" SELECT O.id AS schoolID, O.brin, O.naam AS school, BG.naam AS bg, K.naam AS kamer, U.email AS mail,
|
|
U.id AS gebruikerID, Concat_ws(' ', U.voornaam, U.tussenvoegsel, U.achternaam) AS gebruiker,
|
|
'niet geopend' AS status, AN.naam AS autorisatie
|
|
FROM tb_organisaties O
|
|
JOIN tb_organisaties BG ON O.valtonder_id = BG.id
|
|
JOIN tb_organisaties K ON BG.valtonder_id = K.id
|
|
JOIN tb_orgusers OU ON OU.organisatie_id = O.id
|
|
JOIN tb_users U ON OU.user_id = U.id
|
|
JOIN tb_licenties L ON O.id = L.orgid
|
|
JOIN tb_orgversies OV ON OV.organisatie_id = {$join}
|
|
JOIN tb_autorisaties AU ON OU.id = AU.orguser_id
|
|
JOIN tb_autorisatienivos AN ON AU.nivo_id = AN.id
|
|
AND O.soort = 4
|
|
AND O.actief = 1
|
|
AND U.actief = 1
|
|
AND L.modulenr = {$module}
|
|
AND OV.id = {$orgversie}
|
|
AND AN.nivo < 1024
|
|
AND AN.nivo > 0
|
|
AND LENGTH(U.achternaam) > 2
|
|
|
|
";
|
|
if($orgsoort == 2){
|
|
$this->sql.="
|
|
AND K.id = {$orgID}
|
|
ORDER BY BG.naam, O.naam, U.achternaam
|
|
";
|
|
|
|
}
|
|
else{
|
|
$this->sql.="
|
|
AND K.valtonder_id = {$orgID}
|
|
ORDER BY K.naam, BG.naam, O.naam, U.achternaam ";
|
|
}
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getAmbitieVersie($toporgs, $moduleid){
|
|
$this->sql = "SELECT
|
|
OV.id AS orgversie_id,
|
|
DATE_FORMAT( OV.geldigvanaf, '%d-%m-%Y') as geldigvanaf,
|
|
DATE_FORMAT( OV.geldigtm, '%d-%m-%Y') as geldigtm,
|
|
OV.periodenummer, V.naam
|
|
FROM tb_orgversies OV
|
|
JOIN tb_versies V ON OV.versie_id = V.id
|
|
WHERE OV.organisatie_id IN ({$toporgs})
|
|
AND V.modulenr = {$moduleid}
|
|
AND OV.actief = 1 ";
|
|
return $this->get_query_row();
|
|
}
|
|
|
|
|
|
|
|
} |