status wat betreft invullen lijsten

This commit is contained in:
Monique
2022-06-24 14:35:50 +02:00
parent f7fe1ced6b
commit 9545473157
13 changed files with 518 additions and 57 deletions
@@ -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
]);
}
}
@@ -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){
+3 -2
View File
@@ -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
@@ -96,6 +96,10 @@ class Schoolafbeeldingen {
return $this->adviezen;
}
public function getSomscore(){
return $this->somscore;
}
private function setScores(){
$this->scores = $this->schoolscores->getScores();
}
@@ -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){
@@ -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');
}
}
@@ -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();
}
}
@@ -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();
@@ -64,7 +64,7 @@
<td data-bind="text: nummer"></td>
<td data-bind="text: naamkort, attr:{'title': naam}"></td>
<td data-bind="text: plaats"></td>
<td class="klikbaar editbutton" data-bind="click:$root.fPopEditOrg.bind($data,4)"></td>
<td class="klikbaar editbutton" data-bind="click:$root.fPopEditOrg.bind($data,4)"></td>
<td ><button class="noshow delete" data-bind="click: $root.fDeleteOrg.bind($data,4) "></button></td>
</tr>
</tbody>
@@ -99,6 +99,10 @@
<td>Plaats</td>
<td><input data-bind="textInput: plaats" style="width: 100%"/></td>
</tr>
<tr>
<td>Email</td>
<td><input data-bind="textInput: email" style="width: 100%"/></td>
</tr>
<tr>
<td>Actief</td>
<td><input type="checkbox" data-bind="checked: actief"/></td>
@@ -172,6 +176,10 @@
<td>Plaats</td>
<td><input data-bind="textInput: newPlaats" style="width: 100%"/></td>
</tr>
<tr>
<td>Email</td>
<td><input data-bind="textInput: newEmail" style="width: 100%"/></td>
</tr>
<tr>
<td colspan=2> <hr/></td>
</tr>
+194 -16
View File
@@ -1,20 +1,20 @@
<div class="col-sm-12 mainpagina submenupage" id ="pagSWVversies">
<div class="col-sm-12 col-md-3">
<div class="col-sm-12 col-md-2">
<h4 style="margin-top:20px"> selecteer een organisatie</h4>
<div style="width: 99% ; height: 500px; overflow-y:auto; margin-top:20px">
<ul data-bind= "foreach: swvs" class="lsul ">
<li class= 'header clickable' data-bind="text: naam, click: $parent.fSetSelectedOrg"></li>
<li class= 'header clickable' style="text-align: left; padding: 5px; " data-bind="text: naam, click: $parent.fSetSelectedOrg"></li>
<li data-bind="visible: kamers().length > 0">
<ul data-bind="foreach: kamers">
<li class="clickable" data-bind="text: naam, click: $root.fSetSelectedOrg"></li>
<ul data-bind="foreach: kamers" class="lsul ">
<li class="clickable" style="text-align: left; padding: 5px; " data-bind="text: naam, click: $root.fSetSelectedOrg"></li>
</ul>
</li>
</ul>
</div>
</div><!-- kolom links -->
<div class="col-sm-12 col-md-9" >
<div class="col-sm-12 col-md-10" >
<div class="col-sm-12">
<h3>Instrument
<select
@@ -34,17 +34,19 @@
<table style="width: 100%; margin-top:20px;">
<thead>
<tr>
<th style="width: 3%">A</th>
<th style="width: 12%">geldig vanaf</th>
<th style="width: 12%">geldig t.m</th>
<th style="width: 20%">versie</th>
<th style="width: 15%">vorm</th>
<th style="width: 20%; ">score type</th>
<th style="width: 3%;">
S <sup style="font-weight: bold" data-bind="click: $parent.fToonInfoTekst">i</sup>
<th style="width: 5%" >actief</th>
<th style="width: 10%" >geldig vanaf</th>
<th style="width: 10%" >geldig t/m</th>
<th style="width: 5%" >nr</th>
<th style="width: 15%" >versie</th>
<th style="width: 14%" >vorm</th>
<th style="width: 17%" >score type</th>
<th style="width: 5%" >
score-tekst<sup style="font-weight: bold" data-bind="click: $parent.fToonInfoTekst">i</sup>
</th>
<th style="width: 13%">invullen tot</th>
<th style="width: 3%"> </th>
<th style="width: 10%" >invullen tot</th>
<th style="width: 5%" >status</th>
<th style="width: 4%" ></th>
</tr>
</thead>
<tbody data-bind="foreach: $parent.koppelingen">
@@ -58,6 +60,7 @@
<td><input class= "datum"
data-bind="datepicker:{minDate: geldigvanaf}, value: geldigtm, event: {change: $root.fUpdateKoppeling}" />
</td>
<td data-bind="text: nummer"></td>
<td data-bind="text: naam"> </td>
<td>
<select data-bind="options: $root.vormarray,
@@ -86,6 +89,9 @@
<td><input class= "datum"
data-bind="datepicker{minDate: geldigvanaf, maxDate: geldigtm}, value: invullentm, event: {change: $root.fUpdateKoppeling}" />
</td>
<td ><button data-bind="click: $root.fToonStatus " style="width: 99%; height: 25px;padding: 0; padding-top: 1px; background-color: #ded0d7; ">toon
</button>
</td>
<td><button class="delete"
data-bind="click: $root.fDeleteKoppeling, visible:wijzigok"> </button> </td>
</tr>
@@ -94,6 +100,170 @@
</div>
</div> <!-- kolom rechts -->
<!-- ******************** popups ************************** -->
<div class="modal fade " id="modInvulStatus" role="dialog">
<div class="modal-dialog " style="width: 95%; display: block; ">
<div class="modal-content">
<div class="modal-header">
<button style="width: 20px; float: right; padding:2px; padding-bottom: 10px; ; color: #6F0B3D" data-dismiss="modal" >x</button>
<p><span data-bind="text: selectedModule() ? selectedModule().naam: '' "></span>
<span>, lijst nr</span>
<span data-bind="text: selectedOrgversie() ? selectedOrgversie().nummer + ' ' + selectedOrgversie().naam +
', ' + selectedOrgversie().geldigvanaf() + ' t/m ' + selectedOrgversie().geldigtm() : ' ' ">
</span>
</p>
<p>
<span data-bind="text: selectedOrgversie() ? selectedOrgversie().vorm == 1 ? 'schoolversie' : 'individuele versie' : ' ' ">
</span>
</p>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xs-3">
<table style="margin-bottom: 20px; border: 1px solid gainsboro;">
<thead>
<tr><th colspan="2" style="color: #ffffff; background-color: #6F0B3D; vertical-align: top;">
status
</th>
</tr>
</thead>
<tbody>
<tr>
<td data-bind="text: selectedOrgversie() && selectedOrgversie().vorm() == 2 ? 'aantal gebruikers: ': 'aantal scholen: ' "
style="border-left: 1px solid gainsboro; border-right: 1px solid gainsboro" >
</td>
<td data-bind="text: aantalLijsten "
style="text-align: right; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
</tr>
<tr>
<td style="border-left: 1px solid gainsboro; border-right: 1px solid gainsboro" >ingevuld en meetellen:
</td>
<td data-bind="text: ingevuld " style="text-align: right; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
</tr>
<tr>
<td style="border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">percentage:
</td>
<td data-bind="text: percentage() + '%' "
style="text-align: right; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-xs-9">
<div data-bind="visible: toonAdressen()== false" >
<button data-bind="text: selectedOrgversie() && selectedOrgversie().vorm() == 2 ? 'alle mailadressen' : 'mailadressen' , click: fGetAdressen.bind($data, 'alle') " style="margin-right: 10px;"></button>
<div data-bind="visible: selectedOrgversie() && selectedOrgversie().vorm() == 2 ">
<button data-bind="click: fGetAdressen.bind($data, 'manage') " style="margin-right: 10px;">mail management</button>
<button data-bind="click: fGetAdressen.bind($data, 'mede') " style="margin-right: 10px;">mail medewerkers</button>
</div>
</div>
<div data-bind="visible: toonAdressen()== true" >
<textarea rows="10" cols="100" id ="mails" data-bind="textInput: maillijst "></textarea>
<br>
<!-- <button style="margin-bottom: 5px;" data-bind="click: fCopyAdressen">kopieer</button>-->
<!-- <br>-->
<button style="margin-bottom: 5px;" data-bind="click: fSluitAdressen">sluit</button>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<table class="lstable" style="width: 100%;" >
<thead>
<tr >
<th style="color: #ffffff;background-color: #6F0B3D; vertical-align: top; width: 8%;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">brin
</th>
<th style="color: #ffffff;background-color: #6F0B3D; vertical-align: top; width: 17%;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">school</th>
<!--ko if: selectedOrgversie() && selectedOrgversie().vorm() == 2 -->
<th style="color: #ffffff;background-color: #6F0B3D; vertical-align: top; width: 17%;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">gebruiker
</th>
<th style="color: #ffffff;background-color: #6F0B3D; vertical-align: top; width: 18%;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">autorisatie
</th>
<!--/ko -->
<th style="color: #ffffff; background-color: #6F0B3D; vertical-align: top; width: 25%;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro; word-break: break-all">email
</th>
<th style="color: #ffffff; background-color: #6F0B3D;vertical-align: top; width: 15%;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">status
</th>
</tr>
</thead>
<tbody data-bind="foreach: statussen">
<!--ko if: $index() == 0 || ($index() != 0 && $parent.statussen()[$index()-1].kamer != kamer ) -->
<tr >
<td data-bind="text: kamer,
attr: {'colspan': $parent.selectedOrgversie() && $parent.selectedOrgversie().vorm() == 2 ? 6 : 4 }"
style="background-color: #ded0d7;color: #6F0B3D; text-align: center; vertical-align: top;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
</tr>
<!--/ko-->
<!--ko if: $index() == 0 || ($index() != 0 && $parent.statussen()[$index()-1].bestuur != bestuur ) -->
<tr>
<td data-bind="text: bestuur,
attr: {'colspan': $parent.selectedOrgversie() && $parent.selectedOrgversie().vorm() == 2 ? 6 : 4 }"
style="background-color: #f5f0f2;color: #6F0B3D; text-align: center; vertical-align: top;
border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
</tr>
<!--/ko-->
<tr>
<td data-bind="text: brin"
style="vertical-align: top; border-left: 1px solid gainsboro;border-right: 1px solid gainsboro">
</td>
<td data-bind="text: school"
style="vertical-align: top; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro"></td>
<!--ko if: $parent.selectedOrgversie() && $parent.selectedOrgversie().vorm() == 2 -->
<td data-bind="text: gebruiker "
style="vertical-align: top; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
<td data-bind="text: autorisatie "
style="vertical-align: top; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
<!--/ko -->
<td data-bind="text: mail"
style="vertical-align: top; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
<td data-bind="text: status"
style="vertical-align: top; border-left: 1px solid gainsboro; border-right: 1px solid gainsboro">
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="modal-footer">
<button style="width: 80px;" data-dismiss="modal" >sluit</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modNieuweKoppeling" role="dialog" >
<div class="modal-dialog ">
<div class="modal-content">
@@ -154,5 +324,13 @@
</div>
</div>
</div>
</div>
</div>
</div>