* @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,false,array("../js/window.js")); print "

" . T_("Select a questionnaire from the list below") . "

"; $sql = "SELECT questionnaire_id as value,description, CASE WHEN questionnaire_id = '$questionnaire_id' THEN 'selected=\'selected\'' ELSE '' END AS selected FROM questionnaire"; display_chooser($db->GetAll($sql),"questionnaire","questionnaire_id"); if ($questionnaire_id != false) { $sample_import_id = false; if (isset($_GET['sample_import_id'])) $sample_import_id = bigintval($_GET['sample_import_id']); print "

" . T_("Select a sample from the list below") . "

"; $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"; display_chooser($db->GetAll($sql),"sample","sample_import_id",true,"questionnaire_id=$questionnaire_id"); 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( q.sid, 'X', q.gid, 'X', q.qid, IFNULL( a.code, '' ) ) AS value, CONCAT(q.question, ': ', IFNULL(a.answer,'')) as description, CASE WHEN CONCAT( q.sid, 'X', q.gid, 'X', q.qid, IFNULL( a.code, '' ) ) = '$sgqa' THEN 'selected=\'selected\'' ELSE '' END AS selected FROM `" . LIME_PREFIX . "questions` AS q LEFT JOIN `" . LIME_PREFIX . "answers` AS a ON ( a.qid = q.qid ) WHERE q.sid = '$lime_sid'"; display_chooser($db->GetAll($sql),"sgqa","sgqa",true,"questionnaire_id=$questionnaire_id&sample_import_id=$sample_import_id"); if ($sgqa != false) { print "

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

"; print "

" . T_("Pre defined values for this question:") . "

"; $qid = explode("X", $sgqa); $qid = $qid[2]; $sql = "SELECT l.code,l.title FROM `" . LIME_PREFIX . "labels` as l, `" . LIME_PREFIX . "questions` as q WHERE q.qid = '$qid' AND l.lid = q.lid"; $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"))); ?>




"/>