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

电子政务应用

开发平台:

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: new.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.41 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - New task creation.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. // start file
  23. require("./../global.php");
  24. // globalise variables
  25. $global = array (
  26. array('id') // ticketid
  27. );
  28. rg($global);
  29. // default do
  30. $_REQUEST['do'] = trim($_REQUEST['do']);
  31. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  32. $_REQUEST['do'] = "new";
  33. }
  34. require_once(INCLUDE_PATH . 'functions/calendar_functions.php');
  35. ############################### CREATE TASK ###############################
  36. if ($_REQUEST['do'] == "new2") { 
  37. if ($_REQUEST['using_time']) { // sort out 24 hour clock
  38. if ($_REQUEST['twelvetime'] == "PM") {
  39. if ($_REQUEST['htime'] == "12") {
  40. $htime = "00";
  41. } else {
  42. $htime = $_REQUEST['htime'] + 12;
  43. }
  44. } else {
  45. $htime = $_REQUEST['htime'];
  46. }
  47. $starttime = "$htime:$_REQUEST[mtime]:00";
  48. }
  49. if (!(trim($_REQUEST['title']))) {
  50. $error .= 'The title was left empty\n';
  51. }
  52. if (!(trim($_REQUEST['description']))) {
  53. $error .= 'The description was left empty\n';
  54. }
  55. // repeat options
  56. if ($_REQUEST['type'] > 0) {
  57. if ($_REQUEST['type'] == '1') {
  58. $value1 = $_REQUEST['value11'];
  59. } elseif ($_REQUEST['type'] == '2') {
  60. if (is_array($_REQUEST['value22'])) {
  61. foreach($_REQUEST['value22'] AS $key => $var) {
  62. $value2 .= $key . '|';
  63. }
  64. $value2 = substr($value2, 0, -1);
  65. }
  66. $value1 = $_REQUEST['value21'];
  67. } elseif ($_REQUEST['type'] == '3') {
  68. $value1 = $_REQUEST['value31'];
  69. $value2 = $_REQUEST['value32'];
  70. } elseif ($_REQUEST['type'] == '4') {
  71. $value1 = $_REQUEST['value41'];
  72. $value2 = $_REQUEST['value42'];
  73. }
  74. }
  75. if (count($_REQUEST[techs]) > 1) {
  76. $multistaff = 1;
  77. }
  78. $startdate = "$_REQUEST[ystartdate]-$_REQUEST[mstartdate]-$_REQUEST[dstartdate]";
  79. if (!validate_ymd($startdate)) {
  80. $error .= 'The starting date entered was not valid\n';
  81. if ($_REQUEST[repeat_until]) {
  82. $enddate = "$_REQUEST[yenddate]-$_REQUEST[menddate]-$_REQUEST[denddate]";
  83. if (!validate_ymd($enddate)) {
  84. $error .= 'The ending date entered was not valid\n';
  85. }
  86. } else {
  87. $enddate = "0000-00-00";
  88. }
  89. if (is_array($_REQUEST['techs'])) {
  90. if (!count($_REQUEST['techs'])) {
  91. $error .= 'At least one technician must be assigned.\n';
  92. }
  93. } else {
  94. $error .= 'At least one technician must be assigned.\n';
  95. }
  96. if (!$error) {
  97.     $checks = xss_check(array($_REQUEST['title'], $_REQUEST['description']), 'tech');
  98. $db->query("INSERT INTO calendar_task SET
  99. title = '" . mysql_escape_string($checks[0]) . "',
  100. description = '" . mysql_escape_string($checks[1]) . "',
  101. starttime = '$starttime',
  102. repeattype = '" . intval($_REQUEST['type']) . "',
  103. value1 = '" . intval($value1) . "',
  104. value2 = '" . mysql_escape_string($value2) . "',
  105. multistaff = '" . intval($multistaff) . "',
  106. notifycompletion = '" . intval($_REQUEST['notifycompletion']) . "',
  107. globalcomplete = '" . intval($_REQUEST['globalcomplete']) . "',
  108. timezone = '" . mysql_escape_string($_REQUEST['timezone']) . "',
  109. startdate = '$startdate',
  110. enddate = '$enddate',
  111. techmaker = '$user[id]'
  112. ");
  113. $id = $db->last_id();
  114. // assignments
  115. if (is_array($_REQUEST['techs'])) {
  116. $db->query("SELECT id, username, email FROM tech WHERE id IN" . 
  117. array2sql($_REQUEST['techs']) . " or id = '$user[id]'");
  118. while ($result = $db->row_array()) {
  119. $emails[$result['id']]['username']  = $result['username'];
  120. $emails[$result['id']]['email']  = $result['email'];
  121. }
  122. foreach ($_REQUEST['techs'] AS $key => $var) {
  123. $db->query("INSERT INTO calendar_task_tech SET 
  124. email_due = '" . intval($_REQUEST['email_due']) . "',
  125. email_before1 = '" . intval($_REQUEST['email_before1']) . "',
  126. email_before2 = '" . intval($_REQUEST['email_before2']) . "',
  127. techid = '" . intval($var) . "',
  128. eventid = '" . intval($id) . "',
  129. stamp = '" . time() . "'"
  130. );
  131. $message = '';
  132. if ($_REQUEST['email_now']) {
  133. $taskusername = $emails[$user['id']]['username'];
  134. $taskurl = $settings['helpdesk_url'] . "/tech/calendar/viewtask.php?id=$id";
  135. $tasktitle = $_REQUEST['title'];
  136. $taskdescription = $_REQUEST['description'];
  137. eval(makeemaileval('message', 'TECHBODY_newtask', $subject));
  138. dp_mail($emails[$var][email], $subject, $message);
  139. }
  140. }
  141. }
  142. jump('index.php?do=added', 'Task added.');
  143. exit;
  144. } else {
  145. alert($error);
  146. }
  147. }
  148. tech_nav('calendar');
  149. ############################### CREATE NEW TASK ###############################
  150. echo "<form action="new.php" method="post">";
  151. ////////////////////////// ENTRY DETAILS //////////////////////////
  152. $table[] = array(table_thelp('<b>Entry Title</b> ', 'Calendar', 'Events: Title'), form_input('title', $_REQUEST['title']));
  153. if ($startdate) {
  154. $startdate = formatymd($startdate);
  155. }
  156. $table[] = array(table_thelp('<b>Entry Date</b> ', 'Calendar', 'Events: Due Date'), form_date('startdate', '', '', 1, '', $startdate));
  157. $table[] = array(table_thelp('<b>Entry Time</b> ', 'Calendar', 'Events: Time'), form_checkbox_single('using_time', 1, $_REQUEST['using_time']) . "&nbsp;&nbsp;&nbsp;" . form_time('time', 1, 1));
  158. $table[] = array(table_thelp('<b>Entry Timezone</b>', 'Calendar', 'Events: Timezone'), make_timezone($settings['timezone']));
  159. $table[] = array(table_thelp('<b>Entry Description</b> ', 'Calendar', 'Events: Description'), form_textarea('description', 60, 8, $_REQUEST['description']));
  160. $table[] = array(table_thelp('<b>Email Reminders</b> ', 'Calendar', 'Events: Reminders'),
  161. form_checkbox_single('email_due', 1, $_REQUEST['email_due']) . " on due day<br />" .
  162. "and/or " . form_input('email_before1', $_REQUEST['email_before1'], 2) . " day(s) before<br />" .
  163. "and/or " . form_input('email_before2', $_REQUEST['email_before2'], 2) . " day(s) before<br />"
  164. );
  165. $width = array('60%', '40%');
  166. table_header('Create a New Task');
  167. table_content('', $table, '', '', '', '', $width);
  168. table_footer();
  169. unset($table);
  170. ////////////////////////// TECH ASSIGNED //////////////////////////
  171. $db->query("SELECT id,username FROM tech WHERE !disabled");
  172. while ($result = $db->row_array()) {
  173. $tech[$result['id']] = $result['username'];
  174. }
  175. $total = $db->num_rows();
  176. $tmp .= form_checkbox_single($user['id'], 1, '', 'techs') . "&nbsp;&nbsp;&nbsp;" . $user['username'] . "<br />";
  177. if ($total < 10) {
  178. $selsize = $total;
  179. } else {
  180. $selsize = 10;
  181. }
  182. if (!$_REQUEST['techs']) {
  183. $_REQUEST['techs'] = array($user[id]);
  184. }
  185. $_REQUEST['techs'][$user['id']] = $user['username'];
  186. $tmp = form_select('techs', $tech, '', $_REQUEST['techs'], '', '', $selsize);
  187. $table[] = array(table_thelp('<b>Assign to Technician(s)</b> ', 'Calendar', 'Events: Assignments'), $tmp);
  188. $table[] = array(table_thelp('<b>E-mail Now</b> ', 'Calendar', 'Events: Mail Now?'), form_radio_yn('email_now', $_REQUEST['email_now']));
  189. if ($_REQUEST['globalcomplete']) {
  190. $glob0 = 0;
  191. $glob1 = 1;
  192. } else {
  193. $glob0 = 1;
  194. $glob1 = 0;
  195. }
  196. $table[] = array(table_thelp('<b>Multiple or Single?</b> ', 'Calendar', 'Events: Multiple or Single?'), form_radio_single('globalcomplete', 0, $glob0) . "&nbsp;&nbsp;&nbsp;<B>Yes</B>, every assigned technician must complete the task<br />" . form_radio_single('globalcomplete', 1, $glob1) . "&nbsp;&nbsp;&nbsp;<B>No</B>, once any assigned technician completes the task, it is complete for everyone");
  197. $table[] = array(table_thelp('<b>E-mail on Completion?</b> ', 'Calendar', 'Events: E-mail on Completion?'), form_radio_yn('notifycompletion', $_REQUEST['notifycompletion']));
  198. table_header('Assigned Technicians');
  199. table_content('', $table, '', '', '', '', $width);
  200. table_footer();
  201. unset($table);
  202. ////////////////////////// REPEAT OPTIONS //////////////////////////
  203. $month = array('1' => 'Jan', '2' => 'Feb', '3' => 'Mar', '4' => 'Apr', '5' => 'May', '6' => 'Jun', '7' => 'Jul', '8' => 'Aug', '9' => 'Sep', '10' => 'Oct', '11' => 'Nov', '12' => 'Dec');
  204. $table[] = table_midheader('Repeat Type');
  205. $type1 = 0;
  206. $type2 = 0;
  207. $type3 = 0;
  208. $type4 = 0;
  209. $type5 = 0;
  210. switch ($_REQUEST['type']) {
  211. case 1: $type1 = 'checked'; break;
  212. case 2: $type2 = 'checked'; break;
  213. case 3: $type3 = 'checked'; break;
  214. case 4: $type4 = 'checked'; break;
  215. default: 
  216. case 5: $type5 = 'checked'; break;
  217. }
  218. $table[] = array(table_thelp('<b>Daily Repeat</b> ', 'Calendar', 'Events: Repeat Type'), 
  219. "<input type="radio" name="type" value="1" $type1>&nbsp;&nbsp;&nbsp;Repeat every " . form_input('value11', $_REQUEST['value11'], 1) . " day(s)<br />");
  220. $table[] = array(table_thelp('<b>Weekly Repeat</b> ', 'Calendar', 'Events: Repeat Type'),
  221. "<input type="radio" name="type" value="2" $type2>&nbsp;&nbsp;&nbsp;Repeat every " . form_input('value21', $_REQUEST['value21'], 1) . " week(s) on <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" .
  222. form_checkbox_single('1', 1, $_REQUEST['value22'][1], 'value22') . "&nbsp;Sun&nbsp;&nbsp;" .
  223. form_checkbox_single('2', 1, $_REQUEST['value22'][2], 'value22') . "&nbsp;Mon&nbsp;&nbsp;" .
  224. form_checkbox_single('3', 1, $_REQUEST['value22'][3], 'value22') . "&nbsp;Tue&nbsp;&nbsp;" .
  225. form_checkbox_single('4', 1, $_REQUEST['value22'][4], 'value22') . "&nbsp;Wed&nbsp;&nbsp;" .
  226. form_checkbox_single('5', 1, $_REQUEST['value22'][5], 'value22') . "&nbsp;Thu&nbsp;&nbsp;" .
  227. form_checkbox_single('6', 1, $_REQUEST['value22'][6], 'value22') . "&nbsp;Fri&nbsp;&nbsp;" .
  228. form_checkbox_single('7', 1, $_REQUEST['value22'][7], 'value22') . "&nbsp;Sat&nbsp;&nbsp;");
  229. $table[] = array(table_thelp('<b>Monthly Repeat</b> ', 'Calendar', 'Events: Repeat Type'),
  230. "<input type="radio" name="type" value="3" $type3>&nbsp;&nbsp;&nbsp;Repeat on date " . form_select('value31', make_numberarray(1, 31), '', $_REQUEST['value31']) . " of every " . form_input('value32', $_REQUEST['value32'], 3) . " month(s)");
  231. $table[] = array(table_thelp('<b>Yearly Repeat</b> ', 'Calendar', 'Events: Repeat Type'),
  232. "<input type="radio" name="type" value="4" $type4>&nbsp;&nbsp;&nbsp;Repeat every year on date " . form_select('value41', make_numberarray(1, 31), '', $_REQUEST['value41']) . " " . form_select('value42', $month));
  233. $table[] = array(table_thelp('<b>No Repeat</b> ', 'Calendar', 'Events: Repeat Type'), "<input type="radio" name="type" value="5" $type5>&nbsp;&nbsp;&nbsp;Not a repeating event");
  234. $table[] = table_midheader('Repetition Options');
  235. $table[] = array(table_thelp('<b>End Date</b> ', 'Calendar', 'Events: Repeat End Date'),  
  236. form_radio_single('repeat_until', '0') . "&nbsp;Repeat Forever<BR>" .
  237. form_radio_single('repeat_until', '1') . "&nbsp;Repeat Until:&nbsp;" .
  238. form_date('enddate', '', '', 1));
  239. table_header('Repeat Options');
  240. table_content('', $table, '', '', '', '', $width);
  241. table_footer();
  242. unset($table);
  243. echo form_hidden('do', 'new2');
  244. echo "<center><input type="submit" name="submit" value="Create Task"></center></form>";
  245. tech_footer();
  246. ?>