* @copyright Australian Consortium for Social and Political Research Incorporated (ACSPRI), 2016 * @package queXS * @subpackage user * @link http://www.acspri.org.au/ queXS was writen for ACSPRI * @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"); /** * Authentication */ require ("auth-interviewer.php"); /** * XHTML functions */ include ("functions/functions.xhtml.php"); /** * Operator functions */ include("functions/functions.operator.php"); $js = false; if (AUTO_LOGOUT_MINUTES !== false) $js = array("include/jquery/jquery-1.4.2.min.js","js/childnap.js"); xhtml_head(T_("Search sample"),true,array("css/table.css"),$js); $operator_id = get_operator_id(); if (isset($_GET['callnext'])) { $cs = intval($_GET['callnext']); $cq = intval($_GET['callnextq']); $db->StartTrans(); $sql = "SELECT next_case_id FROM `operator` WHERE operator_id = $operator_id"; $nc = $db->GetOne($sql); if (!empty($nc)) print "

" . T_("Already calling case") . " $nc " . T_("next") . "

"; else { $sql = "SELECT case_id from `case` WHERE questionnaire_id = $cq and sample_id = $cs"; $cn = $db->GetOne($sql); if (empty($cn)) { //case does not exist - need to create it $cn = add_case($cs,$cq); $sql = "UPDATE `operator` SET next_case_id = $cn WHERE operator_id = $operator_id"; $db->Execute($sql); print "

" . T_("Will call case") . " $cn " . T_("next") . "

"; } else { $sql = "SELECT o.username FROM `case` as c LEFT JOIN `operator` as o on (o.operator_id = c.current_operator_id) WHERE c.case_id = $cn"; $at = $db->GetOne($sql); if (!empty($at)) print "

" . T_("Operator") . " $at " . T_("is already working on this case") . "

"; else { //make sure if this case is set next for someone else - to take it off them $sql = "UPDATE `operator` set next_case_id = NULL WHERE next_case_id = $cn"; $db->Execute($sql); $sql = "UPDATE `operator` SET next_case_id = $cn WHERE operator_id = $operator_id"; $db->Execute($sql); print "

" . T_("Will call case") . " $cn " . T_("next") . "

"; } } } $db->CompleteTrans(); } $rs = ""; //search if (isset($_POST['search'])) { //display sample details //limit to those allowed by admin // $search = $db->qstr("%" . $_POST['search'] . "%"); $sql = "SELECT CASE WHEN c.case_id IS NULL THEN '".T_("Not yet called")."' ELSE c.case_id END as case_id, CASE WHEN op.next_case_id IS NULL THEN CONCAT('".T_("Call next")."') ELSE CONCAT('".T_("Calling case")." ', op.next_case_id, ' ".T_("next")."') END as callnext, sv.val,sivr.var FROM operator_questionnaire as oq JOIN operator as op on (op.operator_id = oq.operator_id) JOIN questionnaire_sample as qs on (oq.questionnaire_id = qs.questionnaire_id) JOIN sample as s on (s.import_id = qs.sample_import_id) JOIN sample_var as sv on (sv.sample_id = s.sample_id AND sv.val like $search) JOIN sample_import_var_restrict as sivr on (sivr.var_id = sv.var_id AND (sivr.restrict IS NULL OR sivr.restrict = 0)) LEFT JOIN `case` as c on (c.sample_id = s.sample_id and c.questionnaire_id = qs.questionnaire_id) WHERE oq.operator_id = '$operator_id'"; $rs = $db->GetAll($sql); if (!empty($rs)) { xhtml_table($rs,array("case_id","var","val","callnext"),array(T_("Case id"),T_("Var"),T_("Value"),T_("Call next"))); } else { print "

" . T_("No results") . "

"; } } //display search form print "
"; print ""; print ""; print "

"; xhtml_foot(); ?>