Пример #1
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, '', '&');
                     $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();
     }
 }
Пример #2
0
 /**
  * @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;
 }
Пример #3
0
 /**
  * @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;
     }
 }