* @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']) && isset($_GET['exclude_var']) && isset($_GET['exclude_val'])) { //need to add quota $value = -1; $comparison = -1; $completions = -1; $sgqa = -1; $autoprioritise = 0; if (isset($_GET['autoprioritise'])) $autoprioritise = 1; $priority = intval($_GET['priority']); $questionnaire_id = bigintval($_GET['questionnaire_id']); $sample_import_id = bigintval($_GET['sample_import_id']); if ($_GET['sgqa'] != -1) { if ($_GET['sgqa'] != -2) { $comparison = $db->quote($_GET['comparison']); $value = $db->quote($_GET['value']); $sgqa = $db->quote($_GET['sgqa']); } else { $sgqa = -2; } $completions = $db->quote($_GET['completions']); } $exclude_val = $db->quote($_GET['exclude_val']); $exclude_var = $db->quote($_GET['exclude_var']); $description = $db->quote($_GET['description']); $sql = "INSERT INTO questionnaire_sample_quota_row(questionnaire_id, sample_import_id, lime_sgqa,value,completions,comparison,exclude_var,exclude_val,description, priority, autoprioritise) VALUES ($questionnaire_id, $sample_import_id, $sgqa, $value, $completions, $comparison, $exclude_var, $exclude_val, $description, $priority, $autoprioritise)"; $db->Execute($sql); //Make sure to calculate on the spot update_quotas($questionnaire_id); } if (isset($_GET['questionnaire_id']) && isset($_GET['questionnaire_sample_quota_row_id'])) { //need to edit quota $questionnaire_id = bigintval($_GET['questionnaire_id']); $questionnaire_sample_quota_row_id = bigintval($_GET['questionnaire_sample_quota_row_id']); //open_row_quota($questionnaire_sample_quota_row_id); } $questionnaire_id = false; if (isset($_GET['questionnaire_id'])) $questionnaire_id = bigintval($_GET['questionnaire_id']); xhtml_head(T_("Quota row 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 WHERE enabled = 1"; 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) { if (isset($_POST['copy_sample_import_id'])) { copy_row_quota($questionnaire_id,$sample_import_id,bigintval($_POST['copy_sample_import_id'])); print "

" . T_("Copied quotas") . "

"; } if (isset($_POST['copy_sample_import_id_with_adjustment'])) { copy_row_quota_with_adjusting($questionnaire_id,$sample_import_id,bigintval($_POST['copy_sample_import_id_with_adjustment'])); print "

" . T_("Copied quotas") . "

"; } print "

" . T_("Current row quotas (click to edit)") . "

"; $sql = "SELECT questionnaire_sample_quota_row_id,qsq.description FROM questionnaire_sample_quota_row 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 row quotas") . "

"; } else { foreach($r as $v) { print "
" . $v['description'] . ""; } /* if ($v['lime_sgqa'] == -1) print "
" . T_("Replicate: Where") . " " . $v['exclude_var'] . " " . T_("like") . " " . $v['exclude_val'] . " - "; else if ($v['lime_sgqa'] == -2) print "
" . T_("Sample only. Stop calling where") . " " . $v['exclude_var'] . " " . T_("like") . " " . $v['exclude_val'] . " " . T_("rows from this sample when:") . " {$v['completions']} " . T_("completions") . " - "; else print "
" . T_("Stop calling") . " " . $v['exclude_var'] . " " . T_("like") . " " . $v['exclude_val'] . " " . T_("rows from this sample when:") . " {$v['lime_sgqa']} {$v['comparison']} {$v['value']} " . T_("for") . ": {$v['completions']} " . T_("completions") ." - "; if ($v['quota_reached'] == 1) print T_("Row quota reached (Closed)"); else print T_("Row quota not yet reached (Open)"); if ($v['lime_sgqa'] != -1) print " - " . T_("Current completions: ") . $v['current_completions'] . ":" . limesurvey_quota_completions($v['lime_sgqa'],$v['lime_sid'],$questionnaire_id,$sample_import_id,$v['value'],$v['comparison']); print "
"; } */ //new quota print "

" . T_("Select a question for the row 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, 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 g.group_order ASC, lq.question_order ASC"; $rs = $db->GetAll($sql); $selected = ""; if ($sgqa == -1) $selected = "selected='selected'"; array_unshift($rs,array("value" => -1, "description" => T_("No question (Replicate)"), "selected" => $selected)); $selected = ""; if ($sgqa == -2) $selected = "selected='selected'"; array_unshift($rs,array("value" => -2, "description" => T_("Sample only quota"), "selected" => $selected)); display_chooser($rs,"sgqa","sgqa",true,"questionnaire_id=$questionnaire_id&sample_import_id=$sample_import_id"); if ($sgqa != false) { $sample_var = false; if (isset($_GET['sample_var'])) $sample_var = $_GET['sample_var']; print "

" . T_("Select the sample variable to exclude") . "

"; $sql = "SELECT sv.var as value, sv.var as description, CASE WHEN sv.var LIKE '$sample_var' THEN 'selected=\'selected\'' ELSE '' END AS selected FROM sample_var AS sv, sample AS s WHERE s.import_id = $sample_import_id AND s.sample_id = sv.sample_id GROUP BY sv.var"; display_chooser($db->GetAll($sql),"sample_var","sample_var",true,"questionnaire_id=$questionnaire_id&sample_import_id=$sample_import_id&sgqa=$sgqa"); if ($sample_var != false) { print "

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

"; print "

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

"; $rs = ""; if ($sgqa != -2 && $sgqa != -1 && !empty($sgqa)) { $qid = explode("X", $sgqa); $qid = $qid[2]; $sql = "SELECT l.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"))); ?>







GetAll($sql),"exclude_val","exclude_val",false,false,false,false); flush(); ?>
"/>