529 lines
16 KiB
PHP
529 lines
16 KiB
PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
/** Organisaties_model januari 2015 */
|
|
|
|
class Organisaties_model extends MY_Model{
|
|
|
|
|
|
protected $tablename = 'tb_organisaties';
|
|
|
|
function __construct(){
|
|
parent::__construct();
|
|
$models = array('');
|
|
$this->load->model($models);
|
|
}
|
|
|
|
function is_bg($orgid){
|
|
//return TRUE als organisatie is bg
|
|
$this->sql = "SELECT * FROM tb_organisaties WHERE valtonder_id = {$orgid}";
|
|
if($this->get_query_result($this->sql)){
|
|
return TRUE;
|
|
}else{
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
function get_orgnaam($globorgid){
|
|
$this->sql ="SELECT naamkort
|
|
FROM tb_organisaties
|
|
WHERE id = $globorgid";
|
|
$org = $this->get_query_row();
|
|
if ($org) {return $org->naamkort;};
|
|
}
|
|
|
|
function getallBGs(){
|
|
$this->sql="SELECT O.id, brin, naam, naamkort, plaats,
|
|
(SELECT count(OU.id) FROM tb_orgusers OU WHERE OU.organisatie_id = O.id ) AS aantal
|
|
FROM tb_organisaties O
|
|
WHERE O.id = valtonder_id
|
|
AND actief = 1
|
|
AND O.id <> 1
|
|
ORDER BY valtonder_id, UPPER(naamkort)";
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getScholen($bgID){
|
|
$this->sql ="SELECT O.id, brin, naam, naamkort, plaats,
|
|
(SELECT count(OU.id) FROM tb_orgusers OU WHERE OU.organisatie_id = O.id ) AS aantal,
|
|
(SELECT count(IFS.id) FROM tb_indicatorscores IFS WHERE IFS.organisatie_id = O.id) AS aantalscores,
|
|
(SELECT count(SK.id) FROM tb_schoolkenmerken SK WHERE SK.organisatie_id = O.id) AS aantalkenmerken
|
|
FROM tb_organisaties O
|
|
WHERE O.id <> {$bgID}
|
|
AND valtonder_id = {$bgID}
|
|
AND actief = 1
|
|
ORDER BY UPPER(naamkort)";
|
|
return $this->get_query_result();
|
|
}
|
|
function getOrganisatie($orgid){
|
|
$this->sql ="SELECT O.id, brin, naam, naamkort, plaats, soort, valtonder_id ,
|
|
(SELECT count(OU.id) FROM tb_orgusers OU WHERE OU.organisatie_id = O.id ) AS aantal
|
|
FROM tb_organisaties O
|
|
WHERE id=$orgid
|
|
AND actief = 1";
|
|
return $this->get_query_row();
|
|
}
|
|
function checkbrin($orgid=false, $brin){
|
|
$this->sql =" SELECT COUNT(id) as aantal
|
|
FROM tb_organisaties
|
|
WHERE lower(brin) = lower('{$brin}')";
|
|
if ($orgid){
|
|
$this->sql .=" AND id <> {$orgid}";
|
|
};
|
|
|
|
return $this->get_query_row();
|
|
}
|
|
function checkdeleteok($bgid){
|
|
$this->sql="SELECT COUNT(id) as aantal
|
|
FROM tb_organisaties
|
|
WHERE valtonder_id = {$bgid}
|
|
AND id <> {$bgid}";
|
|
$scholen = $this->get_query_row();
|
|
if ($scholen->aantal > 0) {return false ;}
|
|
else{
|
|
// controleer of er gebruikers zijn
|
|
$this->sql = "SELECT count(id) as aantal
|
|
FROM tb_orgusers
|
|
WHERE organisatie_id = {$bgid}";
|
|
|
|
$users = $this->get_query_row();
|
|
if ($users->aantal > 0) {return false ;}
|
|
else {return true; };
|
|
}
|
|
}
|
|
function getallorgs(){
|
|
$this->sql="SELECT id, naamkort, brin, plaats
|
|
FROM tb_organisaties
|
|
WHERE actief = 1
|
|
ORDER BY UPPER(naamkort)";
|
|
// in de query nog een check op orguser? hoeft nu niet omdat deze functie alleen werkt voor super en helpdesk
|
|
// voor andere users zie de functie hieronder getuserorgs
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getuserorgs($userid){
|
|
$this->sql="SELECT O.id, naamkort, brin, plaats
|
|
FROM tb_organisaties O
|
|
JOIN tb_orgusers OU ON OU.organisatie_id = O.id
|
|
JOIN tb_autorisaties A ON A.orguser_id = OU.id
|
|
JOIN tb_autorisatienivos AN ON AN.id = A.nivo_id
|
|
WHERE OU.user_id = {$userid}
|
|
AND AN.nivo > 0";
|
|
return $this->get_query_result();
|
|
}
|
|
function getorgs($soort, $valtonderid = FALSE, $actief = FALSE){
|
|
$this->sql="SELECT id, naam,naamkort, brin,valtonder_id, soort,plaats
|
|
FROM tb_organisaties
|
|
WHERE soort = {$soort}
|
|
AND id <> 1";
|
|
|
|
if ($valtonderid) {
|
|
$this->sql .=" AND valtonder_id = {$valtonderid} " ;
|
|
}
|
|
if ($actief){
|
|
$this->sql .= " AND actief = 1" ;
|
|
}
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getscholenonderkamer($kamerid){
|
|
$this->sql="SELECT O.id, O.soort, O.naam as fullname, O.naamkort, O.plaats, O.brin
|
|
FROM tb_organisaties O
|
|
JOIN tb_organisaties BG ON O.valtonder_id = BG.id
|
|
WHERE BG.valtonder_id = {$kamerid}
|
|
AND O.actief = 1
|
|
AND O.soort = 4
|
|
ORDER BY BG.naamkort, O.naamkort";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getscholenonderswv($swvid){
|
|
$this->sql="SELECT O.id, O.naam as fullname, O.naamkort, O.plaats, O.brin
|
|
FROM tb_organisaties O
|
|
JOIN tb_organisaties BG ON O.valtonder_id = BG.id
|
|
JOIN tb_organisaties K ON BG.valtonder_id = K.id
|
|
AND K.valtonder_id = {$swvid}
|
|
AND O.actief = 1
|
|
AND O.soort =4
|
|
ORDER BY O.naamkort";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getorgsonderbestuurMetLicentie( $orgid, $module){
|
|
$this->sql="SELECT O.id, O.soort, O.naam as fullname, O.naamkort, O.plaats, O.brin
|
|
FROM tb_organisaties O
|
|
JOIN tb_licenties L ON O.id = L.orgid
|
|
JOIN tb_licenties L2 ON O.valtonder_id = L2.orgid
|
|
WHERE valtonder_id = {$orgid}
|
|
AND id <> {$orgid}
|
|
AND actief = 1
|
|
AND L.module = {$module}
|
|
AND L2.module = {$module}
|
|
ORDER BY naamkort";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
|
|
function getScholenOnderKamerMetLicentie($kamerid, $module){
|
|
$this->sql="SELECT O.id, O.soort, O.naam as fullname, O.naamkort, O.plaats, O.brin
|
|
FROM tb_organisaties O
|
|
JOIN tb_organisaties BG ON O.valtonder_id = BG.id
|
|
JOIN tb_licenties L ON O.id = L.orgid
|
|
JOIN tb_licenties L2 ON BG.valtonder_id = L2.id
|
|
WHERE BG.valtonder_id = {$kamerid}
|
|
AND O.actief = 1
|
|
AND O.soort = 4
|
|
AND L.module = {$module}
|
|
AND L2.module = {$module}
|
|
ORDER BY O.naamkort";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getScholenOnderSwvMetLicentie($swvid, $module){
|
|
$this->sql="SELECT O.id, O.naam as fullname, O.naamkort, O.plaats, O.brin
|
|
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_licenties L2 ON K.valtonder_id = L2.orgid
|
|
AND K.valtonder_id = {$swvid}
|
|
AND L.modulenr = {$module}
|
|
AND L2.modulenr = {$module}
|
|
AND O.actief = 1
|
|
AND O.soort = 4
|
|
ORDER BY O.naamkort";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
|
|
|
|
function getorgsvanaf( $toplevelid,$sublevelid = false){
|
|
$this->sql="SELECT id, soort, naam, naamkort, plaats,brin
|
|
FROM tb_organisaties
|
|
WHERE valtonder_id = {$toplevelid}
|
|
AND id <> {$toplevelid}
|
|
AND actief = 1 ";
|
|
if ($sublevelid) {$this->sql .=" AND id ={$sublevelid} " ; } ;
|
|
$this->sql .= " ORDER BY naamkort ";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function get_schoolIDs_onder($orgid){
|
|
$this->sql="SELECT DISTINCT(SCHOOL.id) as id
|
|
FROM tb_organisaties SCHOOL
|
|
JOIN tb_organisaties BESTUUR ON SCHOOL.valtonder_id = BESTUUR.id
|
|
JOIN tb_organisaties KAMER ON BESTUUR.valtonder_id = KAMER.id
|
|
WHERE (BESTUUR.id = {$orgid} OR KAMER.id = {$orgid} OR KAMER.valtonder_id = {$orgid})
|
|
AND SCHOOL.soort = 4
|
|
AND SCHOOL.actief = 1";
|
|
;
|
|
|
|
return $this->get_query_result();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getorgsvanafmetlicentie( $toplevelid, $licentie){
|
|
$this->sql="SELECT O.id, O.soort, O.naam, O.naamkort, O.plaats, O.brin
|
|
FROM tb_organisaties O
|
|
JOIN tb_licenties L ON O.id = L.orgid
|
|
WHERE valtonder_id = {$toplevelid}
|
|
AND O.id <> {$toplevelid}
|
|
AND L.modulenr = {$licentie}
|
|
AND O.actief = 1
|
|
ORDER BY O.naamkort";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
function getorgsonderbestuur( $orgid){
|
|
$this->sql="SELECT id, soort, naam as fullname, naamkort, plaats,brin
|
|
FROM tb_organisaties
|
|
WHERE valtonder_id = {$orgid}
|
|
AND id <> {$orgid}
|
|
AND actief = 1
|
|
ORDER BY naamkort";
|
|
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
|
|
function getorg($orgid){
|
|
$this->sql="SELECT id, soort, naam, naamkort, plaats, valtonder_id , brin
|
|
FROM tb_organisaties
|
|
WHERE id = {$orgid}
|
|
AND actief = 1";
|
|
return $this->get_query_row();
|
|
}
|
|
function getbgsonderswv($swvid){
|
|
$this->sql="SELECT O1.id, O1.soort, O1.naam, O1.plaats, O1.actief, O2.naamkort AS kamer
|
|
FROM tb_organisaties O1
|
|
JOIN tb_organisaties O2 ON O2.id = O1.valtonder_id
|
|
JOIN tb_organisaties O3 ON O3.id = O2.valtonder_id
|
|
WHERE O3.id = {$swvid}
|
|
AND O1.id <> O3.valtonder_id
|
|
AND O2.id <> O2.valtonder_id
|
|
AND O1.actief = 1
|
|
ORDER BY O2.naamkort, O1.naamkort ";
|
|
return $this->get_query_result();
|
|
}
|
|
|
|
|
|
function getorgsdetails($soort, $valtonder){
|
|
$this->sql="SELECT O.id, O.soort, O.brin, O.naamkort, O.naam,
|
|
O.plaats, O.valtonder_id, O.actief, O.monbas, O.mondiv,
|
|
O.bijlagefile, SD.email1
|
|
FROM tb_organisaties O
|
|
LEFT JOIN tb_schooldetails SD ON O.id = SD.organisatie_id
|
|
WHERE O.soort = {$soort} ";
|
|
if ($valtonder) {
|
|
$this->sql .=" AND O.valtonder_id = {$valtonder} ";
|
|
}
|
|
$this->sql .=" ORDER BY O.actief DESC, O.id ASC ";
|
|
return $this->get_query_result();
|
|
}
|
|
function getorgdetails($id){
|
|
$this->sql="SELECT id, soort, brin, naamkort, naam, plaats,valtonder_id, actief,monbas, mondiv
|
|
FROM tb_organisaties
|
|
|
|
WHERE id= {$id}
|
|
ORDER BY naamkort ";
|
|
return $this->get_query_row();
|
|
}
|
|
function hasdependent($orgid){
|
|
$this->sql="SELECT count(id) AS aantal
|
|
FROM tb_organisaties
|
|
WHERE valtonder_id = {$orgid}
|
|
AND id <> valtonder_id";
|
|
$res = $this->get_query_row();
|
|
if ($res && $res->aantal > 0) {return true;}
|
|
else {return false;};
|
|
}
|
|
function zoekorgs($zoekstring){
|
|
$this->sql = "SELECT brin, naamkort, plaats , soort, id
|
|
FROM tb_organisaties
|
|
WHERE (UPPER(naam) LIKE concat('%', UPPER('{$zoekstring}'),'%') ) OR
|
|
(UPPER(naamkort) LIKE concat('%', UPPER('{$zoekstring}'),'%') )
|
|
AND actief = 1
|
|
ORDER BY naamkort";
|
|
return $this->get_query_result();
|
|
}
|
|
function getuserorgOUD($userid){
|
|
// deze functie is vervallen omdat nu een gebruiker lid kan zijn van meerdere organisaties
|
|
$this->sql="SELECT O.id, naam,soort,valtonder_id
|
|
FROM tb_organisaties O
|
|
JOIN tb_orgusers OU ON OU.organisatie_id = O.id
|
|
WHERE OU.user_id = {$userid}";
|
|
return $this->get_query_row();
|
|
}
|
|
|
|
function getsoortvanorginalorg($userid){
|
|
$this->sql = "SELECT O.soort
|
|
FROM tb_orgusers OU
|
|
JOIN tb_organisaties O ON O.id=OU.organisatie_id
|
|
WHERE OU.user_id = {$userid}";
|
|
|
|
$org = $this->get_query_row();
|
|
return $org->soort;
|
|
}
|
|
function getorgs2($orgid){
|
|
$this->sql = "SELECT O.id as orgid, O.naamkort as fullname, O.brin
|
|
FROM tb_organisaties O
|
|
WHERE O.valtonder_id = $orgid
|
|
AND O.id <> $orgid
|
|
AND O.actief = 1
|
|
ORDER BY O.naamkort ";
|
|
return $this->get_query_result();
|
|
}
|
|
function getall(){
|
|
$this->sql="Select * from tb_organisaties";
|
|
return $this->get_query_result();
|
|
}
|
|
function getkamer($orgid){
|
|
$organisatie = $this->get_record_by_id($orgid);
|
|
if ($organisatie->soort == 1) {return null;};
|
|
if ($organisatie->soort == 2) {return $orgid; };
|
|
if ($organisatie->soort == 3) {return $organisatie->valtonder_id;};
|
|
if ($organisatie->soort == 4) {
|
|
$organisatie=$this->get_record_by_id($organisatie->valtonder_id);
|
|
return $organisatie->valtonder_id;
|
|
};
|
|
}
|
|
function getorgsonder($orgid){
|
|
$this->sql = "SELECT id, soort, valtonder_id, actief
|
|
FROM tb_organisaties
|
|
WHERE valtonder_id ={$orgid}
|
|
AND id != valtonder_id
|
|
AND actief = 1;";
|
|
return $this->get_query_result();
|
|
}
|
|
function getscholenondertarget($orgid){
|
|
if (!isset($idlijst)) {$idlijst = array();};
|
|
|
|
$orgs= $this->getorgsonder($orgid);
|
|
|
|
if ($orgs){
|
|
foreach($orgs as $org) {
|
|
if ($org->soort ==4 ) {$idlijst[] = $org->id;}
|
|
}
|
|
|
|
foreach($orgs as $org){
|
|
if ($org->soort < 4) { $idlijst=array_merge($idlijst, $this->getscholenondertarget($org->id));}
|
|
}
|
|
}
|
|
|
|
return $idlijst;
|
|
}
|
|
function getscholenondertarget2($orgid){
|
|
$idlijst = array();
|
|
$organisatie = $this->get_record_by_id($orgid);
|
|
|
|
if ($organisatie->soort == 1){
|
|
|
|
$kamers = $this->getorgsonder($organisatie->id);
|
|
if ($kamers){
|
|
foreach($kamers as $kamer){
|
|
$bgs = $this->getorgsonder($kamer->id);
|
|
if ($bgs){
|
|
foreach($bgs as $bg){
|
|
$scholen = $this->getorgsonder($bg->id);
|
|
if ($scholen){
|
|
foreach($scholen as $school){
|
|
$idlijst[] = $school->id;
|
|
}
|
|
}; // if scholen
|
|
}; // foreach
|
|
}; // if bgs
|
|
}
|
|
}
|
|
}
|
|
if ($organisatie->soort == 2){
|
|
|
|
$bgs = $this->getorgsonder($organisatie->id);
|
|
|
|
|
|
if ($bgs){
|
|
foreach($bgs as $bg){
|
|
$scholen = $this->getorgsonder($bg->id);
|
|
|
|
if ($scholen){
|
|
foreach($scholen as $school){
|
|
$idlijst[] = $school->id;
|
|
}
|
|
}; // if scholen
|
|
}; // foreach
|
|
}; // if bgs
|
|
}; //if orgsoort
|
|
if ($organisatie->soort == 3){
|
|
$scholen = $this->getorgsonder($organisatie->id);
|
|
if ($scholen){
|
|
foreach($scholen as $school){
|
|
$idlijst[] = $school->id;
|
|
}
|
|
}; // if scholen
|
|
}; //if orgsoort
|
|
if ($organisatie->soort == 4){
|
|
$idlijst[] = $organisatie->id;
|
|
}
|
|
return $idlijst;
|
|
}
|
|
function getorgstructuur($orgid, $actief=FALSE){
|
|
$organisatie = $this->getorg($orgid);
|
|
if ($organisatie->soort ==1){
|
|
$swv = $organisatie;
|
|
$swv->kamers = $this->getorgs(2, $swv->id, $actief);
|
|
if ($swv->kamers){
|
|
foreach($swv->kamers as $kamer){
|
|
$kamer->bgs = $this->getorgs(3, $kamer->id, $actief);
|
|
if ($kamer->bgs){
|
|
foreach ($kamer->bgs as $bg){
|
|
$bg->scholen = $this->getorgs(4, $bg->id, $actief);
|
|
}; // foreach bg
|
|
}; // if bgs
|
|
}; // foreach $kamer
|
|
}; // if kamers
|
|
}; // if soort ==1;
|
|
if ($organisatie->soort == 2){
|
|
$swv = new stdClass;
|
|
$swv->kamers = array();
|
|
$swv->kamers[0] = $organisatie;
|
|
foreach($swv->kamers as $kamer){
|
|
$kamer->bgs = $this->getorgs(3, $kamer->id, $actief);
|
|
if ($kamer->bgs){
|
|
foreach($kamer->bgs as $bg){
|
|
$bg->scholen = $this->getorgs(4, $bg->id, $actief);
|
|
};// foreach bg
|
|
}; // if bgs
|
|
}; // foreach
|
|
}; // if soort ==2
|
|
if ($organisatie->soort==3){
|
|
$swv = new stdClass;
|
|
$swv->kamers = array();
|
|
$swv->kamers[0]= new stdClass;
|
|
$swv->kamers[0]->bgs = array();
|
|
$swv->kamers[0]->bgs[0] = $organisatie;
|
|
$swv->kamers[0]->bgs[0]->scholen = $this->getorgs(4, $organisatie->id, $actief);
|
|
}
|
|
if ($organisatie->soort==4){
|
|
$swv = new stdClass;
|
|
$swv->kamers = array();
|
|
$swv->kamers[0]= new stdClass;
|
|
$swv->kamers[0]->bgs = array();
|
|
$swv->kamers[0]->bgs[0] = new stdClass;
|
|
$swv->kamers[0]->bgs[0]->scholen = array();
|
|
$swv->kamers[0]->bgs[0]->scholen[0]= $organisatie;
|
|
}
|
|
return $swv;
|
|
}
|
|
|
|
function get_swvid ($orgid){
|
|
$valtonder_id = $this->get(['id'=>$orgid], 'valtonder_id', true);
|
|
if ($valtonder_id != $orgid){
|
|
return $this->get_swvid($valtonder_id);
|
|
}
|
|
// else {
|
|
return $orgid;
|
|
// }
|
|
}
|
|
|
|
function getlistrecursief($orgid,$lijst){
|
|
$lijst = array_merge($lijst, array($orgid));
|
|
$this->sql = " SELECT id
|
|
FROM tb_organisaties
|
|
WHERE valtonder_id = {$orgid}
|
|
AND id <> {$orgid}
|
|
AND actief = 1";
|
|
$newlijst = $this->get_query_result();
|
|
if ($newlijst){
|
|
foreach($newlijst as $newid){
|
|
$lijst= $this->getlistrecursief($newid->id, $lijst);
|
|
}
|
|
}
|
|
|
|
return $lijst;
|
|
}
|
|
|
|
function getKleurcodesOrg($clusterid = FALSE, $swvid){
|
|
if (! $clusterid) $clusterid = 0;
|
|
$sql = " SELECT *
|
|
FROM tb_kleurcodes KC
|
|
WHERE (organisatie_id = {$swvid} OR organisatie_id = 0)
|
|
AND (cluster_id = {$clusterid})
|
|
order by organisatie_id desc, cluster_id DESC
|
|
limit 1";
|
|
$query = $this->db->query($sql);
|
|
$codes = $query->row();
|
|
return $codes;
|
|
}
|
|
|
|
|
|
|
|
|
|
} |