* @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($_POST['add_quota'])) { //need to add quota $completions = intval($_POST['completions']); $autoprioritise = 0; if (isset($_POST['autoprioritise'])) $autoprioritise = 1; $priority = intval($_POST['priority']); $questionnaire_id = bigintval($_GET['questionnaire_id']); $sample_import_id = bigintval($_GET['sample_import_id']); $description = $db->quote($_POST['description']); $sql = "INSERT INTO questionnaire_sample_quota_row(questionnaire_id, sample_import_id, completions, description, priority, autoprioritise) VALUES ($questionnaire_id, $sample_import_id, $completions, $description, $priority, $autoprioritise)"; $db->Execute($sql); //Make sure to calculate on the spot //update_quotas($questionnaire_id); } $qsqri = false; $qsqrid = false; if (isset($_GET['qsqri']) & isset($_GET['edit'])) { $qsqri = bigintval($_GET['qsqri']); $sql = "SELECT questionnaire_id,sample_import_id,description FROM questionnaire_sample_quota_row WHERE questionnaire_sample_quota_row_id = $qsqri"; $rs = $db->GetRow($sql); $_GET['questionnaire_id'] = $rs['questionnaire_id']; $_GET['sample_import_id'] = $rs['sample_import_id']; $qsqrid = $rs['description']; } $questionnaire_id = false; if (isset($_GET['questionnaire_id'])) $questionnaire_id = bigintval($_GET['questionnaire_id']); xhtml_head(T_("Quota row management"),true,array("../css/table.css"),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 ($qsqri != false) { print "

" . T_("Quota") . ": $qsqrid

"; print "

" . T_("Go back") . "

"; print "

" . T_("Edit row quota") . "

"; ?>
" method="post">





"/>

" . TQ_("Delete") . "') as qdelete FROM qsqr_question WHERE questionnaire_sample_quota_row_id = $qsqri"; $rs = $db->GetAll($sql); if (empty($rs)) { print "

" . T_("All completed responses will be counted") . "

"; } else { print "

" . T_("Only completed responses that have answered the following will be counted") . "

"; xhtml_table($rs,array('lime_sgqa','comparison','value','qdelete'),array(T_("Question"),T_("Comparison"),T_("Value"),T_("Delete"))); } //add questionnaire references if any (refer to sample only or count completions based on responses to questions) $sql = "SELECT lime_sid FROM questionnaire WHERE questionnaire_id = $questionnaire_id"; $lime_sid = $db->GetOne($sql); //select question $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, '' 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); if (!empty($rs)) { print "

" . T_("Add restriction based on answered questions") . "

"; print ""; display_chooser($rs,"sgqa","sgqa",false,"qsqri=$qsqri",false,false); ?>


"/> " . TQ_("Delete") . "') as sdelete FROM qsqr_sample WHERE questionnaire_sample_quota_row_id = $qsqri"; $rs = $db->GetAll($sql); if (empty($rs)) { print "

" . T_("All sample records will be counted") . "

"; } else { print "

" . T_("Only completed responses that have the following sample details will be counted") . "

"; xhtml_table($rs,array('exclude_var','comparison','exclude_val','sdelete'),array(T_("Sample record"),T_("Comparison"),T_("Value"),T_("Delete"))); } //add sample references (records from sample to exclude when quota reached) $sql = "SELECT sv.var as value, sv.var as description, '' 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"; $rs = $db->GetAll($sql); if (!empty($rs)) { print "

" . T_("Add restriction based on sample records") . "

"; print ""; display_chooser($db->GetAll($sql),"sample_var","sample_var",false,"qsqri=$qsqri",false,false); ?>

GetAll($sql),"exclude_val","exclude_val",false,false,false,false); flush(); ?>
"/> " . T_("Current row quotas (click to edit)") . ""; $sql = "SELECT questionnaire_sample_quota_row_id,qsq.description, CONCAT('', qsq.description, '') as qedit, CONCAT('') as qselect, qsq.completions,qsq.quota_reached,qsq.current_completions 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); print "
"; if (empty($r)) { print "

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

"; } else { xhtml_table($r,array('qedit','completions','current_completions','qselect'),array(T_("Description"),T_("Quota"),T_("Completions"),T_("Select"))); print ""; print ""; //select sample } print "
"; print "

" . T_("Add row quota") . "

"; ?>
" method="post">





"/>