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

电子政务应用

开发平台:

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: edit.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.50 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Calendar task edit page.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL ^ E_NOTICE);
  22. // start file
  23. require("./../global.php");
  24. // globalise variables
  25. $global = array (
  26. array('id') // calendar event ID
  27. );
  28. rg($global);
  29. tech_nav('calendar');
  30. if (!$id) {
  31. jump('index.php', 'No event specified.');
  32. exit;
  33. }
  34. // default do
  35. $_REQUEST['do'] = trim($_REQUEST['do']);
  36. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  37. $_REQUEST['do'] = "edit";
  38. }
  39. $oldtaskdata = $db->query_return("SELECT * FROM calendar_task WHERE id = '$id'");
  40. if (!$db->num_rows()) {
  41. mistake('The specified task does not exist.');
  42. exit;
  43. }
  44. if ($oldtaskdata['techmaker'] != $user['id']) {
  45. if ($_REQUEST['do'] == 'edit2') {
  46. $db->query("UPDATE calendar_task_tech SET 
  47. email_due = " . intval($_REQUEST['email_due']) . ",
  48. email_before1 = '" . intval($_REQUEST['email_before1']) . "',
  49. email_before2 = '" . intval($_REQUEST['email_before2']) . "'
  50. WHERE techid = '" . $user['id'] . "'
  51. AND eventid = '" . intval($id) . "'"
  52. );
  53. jump('viewtask.php?id=$id', 'Notification options updated.');
  54. } else {
  55. mistake('You don't have permission to edit this task.');
  56. }
  57. exit;
  58. }
  59. require_once(INCLUDE_PATH . 'functions/calendar_functions.php');
  60. ############################### EDIT TASK ###############################
  61. if ($_REQUEST['do'] == "edit2") { 
  62. if ($_REQUEST['using_time']) { // sort out 24 hour clock
  63. if ($_REQUEST['twelvetime'] == "PM") {
  64. if ($_REQUEST['htime'] == "12") {
  65. $htime = "00";
  66. } else {
  67. $htime = $_REQUEST['htime'] + 12;
  68. }
  69. } else {
  70. $htime = $_REQUEST['htime'];
  71. }
  72. $starttime = "$htime:$_REQUEST[mtime]:00";
  73. }
  74. // repeat options
  75. if ($_REQUEST['type'] > 0) {
  76. if ($_REQUEST['type'] == '1') {
  77. $value1 = $_REQUEST['value11'];
  78. } elseif ($_REQUEST['type'] == '2') {
  79. if (is_array($_REQUEST['value22'])) {
  80. foreach($_REQUEST['value22'] AS $key => $var) {
  81. $value2 .= $key . '|';
  82. }
  83. $value2 = substr($value2, 0, -1);
  84. }
  85. $value1 = $_REQUEST['value21'];
  86. } elseif ($_REQUEST[type] == '3') {
  87. $value1 = $_REQUEST['value31'];
  88. $value2 = $_REQUEST['value32'];
  89. } elseif ($_REQUEST[type] == '4') {
  90. $value1 = $_REQUEST['value41'];
  91. $value2 = $_REQUEST['value42'];
  92. }
  93. }
  94. // Delete task repetition data if the task is being set to non-repeating.
  95. if ($oldtaskdata['repeattype'] AND !$_REQUEST['type']) {
  96. $db->query("DELETE FROM calendar_task_iteration WHERE taskid = '$oldtaskdata[id]'");
  97. }
  98. if (count($_REQUEST['techs']) > 1) {
  99. $multistaff = 1;
  100. }
  101. $startdate = "$_REQUEST[ystartdate]-$_REQUEST[mstartdate]-$_REQUEST[dstartdate]";
  102. $enddate = "$_REQUEST[yenddate]-$_REQUEST[menddate]-$_REQUEST[denddate]";
  103. $checks = xss_check(array($_REQUEST['title'], $_REQUEST['description']), 'tech');
  104. $db->query("UPDATE calendar_task SET
  105. title = '" . mysql_escape_string($checks[0]) . "',
  106. description = '" . mysql_escape_string($checks[1]) . "',
  107. starttime = '$starttime',
  108. repeattype = " . intval($_REQUEST['type']) . ",
  109. value1 = " . intval($value1) . ",
  110. value2 = '" . mysql_escape_string($value2) . "',
  111. multistaff = " . intval($multistaff) . ",
  112. notifycompletion = " . intval($_REQUEST['notifycompletion']) . ",
  113. globalcomplete = " . intval($_REQUEST['globalcomplete']) . ",
  114. timezone = '" . mysql_escape_string($_REQUEST['timezone']) . "',
  115. startdate = '$startdate',
  116. enddate = '$enddate'
  117. WHERE id = " . intval($id));
  118. // assignments
  119. if (is_array($_REQUEST['techs'])) {
  120. $db->query("SELECT techid, completed, stamp FROM calendar_task_tech WHERE eventid = '" . intval($id) . "'");
  121. while ($result = $db->row_array()) {
  122. $completed[$result['techid']]['completed'] = $result['completed'];
  123. $completed[$result['techid']]['stamp'] = $result['stamp'];
  124. }
  125. $db->query("SELECT techid FROM calendar_task_tech WHERE eventid = '$id'");
  126. while ($res = $db->row_array()) {
  127. $oldlist[] = $res['techid'];
  128. }
  129. $newlist = @array_diff($_REQUEST['techs'], $oldlist);
  130. $db->query("DELETE FROM calendar_task_tech WHERE eventid = '" . intval($id) . "'");
  131. foreach ($_REQUEST['techs'] AS $key => $var) {
  132. if (!isset($completed[$var])) {
  133. $completed[$var]['completed'] = 0;
  134. $completed[$var]['stamp'] = time();
  135. }
  136. $db->query("REPLACE INTO calendar_task_tech SET 
  137. email_due = " . intval($_REQUEST['email_due']) . ",
  138. email_before1 = " . intval($_REQUEST['email_before1']) . ",
  139. email_before2 = " . intval($_REQUEST['email_before2']) . ",
  140. techid = " . intval($var) . ",
  141. eventid = " . intval($id) . ",
  142. completed = " . intval($completed[$var]['completed']) . ",
  143. stamp = " . intval($completed[$var]['stamp'])
  144. );
  145. }
  146. if (is_array($newlist) AND $_REQUEST['email_now']) {
  147. $db->query("SELECT id, username, email FROM tech WHERE id IN" . 
  148. array2sql($_REQUEST['techs']) . " or id = '$user[id]'");
  149. while ($result = $db->row_array()) {
  150. $emails[$result['id']]['username']  = $result['username'];
  151. $emails[$result['id']]['email']  = $result['email'];
  152. }
  153. foreach($newlist AS $tech) {
  154. $taskusername = $emails[$user['id']]['username'];
  155. $taskurl = $settings['helpdesk_url'] . "/tech/calendar/viewtask.php?id=$id";
  156. $tasktitle = $_REQUEST['title'];
  157. $taskdescription = $_REQUEST['description'];
  158. eval(makeemaileval('message', 'TECHBODY_newtask', $subject));
  159. dp_mail($emails[$var][email], $subject, $message);
  160. }
  161. }
  162. }
  163. jump("viewtask.php?id=$id", 'Task updated.');
  164. }
  165. ############################### EDIT TASK ###############################
  166. if ($_REQUEST['do'] == "edit") { 
  167. $task = $db->query_return("SELECT * FROM calendar_task WHERE id = '$id'");
  168. $sched = $db->query_return("SELECT * FROM calendar_task_tech WHERE eventid = '$id' AND techid = '$user[id]'");
  169. $task['email_before1'] = $sched['email_before1'];
  170. $task['email_before2'] = $sched['email_before2'];
  171. echo "<form action="edit.php" method="post">";
  172. ////////////////////////// ENTRY DETAILS //////////////////////////
  173. $table[] = array(table_thelp('<b>Entry Title</b>', 'Calendar', 'Events: Title') , form_input('title', $task['title']));
  174. $table[] = array(table_thelp('<b>Entry Date</b>', 'Calendar', 'Events: Due Date'), form_date('startdate', '', '', 1, '', $task['startdate']));
  175. $table[] = array(table_thelp('<b>Entry Time</b>', 'Calendar', 'Events: Time'), form_checkbox_single('using_time', 1, iff($task['starttime'] != '00:00:00', 1, 0)) 
  176. . "&nbsp;&nbsp;&nbsp;" . form_time('time', iff($task['starttime'] != '00:00:00', $task['starttime'], NULL), 1));
  177. $table[] = array(table_thelp('<b>Entry Timezone</b>', 'Calendar', 'Events: Timezone'), make_timezone($task['timezone']));
  178. $table[] = array(table_thelp('<b>Entry Description</b>', 'Calendar', 'Events: Description'), form_textarea('description', 60, 8, $task['description']));
  179. $table[] = array(table_thelp('<b>Email Reminders</b>', 'Calendar', 'Events: Reminders'), 
  180. form_checkbox_single('email_due', 1, $task['email_due']) . " on due day<br />" .
  181. "and/or " . form_input('email_before1', $task['email_before1'], 2) . " day(s) before<br />" .
  182. "and/or " . form_input('email_before2', $task['email_before2'], 2) . " day(s) before<br />"
  183. );
  184. $width = array('60%', '40%');
  185. table_header("Edit Task (#$id)");
  186. table_content('', $table, '', '', '', '', $width);
  187. table_footer();
  188. unset($table);
  189. ////////////////////////// TECH ASSIGNED //////////////////////////
  190. $db->query("SELECT id,username FROM tech order by username");
  191. while ($result = $db->row_array()) {
  192. $tech[$result['id']] = $result['username'];
  193. }
  194. $db->query("SELECT calendar_task_tech.techid
  195. FROM calendar_task_tech
  196. WHERE eventid = '$id'
  197. ");
  198. while ($result = $db->row_array()) {
  199. $assigned_techs[] = $result['techid'];
  200. }
  201. $total = $db->num_rows();
  202. if ($total < 10) {
  203. $selsize = $total;
  204. } else {
  205. $selsize = 10;
  206. }
  207. if ($selsize < 5) {
  208. $selsize = 5;
  209. }
  210. $tmp = form_select('techs', $tech, '', $assigned_techs, '', '', $selsize);
  211. $table[] = array(table_thelp('<b>Assign to Technicians</b> ', 'Calendar', 'Events: Assignments'), $tmp);
  212. $table[] = array(table_thelp('<b>E-mail Now</b> ', 'Calendar', 'Events: Mail Now?'), form_radio_yn('email_now'));
  213. $table[] = array(table_thelp('<b>Multiple or Single?</b> ', 'Calendar', 'Events: Multiple or Single?'), 
  214. "<TABLE><TR valign="top"><TD>" .
  215. form_radio_single('globalcomplete', 0, iff($globalcomplete, 0, 1)) . 
  216. "</td><td><B>Yes</B>, every assigned technician must complete the task</td></tr><tr valign="top"><td>" . 
  217. form_radio_single('globalcomplete', 1, iff($globalcomplete, 1, 0)) . 
  218. "</td><td><B>No</B>, once any assigned technician completes the task, it is complete for everyone</td></tr></table>");
  219. $table[] = array(table_thelp('<b>E-mail on Completion?</b> ', 'Calendar', 'Events: E-mail on Completion?'), form_radio_yn('notifycompletion'));
  220. table_header('Assigned Technicians');
  221. table_content('', $table, '', '', '', '', $width);
  222. table_footer();
  223. unset($table);
  224. ////////////////////////// REPEAT OPTIONS //////////////////////////
  225. if ($task['repeattype']) {
  226. $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');
  227. $days = array();
  228. switch ($task['repeattype']) {
  229. case '1':
  230. $rep1 = 'checked';
  231. break;
  232. case '2':
  233. $rep2 = 'checked';
  234. $days = explode('|', $task['value2']);
  235. break;
  236. case '3':
  237. $rep3 = 'checked';
  238. break;
  239. case '4':
  240. $rep4 = 'checked';
  241. break;
  242. }
  243. $table[] = table_midheader('Repeat Type');
  244. $table[] = array(table_thelp('<B>No Repeat</B> ', 'Calendar', 'Events: Repeat Type'),
  245. "<input type="radio" name="type" value="0" $rep0>&nbsp;&nbsp;&nbsp;No Repeat");
  246. $table[] = array(table_thelp('<b>Daily Repeat</b> ', 'Calendar', 'Events: Repeat Type'), 
  247. "<input type="radio" name="type" value="1" $rep1>&nbsp;&nbsp;&nbsp;Repeat every " . form_input('value11', iff($rep1, $task['value1'], $task['value1']), 1) . " day(s)<br />");
  248. $table[] = array(table_thelp('<b>Weekly Repeat</b> ', 'Calendar', 'Events: Repeat Type'),
  249. "<input type="radio" name="type" value="2" $rep2>&nbsp;&nbsp;&nbsp;Repeat every " . form_input('value21', iff($rep2, $task['value1'], $task['value1']), 1) . " week(s) on <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" .
  250. form_checkbox_single('1', 1, in_array(1, $days), 'value22') . "&nbsp;Sun&nbsp;&nbsp;" .
  251. form_checkbox_single('2', 1, in_array(2, $days), 'value22') . "&nbsp;Mon&nbsp;&nbsp;" .
  252. form_checkbox_single('3', 1, in_array(3, $days), 'value22') . "&nbsp;Tue&nbsp;&nbsp;" .
  253. form_checkbox_single('4', 1, in_array(4, $days), 'value22') . "&nbsp;Wed&nbsp;&nbsp;" .
  254. form_checkbox_single('5', 1, in_array(5, $days), 'value22') . "&nbsp;Thu&nbsp;&nbsp;" .
  255. form_checkbox_single('6', 1, in_array(6, $days), 'value22') . "&nbsp;Fri&nbsp;&nbsp;" .
  256. form_checkbox_single('7', 1, in_array(7, $days), 'value22') . "&nbsp;Sat&nbsp;&nbsp;");
  257. $table[] = array(table_thelp('<b>Monthly Repeat</b> ', 'Calendar', 'Events: Repeat Type'),
  258. "<input type="radio" name="type" value="3" $rep3>&nbsp;&nbsp;&nbsp;Repeat on date " . form_select('value31', make_numberarray(1, 31), '', iff($rep3, $task['value1'])) . " of every " . form_input('value32', iff($rep3, $task['value2']), 3) . " month(s)");
  259. $table[] = array(table_thelp('<b>Yearly Repeat</b> ', 'Calendar', 'Events: Repeat Type'),
  260. "<input type="radio" name="type" value="4" $rep4>&nbsp;&nbsp;&nbsp;Repeat every year on date " . form_select('value41', make_numberarray(1, 31), '', iff($rep4, $task['value1'])) . " " . form_select('value42', $month, '', iff($rep4, $task['value2'])));
  261. $table[] = table_midheader('Repetition Options');
  262. $table[] = array(table_thelp('<b>End Date</b> ', 'Calendar', 'Events: Repeat End Date'), 
  263. form_radio_single('repeat_until', '0', iff($task['enddate'], 0, 1)) . "&nbsp;Repeat Forever<BR>" .
  264. form_radio_single('repeat_until', '1', iff($task['enddate'], 1, 0)) . "&nbsp;Repeat Until:&nbsp;" .
  265. form_date('enddate', '', '', 0, '', iff($task['enddate'], $task['enddate'], '')));
  266. table_header('Repeat Options');
  267. table_content('', $table, '', '', '', '', $width);
  268. table_footer();
  269. unset($table);
  270. echo "<script language="javascript">$js</script>";
  271. }
  272. echo form_hidden('do', 'edit2');
  273. echo form_hidden('id', $id);
  274. echo "<center><input type="submit" name="submit" value="Edit Task"></center></form>";
  275. }
  276. tech_footer();
  277. ?>