From b9d37f651ef36de229a845fc7efeb35e6ae50cf7 Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Fri, 8 Jul 2016 16:20:50 +1000 Subject: [PATCH] New feature: Allow operators to see upcoming appointments and assign to themselves if necessary --- config.default.php | 1 + index.php | 9 ++++ index_interface2.php | 10 ++++ myappointments.php | 116 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+) create mode 100644 myappointments.php diff --git a/config.default.php b/config.default.php index da5f8685..ff873841 100644 --- a/config.default.php +++ b/config.default.php @@ -204,6 +204,7 @@ if (!defined('TAB_CASENOTES')) define('TAB_CASENOTES', true); if (!defined('TAB_CALLLIST')) define('TAB_CALLLIST', true); if (!defined('TAB_SHIFTS')) define('TAB_SHIFTS', true); if (!defined('TAB_APPOINTMENTLIST')) define('TAB_APPOINTMENTLIST', true); +if (!defined('TAB_MYAPPOINTMENTLIST')) define('TAB_MYAPPOINTMENTLIST', true); if (!defined('TAB_PERFORMANCE')) define('TAB_PERFORMANCE', true); if (!defined('TAB_CALLHISTORY')) define('TAB_CALLHISTORY', true); if (!defined('TAB_PROJECTINFO')) define('TAB_PROJECTINFO', true); diff --git a/index.php b/index.php index 641d27af..7aedb8be 100644 --- a/index.php +++ b/index.php @@ -292,6 +292,15 @@ xhtml_object($data,"main-content"); + +
"> +

+
+
+ + +
"> diff --git a/index_interface2.php b/index_interface2.php index 1032f242..b1932ba6 100644 --- a/index_interface2.php +++ b/index_interface2.php @@ -311,6 +311,16 @@ $availability = is_using_availability($case_id);
+ +
"> +

+
+
+ + + +
"> diff --git a/myappointments.php b/myappointments.php new file mode 100644 index 00000000..9aa36bd6 --- /dev/null +++ b/myappointments.php @@ -0,0 +1,116 @@ + + * @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_("My appointments"),false,array("css/table.css"),$js,false,60); + +//List all upcoming appointments for this interviewer + +$operator_id = get_operator_id(); + +if (isset($_GET['callnext'])) +{ + $cn = intval($_GET['callnext']); + + $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 = "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 = ""; + + $sql = "SELECT DATE_FORMAT(CONVERT_TZ(c.start,'UTC',op.Time_zone_name),'".DATE_TIME_FORMAT."') as start,DATE_FORMAT(CONVERT_TZ(c.end,'UTC',op.Time_zone_name),'".TIME_FORMAT."') as end, + DATE_FORMAT(CONVERT_TZ(c.start,'UTC',r.Time_zone_name),'".TIME_FORMAT."') as rstart,DATE_FORMAT(CONVERT_TZ(c.end,'UTC',r.Time_zone_name),'".TIME_FORMAT."') as rend, c.completed_call_id, + CONCAT(r.firstName, ' ', r.lastName) as respname, IFNULL(ao.firstName,'" . TQ_("Any operator") . "') as witho, + 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 + FROM `appointment` as c + JOIN operator as op on (op.operator_id = $operator_id) + JOIN respondent as r on (r.respondent_id = c.respondent_id) + LEFT JOIN operator AS ao ON (ao.operator_id = c.require_operator_id) + WHERE c.end >= CONVERT_TZ(NOW(),'System','UTC') + AND c.completed_call_id IS NULL + AND (c.require_operator_id IS NULL OR c.require_operator_id = $operator_id) + ORDER BY c.start DESC"; + +$rs = $db->GetAll($sql); + + +if (empty($rs)) +{ + print "

" . T_("No future appointments scheduled") . "

"; +} +else +{ + translate_array($rs,array("des")); + xhtml_table($rs,array("start","end","rstart","respname","witho","callnext"),array(T_("Start"),T_("End"),T_("RTime Start"),T_("Respondent"),T_("Operator"),T_("Call next"))); +} + + +xhtml_foot(); + +?>