/** * @throws ProjectIDMissingException * @throws ProjectSecuriyAccessDeniedException */ public static function add() { global $user, $project_security; if ($_GET['project_id']) { if ($project_security->is_access(3, false) == true) { $project_id = $_GET['project_id']; $project = new Project($project_id); if (!$_GET['nextpage']) { $template = new HTMLTemplate("project/tasks/add.html"); $paramquery = $_GET; $paramquery['nextpage'] = "1"; $params = http_build_query($paramquery, '', '&'); $template->set_var("params", $params); $template->output(); } else { switch ($_POST['type']) { case 1: if ($_GET['nextpage'] == "2") { $page_2_passed = true; if (!is_numeric($_POST['time1']) or $_POST['time1'] > 24 or !is_numeric($_POST['time2']) or $_POST['time2'] > 59) { if ($_POST['wholeday'] != 1) { $error[2] = "<br />Enter a time or select \"whole day\"!"; $page_2_passed = false; } } if (!$_POST['startdate']) { $error[0] = "<br />Select a start date."; $page_2_passed = false; } else { $datetime_handler = new DatetimeHandler($_POST['date']); if ($datetime_handler->less_then_current()) { $error[0] = "<br />Select a date in the future."; $page_2_passed = false; } } if (!$_POST['enddate']) { $error[1] = "<br />Select an end date"; $page_2_passed = false; } else { $datetime_handler = new DatetimeHandler($_POST['date']); if ($datetime_handler->less_then_current()) { $error[1] = "<br />Select a date in the future."; $page_2_passed = false; } } if ($_POST['status']) { if ($_POST['finalise'] == 1) { $finalise = true; } else { $finalise = false; } if ($_POST['auto_connect'] == 1) { $auto_connect = true; } else { $auto_connect = false; } $project_task = new ProjectTask(null); if ($project_task->check_status_process($project_id, $_POST['status'], $finalise, $auto_connect) == true) { $error[3] = "<br />You have already created this task."; $page_2_passed = false; } } } else { $page_2_passed = false; } if ($page_2_passed == false) { $template = new HTMLTemplate("project/tasks/add_status_process.html"); $paramquery = $_GET; $paramquery['nextpage'] = "2"; $params = http_build_query($paramquery, '', '&'); $template->set_var("params", $params); if ($error[0]) { $template->set_var("error0", $error[0]); } else { $template->set_var("error0", ""); } if ($error[1]) { $template->set_var("error1", $error[1]); } else { $template->set_var("error1", ""); } if ($error[2]) { $template->set_var("error2", $error[2]); } else { $template->set_var("error2", ""); } if ($error[3]) { $template->set_var("error3", $error[3]); } else { $template->set_var("error3", ""); } if ($_POST['startdate']) { $template->set_var("startdate", $_POST['startdate']); } else { $template->set_var("startdate", date("Y-m-d")); } if ($_POST['enddate']) { $template->set_var("enddate", $_POST['enddate']); } else { $template->set_var("enddate", ""); } if ($_POST['time1']) { $template->set_var("time1", $_POST['time1']); } else { $template->set_var("time1", ""); } if ($_POST['time2']) { $template->set_var("time2", $_POST['time2']); } else { $template->set_var("time2", ""); } if ($_POST['comment']) { $template->set_var("comment", $_POST['comment']); } else { $template->set_var("comment", ""); } if ($_POST['task'] == "2") { $template->set_var("achive_checked", "checked='checked'"); $template->set_var("finalise_checked", ""); } else { $template->set_var("achive_checked", ""); $template->set_var("finalise_checked", "checked='checked'"); } if ($_POST['wholeday'] == "1") { $template->set_var("whole_day_checked", "checked='checked'"); } else { $template->set_var("whole_day_checked", ""); } $status_array = $project->get_all_status_array(); if (is_array($status_array) and count($status_array) >= 1) { $status_content_array = array(); $counter = 0; foreach ($status_array as $key => $value) { if ($value['status'] == 0) { $project_status = new ProjectStatus($value['id']); $status_content_array[$counter]['value'] = $value['id']; $status_content_array[$counter]['content'] = $project_status->get_name(); $counter++; } } $template->set_var("status", $status_content_array); } else { $status_content_array[0]['value'] = 0; $status_content_array[0]['content'] = "NO STATUS FOUND"; $template->set_var("status", $status_content_array); } $template->set_var("type", $_POST['type']); $template->output(); } else { $paramquery = $_GET; unset($paramquery['nextpage']); $paramquery['run'] = "detail"; $params = http_build_query($paramquery); if ($_POST['wholeday'] == 1) { $time = null; $whole_day = true; } else { $time = $_POST['time1'] . ":" . $_POST['time2'] . ":00"; $whole_day = false; } if ($_POST['finalise'] == 1) { $finalise = true; } else { $finalise = false; } if ($_POST['auto_connect'] == 1) { $auto_connect = true; } else { $auto_connect = false; } $project_task = new ProjectTask(null); if ($project_task->create_status_process($project_id, $user->get_user_id(), $_POST['comment'], $_POST['startdate'], null, $_POST['enddate'], $time, $whole_day, $_POST['status'], $finalise, $auto_connect)) { Common_IO::step_proceed($params, "Add Project Task", "Operation Successful", null); } else { Common_IO::step_proceed($params, "Add Project Task", "Operation Failed", null); } } break; case 2: if ($_GET['nextpage'] == "2") { $page_2_passed = true; if (!is_numeric($_POST['time1']) or $_POST['time1'] > 24 or !is_numeric($_POST['time2']) or $_POST['time2'] > 59) { if ($_POST['wholeday'] != 1) { $error[3] = "<br />Enter a time or select \"whole day\"!"; $page_2_passed = false; } } if (!$_POST['name']) { $error[0] = "<br />Enter a name"; $page_2_passed = false; } if (!$_POST['startdate']) { $error[1] = "<br />Select a start date"; $page_2_passed = false; } else { $datetime_handler = new DatetimeHandler($_POST['date']); if ($datetime_handler->less_then_current()) { $error[1] = "<br />Select a date in the future"; $page_2_passed = false; } } if (!$_POST['enddate']) { $error[2] = "<br />Select an end date"; $page_2_passed = false; } else { $datetime_handler = new DatetimeHandler($_POST['date']); if ($datetime_handler->less_then_current()) { $error[2] = "<br />Select a date in the future"; $page_2_passed = false; } } } else { $page_2_passed = false; } if ($page_2_passed == false) { $template = new HTMLTemplate("project/tasks/add_process.html"); $paramquery = $_GET; $paramquery['nextpage'] = "2"; $params = http_build_query($paramquery, '', '&'); $template->set_var("params", $params); if ($error[0]) { $template->set_var("error0", $error[0]); } else { $template->set_var("error0", ""); } if ($error[1]) { $template->set_var("error1", $error[1]); } else { $template->set_var("error1", ""); } if ($error[2]) { $template->set_var("error2", $error[2]); } else { $template->set_var("error2", ""); } if ($error[3]) { $template->set_var("error3", $error[3]); } else { $template->set_var("error3", ""); } if ($_POST['name']) { $template->set_var("name", $_POST['name']); } else { $template->set_var("name", ""); } if ($_POST['startdate']) { $template->set_var("startdate", $_POST['startdate']); } else { $template->set_var("startdate", date("Y-m-d")); } if ($_POST['enddate']) { $template->set_var("enddate", $_POST['enddate']); } else { $template->set_var("enddate", ""); } if ($_POST['time1']) { $template->set_var("time1", $_POST['time1']); } else { $template->set_var("time1", ""); } if ($_POST['time2']) { $template->set_var("time2", $_POST['time2']); } else { $template->set_var("time2", ""); } if ($_POST['comment']) { $template->set_var("comment", $_POST['comment']); } else { $template->set_var("comment", ""); } $template->set_var("type", $_POST['type']); $template->output(); } else { $paramquery = $_GET; unset($paramquery['nextpage']); $paramquery['run'] = "detail"; $params = http_build_query($paramquery); if ($_POST['wholeday'] == 1) { $time = null; $whole_day = true; } else { $time = $_POST['time1'] . ":" . $_POST['time2'] . ":00"; $whole_day = false; } if ($_POST['finalise'] == 1) { $finalise = true; } else { $finalise = false; } if ($_POST['auto_connect'] == 1) { $auto_connect = true; } else { $auto_connect = false; } $project_task = new ProjectTask(null); if ($project_task->create_process($project_id, $user->get_user_id(), $_POST['comment'], $_POST['startdate'], null, $_POST['enddate'], $time, $whole_day, $_POST['name'], $auto_connect)) { Common_IO::step_proceed($params, "Add Project Task", "Operation Successful", null); } else { Common_IO::step_proceed($params, "Add Project Task", "Operation Failed", null); } } break; case 3: if ($_GET['nextpage'] == "2") { $page_2_passed = true; if (!$_POST['name']) { $error[0] = "<br />Enter a name"; $page_2_passed = false; } if (!$_POST['enddate']) { $error[1] = "<br />Select an end date"; $page_2_passed = false; } else { $datetime_handler = new DatetimeHandler($_POST['date']); if ($datetime_handler->less_then_current()) { $error[1] = "<br />Select a date in the future"; $page_2_passed = false; } } } else { $page_2_passed = false; } if ($page_2_passed == false) { $template = new HTMLTemplate("project/tasks/add_milestone.html"); $paramquery = $_GET; $paramquery['nextpage'] = "2"; $params = http_build_query($paramquery, '', '&'); $template->set_var("params", $params); if ($error[0]) { $template->set_var("error0", $error[0]); } else { $template->set_var("error0", ""); } if ($error[1]) { $template->set_var("error1", $error[1]); } else { $template->set_var("error1", ""); } if ($_POST['name']) { $template->set_var("name", $_POST['name']); } else { $template->set_var("name", ""); } if ($_POST['enddate']) { $template->set_var("enddate", $_POST['enddate']); } else { $template->set_var("enddate", ""); } if ($_POST['time1']) { $template->set_var("time1", $_POST['time1']); } else { $template->set_var("time1", ""); } if ($_POST['time2']) { $template->set_var("time2", $_POST['time2']); } else { $template->set_var("time2", ""); } if ($_POST['comment']) { $template->set_var("comment", $_POST['comment']); } else { $template->set_var("comment", ""); } $template->set_var("type", $_POST['type']); $template->output(); } else { $paramquery = $_GET; unset($paramquery['nextpage']); $paramquery['run'] = "detail"; $params = http_build_query($paramquery); if (is_numeric($_POST['time1']) and is_numeric($_POST['time2'])) { $time = $_POST['time1'] . ":" . $_POST['time2'] . ":00"; } else { $time = null; } if ($_POST['auto_connect'] == 1) { $auto_connect = true; } else { $auto_connect = false; } $project_task = new ProjectTask(null); if ($project_task->create_milestone($project_id, $user->get_user_id(), $_POST['comment'], $_POST['enddate'], $time, $_POST['name'], $auto_connect)) { Common_IO::step_proceed($params, "Add Project Task", "Operation Successful", null); } else { Common_IO::step_proceed($params, "Add Project Task", "Operation Failed", null); } } break; } } } else { throw new ProjectSecuriyAccessDeniedException(); } } else { throw new ProjectIDMissingException(); } }