/**
  * @param string $json_column_array
  * @param string $json_argument_array
  * @param string $css_page_id
  * @param string $css_row_sort_id
  * @param string $entries_per_page
  * @param string $page
  * @param string $sortvalue
  * @param string $sortmethod
  * @return string
  * @throws ProjectIDMissingException
  */
 public static function list_project_tasks($json_column_array, $json_argument_array, $css_page_id, $css_row_sort_id, $entries_per_page, $page, $sortvalue, $sortmethod)
 {
     $argument_array = json_decode($json_argument_array);
     $project_id = $argument_array[1];
     if (is_numeric($project_id)) {
         $list_request = new ListRequest_IO();
         $list_request->set_column_array($json_column_array);
         if (!is_numeric($entries_per_page) or $entries_per_page < 1) {
             $entries_per_page = 20;
         }
         $list_array = Project_Wrapper::list_project_tasks($project_id, $sortvalue, $sortmethod, $page * $entries_per_page - $entries_per_page, $page * $entries_per_page);
         if (is_array($list_array) and count($list_array) >= 1) {
             foreach ($list_array as $key => $value) {
                 $start_date = new DatetimeHandler($list_array[$key]['start_date']);
                 $end_date = new DatetimeHandler($list_array[$key]['end_date'] . " " . $list_array[$key]['end_time']);
                 $list_array[$key]['start_date'] = $start_date->get_date();
                 $list_array[$key]['end_date'] = $end_date->get_date();
                 $list_array[$key]['end_time'] = $end_date->get_time();
                 if ($list_array[$key]['whole_day'] == "t") {
                     $list_array[$key]['end_time'] = "whole day";
                 }
                 if ($list_array[$key]['is_status_process'] or $list_array[$key]['is_process']) {
                     $project_task = new ProjectTask($list_array[$key]['id']);
                 }
                 if ($list_array[$key]['is_status_process']) {
                     $list_array[$key]['type'] = "Status Rel. Task";
                     $list_array[$key]['name'] = $project_task->get_name();
                 }
                 if ($list_array[$key]['is_process']) {
                     $list_array[$key]['type'] = "Task";
                 }
                 if ($list_array[$key]['is_milestone']) {
                     $list_array[$key]['type'] = "Milestone";
                 } else {
                     $list_array[$key]['progress'] = "<img src='core/images/status_bar.php?length=100&height=15&linecolor=A0A0A0&color=" . $project_task->get_color() . "&value=" . $project_task->get_progress() . "' />";
                 }
                 $paramquery = array();
                 $paramquery['session_id'] = $_GET['session_id'];
                 $paramquery['username'] = $_GET['username'];
                 $paramquery['nav'] = "project";
                 $paramquery['run'] = "task_detail";
                 $paramquery['id'] = $list_array[$key]['id'];
                 $params = http_build_query($paramquery, '', '&#38;');
                 $tmp_name = $list_array[$key]['name'];
                 unset($list_array[$key]['name']);
                 $list_array[$key]['name']['content'] = $tmp_name;
                 $list_array[$key]['name']['link'] = $params;
             }
         } else {
             $list_request->empty_message("<span class='italic'>No Project tasks found!</span>");
         }
         $list_request->set_array($list_array);
         return $list_request->get_page($page);
     } 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;
 }
Exemple #3
0
 /**
  * @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, '', '&#38;');
                     $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, '', '&#38;');
             $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, '', '&#38;');
             $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, '', '&#38;');
             $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();
     }
 }