diff --git a/application/controllers/monpas/Swvversies.php b/application/controllers/monpas/Swvversies.php index 96836bc..b5cabec 100644 --- a/application/controllers/monpas/Swvversies.php +++ b/application/controllers/monpas/Swvversies.php @@ -156,4 +156,59 @@ class Swvversies extends MY_Controller{ $modules = $this->Modules_model->getmodulesmetlijst(); echo json_encode($modules); } + + function getInvulstatus(){ + if (!$this->userid) die; + $orgversie = $this->clean_input('orgversie'); + $orgID = $this->clean_input('orgID'); + $vorm = $this->clean_input('vorm'); + $module = $this->clean_input('module'); + $percentage = 0; + $ingevuld = 0; + $aantal = 0; + $mail = []; + $actiemail = []; + + $orgsoort = $this->Organisaties_model->get_fieldvalue(['id'=>$orgID], 'soort'); + $lijstorg = $this->Orgversies_model->get_fieldvalue(['id' =>$orgversie], 'organisatie_id'); + $lijstsoort = $this->Organisaties_model->get_fieldvalue(['id'=>$lijstorg], 'soort'); + if($lijstsoort == 1) $join = 'K.valtonder_id'; + else $join = "K.id"; + $status = FALSE; + + if($vorm == 1){ + $orgs = $this->Orgversies_model->getOrgsBijOrgversie($orgID, $orgversie, $orgsoort, $module, $join); + if($orgs){ + foreach($orgs AS $org){ + $status = $this->Filledversions_model->getMeetellen($orgversie, $org->schoolID, FALSE); + if($status) $org->status = $status; + if($status == 'meetellen') $ingevuld++; + } + } + } + if($vorm == 2) { + $orgs = $this->Orgversies_model->getUsersBijOrgversie($orgID, $orgversie, $orgsoort, $module, $join); + if($orgs){ + foreach($orgs AS $org){ + $status = $this->Filledversions_model->getMeetellen($orgversie, $org->schoolID, $org->gebruikerID); + if($status) $org->status = $status; + if($status == 'meetellen') $ingevuld++; + } + } + + } + if($orgs){ + $aantal = count($orgs); + $percentage = round($ingevuld/$aantal * 100); + } + + echo json_encode(['status' => $orgs, + 'lijsten' => $aantal, + 'ingevuld' => $ingevuld, + 'percentage' => $percentage + ]); + + + } + } \ No newline at end of file diff --git a/application/controllers/shared/Organisaties.php b/application/controllers/shared/Organisaties.php index 6e11c63..4c4e4f6 100644 --- a/application/controllers/shared/Organisaties.php +++ b/application/controllers/shared/Organisaties.php @@ -13,6 +13,7 @@ class Organisaties extends MY_Controller{ "monpas/Orgversies_model", "monpas/Filledversions_model", "monpas/Scores_model", + "monpas/Schooldetails_model", "monpas/Ambities_model", "shared/Licenties_model"); $this->load->model($models); @@ -82,7 +83,15 @@ class Organisaties extends MY_Controller{ "actief" =>1, ); $newid = $this->Organisaties_model->insert_record($data); - $licenties = $this->input->post('licenties'); + + $data = [ 'organisatie_id' =>$newid, + 'plaats' =>$this->clean_input("plaats"), + 'email1' =>$this->clean_input("email"), + ]; + $this->Schooldetails_model->insert_record($data); + + + $licenties = $this->input->post('licenties'); if ($licenties){ foreach($licenties as $licentie){ $this->Licenties_model->insert_record(array("orgid"=>$newid, "modulenr"=>$licentie)); @@ -156,6 +165,17 @@ class Organisaties extends MY_Controller{ // "mondiv" =>$mondiv ); $this->Organisaties_model->update_record($data,$orgid); + $detailsid = $this->Schooldetails_model->get_fieldvalue(["organisatie_id" =>$orgid], 'id'); + if($detailsid){ + $this->Schooldetails_model->update_record(["email1" =>$this->clean_input("email")], $detailsid); + } + else { + $data = [ 'organisatie_id' =>$orgid, + 'plaats' =>$this->clean_input("plaats"), + 'email1' =>$this->clean_input("email"), + ]; + $this->Schooldetails_model->insert_record($data); + } $this->Licenties_model->delete_record_where(array("orgid"=>$orgid)); $licenties = $this->input->post("licenties"); if ($licenties){ diff --git a/application/core/MY_Controller.php b/application/core/MY_Controller.php index 3dc7243..15d9b5d 100644 --- a/application/core/MY_Controller.php +++ b/application/core/MY_Controller.php @@ -74,7 +74,8 @@ class MY_Controller extends CI_Controller{ // public $version = '1.17.98';// instrumenten voor ouders // public $version = '1.17.99';// instrumenten ook voor leerlingen // public $version = '1.18.00';// alle instrumenten in het compact sop - public $version = '1.18.02';// fout in resultaatmatrix +// public $version = '1.18.02';// fout in resultaatmatrix + public $version = '1.18.03';// invul status @@ -86,7 +87,7 @@ class MY_Controller extends CI_Controller{ public $globorgid; //orgid which has been chosen by user (only BG and SUPERUSER) public $userbg; // TRUE or FALSE for orgid if this org is BG public $globisbg; // TRUE or FALSE for globorgid if this org is BG - public $userrole; //role of the user logged in dwz autorisatienivo van de eigen organisatie + public $userrole; //role of the nguser logged in dwz autorisatienivo van de eigen organisatie // dus echt het nivo en niet het id van autorisatienivos public $roleid; public $super; //TRUE or FALSE for user SUPERUSER diff --git a/application/libraries/monpas/Schoolafbeeldingen.php b/application/libraries/monpas/Schoolafbeeldingen.php index 53a0630..b0e0adb 100644 --- a/application/libraries/monpas/Schoolafbeeldingen.php +++ b/application/libraries/monpas/Schoolafbeeldingen.php @@ -96,6 +96,10 @@ class Schoolafbeeldingen { return $this->adviezen; } + public function getSomscore(){ + return $this->somscore; + } + private function setScores(){ $this->scores = $this->schoolscores->getScores(); } diff --git a/application/libraries/monpas/ijkpunten/Lijsten.php b/application/libraries/monpas/ijkpunten/Lijsten.php index b5627f7..b41cc2e 100644 --- a/application/libraries/monpas/ijkpunten/Lijsten.php +++ b/application/libraries/monpas/ijkpunten/Lijsten.php @@ -200,12 +200,13 @@ class Lijsten private function setSchoolScores(){ if ($this->soort != 4 || $this->lijst->vorm != 1) return; $this->schoolScores = new Schoolscores($this->lijst->orgversieid, $this->orgid); - if($this->schoolScores) { - $this->metingen = 1; - $this->aantalorgs = 1; $this->schoolAfbeeldingen = new Schoolafbeeldingen($this->schoolScores, $this->modulenr, $this->lijst->orgversieid, $this->clusterid, $this->orgid); + $this->metingen = 0; + $this->aantalorgs = 1; + $somscore = $this->schoolAfbeeldingen->getSomscore(); + if($somscore > 0) $this->metingen = 1; } } @@ -301,7 +302,8 @@ class Lijsten break; case 4: if(empty($this->schoolScores) ||empty($this->gemiddeldeScores) ) return; if(count((array) $this->schoolScores) > 0) { - $this->lijst->metingen = 1; + $somscore = $this->schoolAfbeeldingen->getSomscore(); + if($somscore > 0) $this->lijst->metingen = 1; $this->lijst->aantalorgs = 1; } if(count((array)$this->gemiddeldeScores)> 0){ diff --git a/application/models/monpas/Filledversions_model.php b/application/models/monpas/Filledversions_model.php index d64a046..9d086ff 100644 --- a/application/models/monpas/Filledversions_model.php +++ b/application/models/monpas/Filledversions_model.php @@ -121,6 +121,7 @@ class Filledversions_model extends MY_Model{ JOIN tb_antwoordtypes A ON A.sysnr = OV.scoretype WHERE FV.organisatie_id ={$orgid} AND V.modulenr = {$modulenr} + ORDER BY OV.periodenummer DESC"; return $this->get_query_result(); } @@ -139,6 +140,7 @@ class Filledversions_model extends MY_Model{ JOIN tb_versies V ON V.id =OV.versie_id WHERE FV.organisatie_id IN ($idlijst) AND V.modulenr = {$module} + AND FV.meetellen = 1 ORDER BY OV.geldigtm DESC"; return $this->get_query_result(); } @@ -490,13 +492,19 @@ class Filledversions_model extends MY_Model{ return $this->get_query_row('meting'); } + function getMeetellen($orgversie, $orgid, $userid = FALSE){ + $this->sql = " SELECT CASE WHEN meetellen = 1 THEN 'meetellen' + ELSE '(nog) niet meetellen' + END AS meetellen + FROM tb_filledversions + WHERE organisatie_id = {$orgid} + AND orgversie_id = {$orgversie} "; + if($userid){ + $this->sql .= "AND user_id = {$userid}"; + } + return $this->get_query_row('meetellen'); - - - - - - + } } \ No newline at end of file diff --git a/application/models/monpas/Orgversies_model.php b/application/models/monpas/Orgversies_model.php index d2b820b..cb82f08 100644 --- a/application/models/monpas/Orgversies_model.php +++ b/application/models/monpas/Orgversies_model.php @@ -200,5 +200,71 @@ class Orgversies_model extends MY_Model{ } + 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(); + } + + } \ No newline at end of file diff --git a/application/models/shared/Organisaties_model.php b/application/models/shared/Organisaties_model.php index 21ae65a..51e8ee1 100644 --- a/application/models/shared/Organisaties_model.php +++ b/application/models/shared/Organisaties_model.php @@ -277,20 +277,22 @@ class Organisaties_model extends MY_Model{ function getorgsdetails($soort, $valtonder){ - $this->sql="SELECT id, soort, brin, naamkort, naam, - plaats,valtonder_id, actief, monbas, mondiv, - bijlagefile - FROM tb_organisaties - WHERE soort = {$soort} - AND actief = 1"; + $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} + AND O.actief = 1"; if ($valtonder) { - $this->sql .=" AND valtonder_id = {$valtonder} "; + $this->sql .=" AND O.valtonder_id = {$valtonder} "; }; 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 + FROM tb_organisaties + WHERE id= {$id} ORDER BY naamkort "; return $this->get_query_row(); diff --git a/application/views/monpas/pages/organisaties.php b/application/views/monpas/pages/organisaties.php index b760c44..fa98654 100644 --- a/application/views/monpas/pages/organisaties.php +++ b/application/views/monpas/pages/organisaties.php @@ -64,7 +64,7 @@