* @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 "
";
?>
" . 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") . "
"/>
" . 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") . "