2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00

Added case status and assignment feature which lists cases when they are available and allows the assignment to operators (requires database change)

This commit is contained in:
Adam Zammit
2013-07-04 14:54:12 +10:00
parent 0b22c5206d
commit ffcc9c3b4e
4 changed files with 285 additions and 1 deletions

View File

@@ -348,6 +348,16 @@ function get_case_id($operator_id, $create = false)
$rnc = $db->GetRow($sql);
$sql = "SELECT cq.case_id, cq.case_queue_id
FROM case_queue as cq, `case` as c
WHERE cq.operator_id = '$operator_id'
AND cq.case_id = c.case_id
AND c.current_operator_id IS NULL
ORDER BY cq.sortorder ASC
LIMIT 1";
$sq = $db->GetRow($sql);
if (isset($rnc['next_case_id']) && !empty($rnc['next_case_id']))
{
$case_id = $rnc['next_case_id'];
@@ -374,7 +384,52 @@ function get_case_id($operator_id, $create = false)
$db->Execute($sql);
}
}
}
else if (isset($sq['case_id']) && !empty($sq['case_id']))
{
$case_id = $sq['case_id'];
$case_queue_id = $sq['case_queue_id'];
$sql = "UPDATE `case`
SET current_operator_id = '$operator_id'
WHERE current_operator_id IS NULL
AND case_id = '$case_id'";
$db->Execute($sql);
//should fail transaction if already assigned to another case
if ($db->Affected_Rows() != 1)
{
$db->FailTrans();
}
else
{
//remove case from queue and update sortorder
$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++;
}
}
}
else if ($create)
{
$systemsort = get_setting('systemsort');