/** * @throws ProjectIDMissingException * @throws ProjectSecuriyAccessDeniedException */ public static function calendar_view() { global $project_security; if ($_GET['project_id']) { if ($project_security->is_access(1, false) == true) { $project_task_array = ProjectTask::list_tasks($_GET['project_id']); $calendar_array = array(); $counter = 0; if (is_array($project_task_array) and count($project_task_array) >= 1) { foreach ($project_task_array as $key => $value) { $project_task = new ProjectTask($value); if ($project_task->get_start_time()) { $start_time = $project_task->get_start_time(); } else { $start_time = "00:00:00"; } if ($project_task->get_uf_end_time() > 0) { $end_time = $project_task->get_end_time(); } else { $end_time = "23:59:59"; } $paramquery = $_GET; $paramquery['run'] = "task_detail"; $paramquery['id'] = $value; $params = http_build_query($paramquery, '', '&'); $calendar_array[$counter]['name'] = $project_task->get_name(); $calendar_array[$counter]['start_date'] = $project_task->get_start_date(); $calendar_array[$counter]['start_time'] = $start_time; $calendar_array[$counter]['end_date'] = $project_task->get_end_date(); $calendar_array[$counter]['end_time'] = $end_time; $calendar_array[$counter]['color'] = "4284d3"; $calendar_array[$counter]['link'] = $params; $calendar_array[$counter]['id'] = $value; $calendar_array[$counter]['serial_id'] = 0; $counter++; } } $template = new HTMLTemplate("project/tasks/calendar_view.html"); $table_view_paramquery = $_GET; $table_view_paramquery['show'] = "table"; $table_view_params = http_build_query($table_view_paramquery, '', '&'); $template->set_var("table_view_params", $table_view_params); $gantt_view_paramquery = $_GET; $gantt_view_paramquery['show'] = "gantt"; $gantt_view_params = http_build_query($gantt_view_paramquery, '', '&'); $template->set_var("gantt_view_params", $gantt_view_params); $cal_view_paramquery = $_GET; $cal_view_paramquery['show'] = "cal"; $cal_view_params = http_build_query($cal_view_paramquery, '', '&'); $template->set_var("cal_view_params", $cal_view_params); require_once "core/modules/organiser/io/organiser_library.io.php"; $organiser_library_io = new OrganiserLibraryIO(31); $organiser_library_io->set_calendar_array($calendar_array); $template->set_var("content", $organiser_library_io->get_content()); $template->output(); } else { throw new ProjectSecuriyAccessDeniedException(); } } else { throw new ProjectIDMissingException(); } }
/** * @see ProjectTaskInterface::list_upcoming_tasks() * @return array * @todo tasks ending today * @todo tasks ending this week * @todo tasks ending next 30 days */ public static function list_upcoming_tasks() { global $user; $upcoming_task_array = array(); $over_time_task_array = Project_Wrapper_Access::list_not_finished_over_time_project_tasks_by_user_id($user->get_user_id(), date("Y-m-d H:i:s")); if (is_array($over_time_task_array) and count($over_time_task_array) >= 1) { foreach ($over_time_task_array as $key => $value) { $project_task = new ProjectTask($value); $project = new Project($project_task->get_project_id()); if ($project_task->get_uf_end_time() == -1) { $end_task_datetime = new DatetimeHandler($project_task->get_end_date() . " 23:59:59"); } else { $end_task_datetime = new DatetimeHandler($project_task->get_end_date() . " " . $project_task->get_uf_end_time()); } if ($project_task->get_over_time() == true) { $temp_array = array(); $temp_array['project_id'] = $project_task->get_project_id(); $temp_array['project_name'] = $project->get_name(); $temp_array['task_name'] = $project_task->get_name(); $temp_array['end_date'] = $end_task_datetime->get_formatted_string("d/m/Y"); $temp_array['status'] = 1; array_push($upcoming_task_array, $temp_array); unset($temp_array); } else { if ($project_task->get_progress() < 100) { $temp_array = array(); $temp_array['project_id'] = $project_task->get_project_id(); $temp_array['project_name'] = $project->get_name(); $temp_array['task_name'] = $project_task->get_name(); $temp_array['end_date'] = $end_task_datetime->get_formatted_string("d/m/Y"); $temp_array['status'] = 1; array_push($upcoming_task_array, $temp_array); unset($temp_array); $project_task->set_over_time(true); } else { $project_task->set_finished(true); } } } } return $upcoming_task_array; }
/** * @see ProjectTaskPointInterface::get_task_achieved_points() * @param integer $task_id * @return integer */ public function get_task_achieved_points($task_id) { if ($this->project_id and $this->project and is_numeric($task_id)) { $project_task = new ProjectTask($task_id); if ($project_task->get_uf_end_time() == -1) { $project_task_end_datetime_handler = new DatetimeHandler($project_task->get_end_date() . " 23:59:59"); } else { $project_task_end_datetime_handler = new DatetimeHandler($project_task->get_end_date() . " " . $project_task->get_end_time()); } if ($project_task->get_type() == 1) { $project_status_array = $this->project_status_array; $begin_status_id = $project_task->get_begin_status_id(); $end_status_id = $project_task->get_end_status_id(); if (is_array($project_status_array) and count($project_status_array) >= 1) { $use_status = false; $points = 0; foreach ($project_status_array as $key => $value) { if ($value['id'] == $begin_status_id) { $use_status = true; } if ($use_status == true) { if ($value['id'] == $end_status_id) { if ($project_task->get_finalise() == true) { $points = $points + $this->get_status_achieved_points($value['id'], $project_task_end_datetime_handler); } } else { $points = $points + $this->get_status_achieved_points($value['id'], $project_task_end_datetime_handler); } } if ($value['id'] == $end_status_id) { $use_status = false; } } $points = $points - $project_task->get_subtraction_points(); return $points; } else { return null; } } else { return null; } } else { return null; } }