* @copyright Deakin University 2007,2008,2009 * @package queXS * @subpackage admin * @link http://www.deakin.edu.au/dcarf/ queXS was writen for DCARF - Deakin Computer Assisted Research Facility * @license http://opensource.org/licenses/gpl-2.0.php The GNU General Public License (GPL) Version 2 * * */ /** * Configuration file */ include("../config.inc.php"); /** * Database file */ include ("../db.inc.php"); /** * XHTML functions */ include("../functions/functions.xhtml.php"); /** * Display functions */ include("../functions/functions.display.php"); /** * Input functions */ include("../functions/functions.input.php"); /** * Limesurvey functions */ include("../functions/functions.limesurvey.php"); /** * Operator functions */ include("../functions/functions.operator.php"); global $db; if (isset($_GET['questionnaire_id']) && isset($_GET['sgqa']) && isset($_GET['value']) && isset($_GET['completions']) && isset($_GET['sample_import_id']) && isset($_GET['comparison'])) { //need to add quota $questionnaire_id = bigintval($_GET['questionnaire_id']); $sample_import_id = bigintval($_GET['sample_import_id']); $value = $db->quote($_GET['value']); $completions = $db->quote($_GET['completions']); $sgqa = $db->quote($_GET['sgqa']); $comparison = $db->quote($_GET['comparison']); $sql = "INSERT INTO questionnaire_sample_quota(questionnaire_id, sample_import_id, lime_sgqa,value,completions,comparison) VALUES ($questionnaire_id, $sample_import_id, $sgqa, $value, $completions, $comparison)"; $db->Execute($sql); //Make sure to calculate on the spot update_quotas($questionnaire_id); } if (isset($_GET['questionnaire_id']) && isset($_GET['questionnaire_sample_quota_id'])) { //need to remove quota $questionnaire_id = bigintval($_GET['questionnaire_id']); $questionnaire_sample_quota_id = bigintval($_GET['questionnaire_sample_quota_id']); $sql = "DELETE FROM questionnaire_sample_quota WHERE questionnaire_sample_quota_id = '$questionnaire_sample_quota_id'"; $db->Execute($sql); } $questionnaire_id = false; if (isset($_GET['questionnaire_id'])) $questionnaire_id = bigintval($_GET['questionnaire_id']); xhtml_head(T_("Quota management"),true,array("../include/bootstrap/css/bootstrap.min.css","../css/custom.css"),array("../js/window.js")); print "

" . T_("Questionnaire") . ": 

"; $sql = "SELECT questionnaire_id as value,description, CASE WHEN questionnaire_id = '$questionnaire_id' THEN 'selected=\'selected\'' ELSE '' END AS selected FROM questionnaire WHERE enabled = 1"; display_chooser($db->GetAll($sql),"questionnaire","questionnaire_id", true,false,true,true,false,true,"form-inline pull-left "); if ($questionnaire_id != false) { $sample_import_id = false; if (isset($_GET['sample_import_id'])) $sample_import_id = bigintval($_GET['sample_import_id']); $sql = "SELECT s.sample_import_id as value,s.description, CASE WHEN s.sample_import_id = '$sample_import_id' THEN 'selected=\'selected\'' ELSE '' END AS selected FROM sample_import as s, questionnaire_sample as q WHERE q.questionnaire_id = $questionnaire_id AND q.sample_import_id = s.sample_import_id"; $s = $db->GetAll($sql); if (!empty($s)){ print "

   " . T_("Sample") . ":  

"; display_chooser($db->GetAll($sql),"sample","sample_import_id",true,"questionnaire_id=$questionnaire_id",true,true,false,true,"pull-left"); } else { print "
" . T_("No samples assigned to this questionnaire.") . "
"; } print "
"; if ($sample_import_id != false) { print "

" . T_("Current quotas") . ":

";//(click to delete) $sql = "SELECT questionnaire_sample_quota_id,lime_sgqa,value,completions,quota_reached,lime_sid,comparison FROM questionnaire_sample_quota as qsq, questionnaire as q WHERE qsq.questionnaire_id = '$questionnaire_id' AND qsq.sample_import_id = '$sample_import_id' AND q.questionnaire_id = '$questionnaire_id'"; $r = $db->GetAll($sql); if (empty($r)) { print "

" . T_("Currently no quotas") . "

"; } else { foreach($r as $v) { print "
" . T_("Stop calling this sample when:") . " {$v['lime_sgqa']} {$v['comparison']} {$v['value']} " . T_("for") . ": {$v['completions']} " . T_("completions") ." - "; if ($v['quota_reached'] == 1) print T_("Quota reached"); else print T_("Quota not yet reached"); print " - " . T_("Current completions: ") . limesurvey_quota_completions($v['lime_sgqa'],$v['lime_sid'],$questionnaire_id,$sample_import_id,$v['value'],$v['comparison']); print "
"; } } print "

" . T_("Select a question for the quota") . "

"; $sql = "SELECT lime_sid FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'"; $r = $db->GetRow($sql); $lime_sid = $r['lime_sid']; $sgqa = false; if (isset($_GET['sgqa'])) $sgqa = $_GET['sgqa']; $sql = "SELECT CONCAT( lq.sid, 'X', lq.gid, 'X', CASE WHEN lq.parent_qid = 0 THEN lq.qid ELSE CONCAT(lq.parent_qid, lq.title) END) as value, CONCAT( lq.sid, 'X', lq.gid, 'X', CASE WHEN lq.parent_qid = 0 THEN lq.qid ELSE CONCAT(lq.parent_qid, lq.title) END, ' -> ' , CASE WHEN lq.parent_qid = 0 THEN lq.question ELSE CONCAT(lq2.question, ' : ', lq.question) END) as description, CASE WHEN CONCAT( lq.sid, 'X', lq.gid, 'X', CASE WHEN lq.parent_qid = 0 THEN lq.qid ELSE CONCAT(lq.parent_qid, lq.title) END) = '$sgqa' THEN 'selected=\'selected\'' ELSE '' END AS selected FROM `" . LIME_PREFIX . "questions` AS lq LEFT JOIN `" . LIME_PREFIX . "questions` AS lq2 ON ( lq2.qid = lq.parent_qid ) JOIN `" . LIME_PREFIX . "groups` as g ON (g.gid = lq.gid) WHERE lq.sid = '$lime_sid' ORDER BY CASE WHEN lq2.question_order IS NULL THEN lq.question_order ELSE lq2.question_order + (lq.question_order / 1000) END ASC"; display_chooser($db->GetAll($sql),"sgqa","sgqa",true,"questionnaire_id=$questionnaire_id&sample_import_id=$sample_import_id",true,true,false,true,"form-group"); print "
"; if ($sgqa != false) { print "

" . T_("Enter the details for creating the quota:") . "

"; ?>

" class="btn btn-primary fa"/>

"; print "

" . T_("Code values for this question") . ":

"; $qid = explode("X", $sgqa); $qid = $qid[2]; $sql = "SELECT CONCAT(' ', l.code , '')as code,l.answer as title FROM `" . LIME_PREFIX . "answers` as l WHERE l.qid = '$qid'"; $rs = $db->GetAll($sql); if (!isset($rs) || empty($rs)) print "

" . T_("No labels defined for this question") ."

"; else xhtml_table($rs,array('code','title'),array(T_("Code value"), T_("Description"))); print "
"; } } } xhtml_foot(); ?>