escalate.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:7k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: escalate.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.14 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Ticket auto-escalation options (administration interface)
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL & ~E_NOTICE);
  22. require_once('./global.php');
  23. //Nullify WTN-WDYL Team
  24. // default do
  25. $_REQUEST['do'] = trim($_REQUEST['do']);
  26. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  27. $_REQUEST['do'] = "view";
  28. }
  29. // globalise variables
  30. $global = array (
  31. array('id', 'number')
  32. );
  33. rg($global);
  34. ############################### DELETE ESCALATION ###############################
  35. if ($_REQUEST['do'] == 'delete') {
  36. $db->query("DELETE FROM escalate WHERE id = '$id'");
  37. jump('escalate.php', 'Escalation criteria deleted');
  38. }
  39. ############################### NEW ESCALATION (2) ###############################
  40. if ($_REQUEST['do'] == 'new2') {
  41. if ($_REQUEST['dayswaiting'] OR $_REQUEST['daysopen']) {
  42. if (is_array($_REQUEST['email'])) {
  43. foreach ($_REQUEST['email'] AS $key => $var) {
  44. $techemail .= $var . ',';
  45. }
  46. $techemail = substr($techemail, 0, -1);
  47. }
  48. $db->query("INSERT INTO escalate SET
  49. category = '" . mysql_escape_string($_REQUEST['category']) . "',
  50. priority = '" . mysql_escape_string($_REQUEST['priority']) . "',
  51. tech = '" . mysql_escape_string($_REQUEST['tech']) . "',
  52. techemail = '$techemail',
  53. dayswaiting = '" . ((int)$_REQUEST['dayswaiting']) . "',
  54. daysopen = '" . ((int)$_REQUEST['daysopen']) . "'
  55. ");
  56. jump('escalate.php', 'New escalation criteria created');
  57. } else {
  58. alert('You must set a number of days for escalation');
  59. $escalate = $_REQUEST;
  60. $_REQUEST['do'] = 'new';
  61. }
  62. }
  63. ############################### EDIT ESCALATION (2) ###############################
  64. if ($_REQUEST['do'] == 'edit2') {
  65. if ($_REQUEST['dayswaiting'] OR $_REQUEST['daysopen']) {
  66. if (is_array($_REQUEST['email'])) {
  67. foreach ($_REQUEST['email'] AS $key => $var) {
  68. $techemail .= $var . ',';
  69. }
  70. $techemail = substr($techemail, 0, -1);
  71. }
  72. $db->query("UPDATE escalate SET
  73. category = '" . mysql_escape_string($_REQUEST['category']) . "',
  74. priority = '" . mysql_escape_string($_REQUEST['priority']) . "',
  75. tech = '" . mysql_escape_string($_REQUEST['tech']) . "',
  76. techemail = '$techemail',
  77. dayswaiting = '" . ((int)$_REQUEST['dayswaiting']) . "',
  78. daysopen = '" . ((int)$_REQUEST['daysopen']) . "'
  79. WHERE id = '$id'
  80. ");
  81. jump('escalate.php', 'Escalation criteria created updated');
  82. } else {
  83. alert('You must set a number of days for escalation');
  84. $_REQUEST['do'] = 'edit';
  85. }
  86. }
  87. ############################### NEW / EDIT ESCALATION ###############################
  88. if (($_REQUEST['do'] == 'new') OR ($_REQUEST['do'] == 'edit')) {
  89. if ($_REQUEST['do'] == 'edit') {
  90. admin_header('Escalations', 'Edit Escalation');
  91. $escalate = $db->query_return("SELECT * FROM escalate WHERE id = '$id'");
  92. } else {
  93. admin_header('Escalations', 'New Escalation');
  94. }
  95. $cats[0] = 'Do not change';
  96. $db->query("SELECT id, name FROM ticket_cat");
  97. while ($result = $db->row_array()) {
  98. $cats[$result['id']] = $result['name'];
  99. }
  100. $pris[0] = 'Do not change';
  101. $db->query("SELECT id, name FROM ticket_pri");
  102. while ($result = $db->row_array()) {
  103. $pris[$result['id']] = $result['name'];
  104. }
  105. $techs[0] = 'Do not change';
  106. $db->query("SELECT id, username FROM tech");
  107. while ($result = $db->row_array()) {
  108. $techs[$result['id']] = $result['username'];
  109. }
  110. $table[] = array('<b>Days user has been waiting</b><br />Days since last user message with no tech response', form_select('dayswaiting', make_numberarray(1, 120, 1), '', $escalate['dayswaiting']));
  111. $table[] = array('<b>Days ticket has been open</b><br />Number of days since ticket opened', form_select('daysopen', make_numberarray(1, 120, 1), '', $escalate['daysopen']));
  112. $table[] = table_midheader('Actions upon escalation');
  113. $table[] = array('<b>Assign ticket to technician</b>', form_select('tech', $techs, '', $escalate['tech']));
  114. unset($techs[0]);
  115. $escalate['techemail'] = explode(',', $escalate['techemail']);
  116. $table[] = array('<b>Email specific technicians</b><br />This lets techs know that the ticket requires urgent attention.', form_select('email', $techs, '', $escalate['techemail'], '', '', 5));
  117. $table[] = array('<b>Change Priority</b>', form_select('priority', $pris, '', $escalate['priority']));
  118. $table[] = array('<b>Change Category</b>', form_select('category', $cats, '', $escalate['category']));
  119. if ($_REQUEST['do'] == 'new') {
  120. $title = 'Create Escalations';
  121. $button = 'Create';
  122. $hidden = array('do' => 'new2');
  123. } else {
  124. $title = 'Edit Escalations';
  125. $button = 'Edit';
  126. $hidden = array('do' => 'edit2', 'id' => $id);
  127. }
  128. table_header($title, 'escalate.php', $hidden);
  129. table_content($cols, $table);
  130. table_footer($button);
  131. }
  132. ############################### VIEW ESCALATION CRITERIA ###############################
  133. if ($_REQUEST['do'] == 'view') {
  134. admin_header('Escalations', 'View Escalations');
  135. $db->query("SELECT id, username FROM tech");
  136. while ($result = $db->row_array()) {
  137. $techs[$result[id]] = $result['username'];
  138. }
  139. $db->query("SELECT escalate.*, ticket_cat.name AS catname, ticket_pri.name AS priname
  140. FROM escalate
  141. LEFT JOIN ticket_cat ON (escalate.category = ticket_cat.id)
  142. LEFT JOIN ticket_pri ON (escalate.priority = ticket_pri.id)
  143. ");
  144. while ($result = $db->row_array()) {
  145. unset($techarray);
  146. $techtmp = split(',', $result['techemail']);
  147. if (is_array($techtmp)) {
  148. foreach ($techtmp AS $key => $var) {
  149. if ($var) {
  150. $techarray[] = $techs[$var];
  151. }
  152. }
  153. }
  154. $table[] = array(
  155. '<b>' . iff($result['dayswaiting'], $result['dayswaiting'], '&nbsp;') . '</b>',
  156. '<b>' . iff($result['daysopen'], $result['daysopen'], '&nbsp;') . '</b>',
  157. $techs[$result['tech']],
  158. $result['catname'],
  159. $result['priname'],
  160. iff(is_array($techarray), @form_select($result['id'], $techarray)),
  161. "<a href="escalate.php?do=edit&id=$result[id]">edit</a>",
  162. jprompt('Please confirm you wish to delete this escalation procedure', "escalate.php?do=delete&id=$result[id]", 'delete')
  163. );
  164. }
  165. $cols = array('Days Waiting', 'Days Open', 'Change Tech Owner', 'Category Change', 'Priority Change', 'Email Techs', 'Edit', 'Delete');
  166. table_header('Current Escalation Procedures');
  167. table_content($cols, $table);
  168. table_footer($button);
  169. }
  170. ##############################################################
  171. admin_footer();
  172. ?>