Files
monpas/application/models/monpas/Orgversies_model.php
T

270 lines
10 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();
}
}