* @since 2012-10-02 */ function case_status_report($questionnaire_id = false, $sample_id = false, $outcome_id = false) { global $db; $q = ""; if ($questionnaire_id !== false) $q = "AND c.questionnaire_id = $questionnaire_id"; $s = ""; if ($sample_id !== false) $s = "AND s.import_id = '$sample_id'"; $o = ""; if ($outcome_id !== false) $o = "AND c.current_outcome_id = $outcome_id"; $sql = "SELECT CONCAT('', c.case_id, '') as case_id, o.description as outcomes, si.description as samples, s.Time_zone_name as timezone, TIME_FORMAT(CONVERT_TZ(NOW(),@@session.time_zone,s.Time_zone_name),'". TIME_FORMAT ."') as time, (SELECT COUNT(*) FROM `call` WHERE `call`.case_id = c.case_id) as nrcalls, (SELECT COUNT(*) FROM call_attempt WHERE call_attempt.case_id = c.case_id) as nrattempts, CASE WHEN ca.end IS NULL THEN '" . TQ_("Available") . "' WHEN TIME_TO_SEC(TIMEDIFF(ca.end,CONVERT_TZ(DATE_SUB(NOW(), INTERVAL co.default_delay_minutes MINUTE),'System','UTC'))) < 0 THEN '" . TQ_("Available") . "' ELSE CONCAT(ROUND(TIME_TO_SEC(TIMEDIFF(ca.end,CONVERT_TZ(DATE_SUB(NOW(), INTERVAL co.default_delay_minutes MINUTE),'System','UTC'))) / 60),' " . TQ_("minutes") . "') END AS availableinmin, CASE WHEN oq.operator_id IS NULL THEN CONCAT('') ELSE CONCAT('', oq.firstName,' ',oq.lastName,'') END AS assignedoperator, CASE WHEN oq.operator_id IS NULL THEN CONCAT('') ELSE CONCAT(' ', cq.sortorder ,' ') END AS ordr, CASE WHEN oq.operator_id IS NULL THEN CONCAT('') ELSE CONCAT('') END AS flag FROM `case` as c JOIN questionnaire as q ON (q.questionnaire_id = c.questionnaire_id and q.enabled = 1) JOIN outcome as o ON (o.outcome_id = c.current_outcome_id AND o.outcome_type_id = 1) JOIN sample as s ON (s.sample_id = c.sample_id $s) JOIN sample_import as si ON (s.import_id = si.sample_import_id AND si.enabled = 1) JOIN questionnaire_sample as qs ON (qs.questionnaire_id = $questionnaire_id AND qs.sample_import_id = s.import_id) LEFT JOIN `call` as ca ON (ca.call_id = c.last_call_id) LEFT JOIN outcome as co ON (co.outcome_id = ca.outcome_id) LEFT JOIN case_queue as cq ON (cq.case_id = c.case_id) LEFT JOIN operator as oq ON (cq.operator_id = oq.operator_id) WHERE c.current_operator_id IS NULL $q $o ORDER BY c.case_id ASC"; // print $sql; print ("
"; return true; } if (isset($_POST['operator_id']) && !empty($_POST['operator_id'])) { $operator_id = intval($_POST['operator_id']); $db->StartTrans(); $sql = "SELECT MAX(sortorder) FROM case_queue WHERE operator_id = '$operator_id'"; $sortorder = $db->GetOne($sql); foreach($_POST as $key => $val) { $sortorder++; if (substr($key,0,1) == "c") { $sql = "INSERT INTO case_queue (case_id,operator_id,sortorder) VALUES ('" . bigintval($val) . "', '$operator_id', '$sortorder')"; $db->Execute($sql); } } $db->CompleteTrans(); } if (isset($_GET['unassign'])) { $case_queue_id = bigintval($_GET['unassign']); $db->StartTrans(); $sql = "SELECT operator_id FROM case_queue WHERE case_queue_id = '$case_queue_id'"; $operator_id = $db->GetOne($sql); $sql = "DELETE FROM case_queue WHERE case_queue_id = '$case_queue_id'"; $db->Execute($sql); $sql = "SELECT case_queue_id FROM case_queue WHERE operator_id = '$operator_id' ORDER BY sortorder ASC"; $rs = $db->GetAll($sql); $sortorder = 1; foreach($rs as $r) { $sql = "UPDATE case_queue SET sortorder = '$sortorder' WHERE case_queue_id = '{$r['case_queue_id']}'"; $db->Execute($sql); $sortorder++; } $db->CompleteTrans(); } xhtml_head(T_("Case status and assignment"),true,$css,$js_head);//array("../css/table.css"),array("../js/window.js") echo " " . T_("Go back") . " "; ?>