예제 #1
0
 /**
  * @see ServiceInterface::is_responding()
  * @return boolean
  */
 public function is_responding()
 {
     if ($this->service and $this->service_id) {
         $last_lifesign = $this->service->get_last_lifesign();
         $last_lifesign_datetime_handler = new DatetimeHandler($last_lifesign);
         $current_datetime_handler = new DatetimeHandler();
         if ($last_lifesign_datetime_handler->distance($current_datetime_handler) >= 600) {
             return false;
         } else {
             return true;
         }
     } else {
         return false;
     }
 }
예제 #2
0
 /**
  * @see ProjectTaskPointInterface::get_status_achieved_points()
  * @param integer $status_id
  * @param string $datetime
  * @return integer
  */
 public function get_status_achieved_points($status_id, $datetime)
 {
     if ($this->project_id and $this->project and is_numeric($status_id)) {
         $project_status_array = $this->project_status_array;
         if (is_array($project_status_array) and count($project_status_array) >= 1) {
             $array_key = -1;
             $status = 0;
             foreach ($project_status_array as $key => $value) {
                 if ($value['id'] == $status_id) {
                     $array_key = $key;
                     $status = $value['status'];
                     $status_datetime = $value['datetime'];
                 }
             }
             if ($array_key >= 0) {
                 if ($status == 2) {
                     if (is_object($datetime)) {
                         $status_datetime_handler = new DatetimeHandler($status_datetime);
                         if ($status_datetime_handler->distance($datetime) < 0) {
                             return 0;
                         } else {
                             return $this->get_status_max_points($status_id) + 1;
                         }
                     } else {
                         return $this->get_status_max_points($status_id) + 1;
                     }
                 } elseif ($status == 1) {
                     return $this->get_current_achieved_points($datetime);
                 } else {
                     return 0;
                 }
             } else {
                 return null;
             }
         } else {
             return null;
         }
     } else {
         return null;
     }
 }
예제 #3
0
 /**
  * @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 ItemIDMissingException
  */
 public static function list_samples_by_item_id($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);
     $item_id = $argument_array[0][1];
     if (is_numeric($item_id)) {
         $list_request = new ListRequest_IO();
         if (!is_numeric($entries_per_page) or $entries_per_page < 1) {
             $entries_per_page = 20;
         }
         if ($argument_array[2][1] == true) {
             $list_array = Sample_Wrapper::list_samples_by_item_id($item_id, $sortvalue, $sortmethod, $page * $entries_per_page - $entries_per_page, $page * $entries_per_page);
         } else {
             $list_array = Sample_Wrapper::list_samples_by_item_id($item_id, $sortvalue, $sortmethod, 0, null);
         }
         $list_request->set_column_array($json_column_array);
         if (is_array($list_array) and count($list_array) >= 1) {
             $today_begin = new DatetimeHandler(date("Y-m-d") . " 00:00:00");
             $today_end = new DatetimeHandler(date("Y-m-d") . " 23:59:59");
             foreach ($list_array as $key => $value) {
                 $tmp_name = trim($list_array[$key]['name']);
                 unset($list_array[$key]['name']);
                 $list_array[$key]['name']['label'] = $tmp_name;
                 $list_array[$key]['name']['content'] = $tmp_name;
                 $tmp_template = trim($list_array[$key]['template']);
                 unset($list_array[$key]['template']);
                 $list_array[$key]['template']['label'] = $tmp_template;
                 $list_array[$key]['template']['content'] = $tmp_template;
                 if ($argument_array[1][1] == true) {
                     $column_array = json_decode($json_column_array);
                     if (is_array($column_array) and count($column_array) >= 1) {
                         foreach ($column_array as $row_key => $row_value) {
                             if ($row_value[1] == "checkbox") {
                                 if ($row_value[4]) {
                                     $checkbox_class = $row_value[4];
                                     break;
                                 }
                             }
                         }
                     }
                     if ($checkbox_class) {
                         $list_array[$key]['checkbox'] = "<input type='checkbox' name='parent-sample-" . $list_array[$key]['id'] . "' value='1' class='" . $checkbox_class . "' checked='checked' />";
                     } else {
                         $list_array[$key]['checkbox'] = "<input type='checkbox' name='parent-sample-" . $list_array[$key]['id'] . "' value='1' checked='checked' />";
                     }
                     $list_array[$key]['symbol'] = "<img src='images/icons/sample.png' alt='' style='border:0;' />";
                     $list_array[$key]['sid'] = "S" . str_pad($list_array[$key]['id'], 8, '0', STR_PAD_LEFT);
                 } else {
                     if ($list_array[$key]['av'] == "f") {
                         $list_array[$key]['av'] = "<img src='images/icons/grey_point.png' alt='' />";
                     } else {
                         if ($list_array[$key]['date_of_expiry'] and $list_array[$key]['expiry_warning']) {
                             $date_of_expiry = new DatetimeHandler($list_array[$key]['date_of_expiry'] . " 23:59:59");
                             $warning_day = clone $date_of_expiry;
                             $warning_day->sub_day($list_array[$key]['expiry_warning']);
                             if ($date_of_expiry->distance($today_end) > 0) {
                                 $list_array[$key]['av'] = "<img src='images/icons/red_point.png' alt='' />";
                             } else {
                                 if ($warning_day->distance($today_end) > 0) {
                                     $list_array[$key]['av'] = "<img src='images/icons/yellow_point.png' alt='' />";
                                 } else {
                                     $list_array[$key]['av'] = "<img src='images/icons/green_point.png' alt='' />";
                                 }
                             }
                         } else {
                             $list_array[$key]['av'] = "<img src='images/icons/green_point.png' alt='' />";
                         }
                     }
                     $sample_id = $list_array[$key]['id'];
                     $sample_security = new SampleSecurity($sample_id);
                     if ($sample_security->is_access(1, false)) {
                         $paramquery = array();
                         $paramquery['username'] = $_GET['username'];
                         $paramquery['session_id'] = $_GET['session_id'];
                         $paramquery['nav'] = "sample";
                         $paramquery['run'] = "detail";
                         $paramquery['sample_id'] = $sample_id;
                         $params = http_build_query($paramquery, '', '&#38;');
                         $list_array[$key]['symbol']['link'] = $params;
                         $list_array[$key]['symbol']['content'] = "<img src='images/icons/sample.png' alt='' style='border:0;' />";
                         unset($list_array[$key]['id']);
                         $list_array[$key]['sid']['link'] = $params;
                         $list_array[$key]['sid']['content'] = "S" . str_pad($sample_id, 8, '0', STR_PAD_LEFT);
                         $list_array[$key]['name']['link'] = $params;
                     } else {
                         $list_array[$key]['symbol'] = "<img src='core/images/denied_overlay.php?image=images/icons/sample.png' alt='N' border='0' />";
                         $list_array[$key]['sid'] = "S" . str_pad($sample_id, 8, '0', STR_PAD_LEFT);
                     }
                 }
                 $datetime_handler = new DatetimeHandler($list_array[$key]['datetime']);
                 $list_array[$key]['datetime'] = $datetime_handler->get_date();
                 if ($list_array[$key]['owner']) {
                     $user = new User($list_array[$key]['owner']);
                 } else {
                     $user = new User(1);
                 }
                 $list_array[$key]['owner'] = $user->get_full_name(true);
             }
         } else {
             $list_request->empty_message("<span class='italic'>No Samples found!</span>");
         }
         $list_request->set_array($list_array);
         return $list_request->get_page($page);
     } else {
         throw new ItemIDMissingException();
     }
 }
예제 #4
0
 /**
  * @see CronInterface::check()
  * @return bool
  */
 public static function check()
 {
     self::init();
     if (self::$last_run_datetime and is_numeric(self::$last_run_id)) {
         $last_run_datetime_handler = new DatetimeHandler(self::$last_run_datetime);
         $current_datetime_handler = new DatetimeHandler(date("Y-m-d H:i:s"));
         if ($last_run_datetime_handler->distance($current_datetime_handler) >= 3600) {
             return true;
         } else {
             return false;
         }
     }
 }
예제 #5
0
 /**
  * @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 BaseAjaxArgumentMissingException
  */
 public static function list_samples($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);
     if (is_array($argument_array)) {
         $name = $argument_array[0][1];
         $organisation_unit_array = $argument_array[1][1];
         $template_array = $argument_array[2][1];
         $in_id = $argument_array[3][1];
         $in_name = $argument_array[4][1];
         $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 = Sample_Wrapper::list_sample_search($name, $organisation_unit_array, $template_array, $in_id, $in_name, $sortvalue, $sortmethod, $page * $entries_per_page - $entries_per_page, $page * $entries_per_page);
         if (is_array($list_array) and count($list_array) >= 1) {
             $today_end = new DatetimeHandler(date("Y-m-d") . " 23:59:59");
             foreach ($list_array as $key => $value) {
                 $datetime_handler = new DatetimeHandler($list_array[$key]['datetime']);
                 $list_array[$key]['datetime'] = $datetime_handler->get_datetime(false);
                 if ($list_array[$key]['av'] == "f") {
                     $list_array[$key]['av'] = "<img src='images/icons/grey_point.png' alt='' />";
                 } else {
                     if ($list_array[$key]['date_of_expiry'] and $list_array[$key]['expiry_warning']) {
                         $date_of_expiry = new DatetimeHandler($list_array[$key]['date_of_expiry'] . " 23:59:59");
                         $warning_day = clone $date_of_expiry;
                         $warning_day->sub_day($list_array[$key]['expiry_warning']);
                         if ($date_of_expiry->distance($today_end) > 0) {
                             $list_array[$key]['av'] = "<img src='images/icons/red_point.png' alt='' />";
                         } else {
                             if ($warning_day->distance($today_end) > 0) {
                                 $list_array[$key]['av'] = "<img src='images/icons/yellow_point.png' alt='' />";
                             } else {
                                 $list_array[$key]['av'] = "<img src='images/icons/green_point.png' alt='' />";
                             }
                         }
                     } else {
                         $list_array[$key]['av'] = "<img src='images/icons/green_point.png' alt='' />";
                     }
                 }
                 $sample_id = $list_array[$key]['id'];
                 $sample_security = new SampleSecurity($sample_id);
                 if ($sample_security->is_access(1, false)) {
                     $paramquery = array();
                     $paramquery['username'] = $_GET['username'];
                     $paramquery['session_id'] = $_GET['session_id'];
                     $paramquery['nav'] = "sample";
                     $paramquery['run'] = "detail";
                     $paramquery['sample_id'] = $sample_id;
                     $params = http_build_query($paramquery, '', '&#38;');
                     $list_array[$key]['symbol']['link'] = $params;
                     $list_array[$key]['symbol']['content'] = "<img src='images/icons/sample.png' alt='' style='border:0;' />";
                     unset($list_array[$key]['id']);
                     $list_array[$key]['id']['link'] = $params;
                     $list_array[$key]['id']['content'] = "S" . str_pad($sample_id, 8, '0', STR_PAD_LEFT);
                     $sample_name = $list_array[$key]['name'];
                     unset($list_array[$key]['name']);
                     $list_array[$key]['name']['link'] = $params;
                     $list_array[$key]['name']['content'] = $sample_name;
                 } else {
                     $list_array[$key]['symbol'] = "<img src='core/images/denied_overlay.php?image=images/icons/sample.png' alt='N' border='0' />";
                     $list_array[$key]['id'] = "S" . str_pad($sample_id, 8, '0', STR_PAD_LEFT);
                 }
             }
         } else {
             $list_request->empty_message("<span class='italic'>No results found!</span>");
         }
         $list_request->set_array($list_array);
         return $list_request->get_page($page);
     } else {
         throw new BaseAjaxArgumentMissingException();
     }
 }
예제 #6
0
 /**
  * @see ProjectTaskInterface::set_end()
  * @param string $date
  * @param string $time
  * @param bool $whole_day
  * @return bool
  */
 public function set_end($date, $time, $whole_day)
 {
     global $transaction;
     if ($date and ($time or $whole_day == true)) {
         $transaction_id = $transaction->begin();
         if ($this->get_start_time() != null) {
             $current_start_datetime_handler = new DatetimeHandler($this->get_start_date() . " " . $this->get_start_time());
         } else {
             $current_start_datetime_handler = new DatetimeHandler($this->get_start_date() . " 00:00:00");
         }
         if ($time and $whole_day == false) {
             $new_end_datetime_handler = new DatetimeHandler($date . " " . $time);
         } else {
             $new_end_datetime_handler = new DatetimeHandler($date . " 23:59:59");
         }
         $new_next_task_start_datetime_handler = clone $new_end_datetime_handler;
         if ($whole_day == true) {
             $new_next_task_start_datetime_handler->add_day(1);
         } else {
             $new_next_task_start_datetime_handler->add_second(1);
         }
         if ($current_start_datetime_handler->distance($new_end_datetime_handler) > 0) {
             $next_project_task_has_previous_task_array = ProjectTaskHasPreviousTask_Access::list_tasks_by_previous_task_id($this->task_id);
             if (is_array($next_project_task_has_previous_task_array) and count($next_project_task_has_previous_task_array) >= 1) {
                 foreach ($next_project_task_has_previous_task_array as $key => $value) {
                     $project_task = new ProjectTask($value);
                     if ($project_task->get_uf_end_time() != -1) {
                         $current_next_task_end_datetime_handler = new DatetimeHandler($project_task->get_end_date() . " " . $project_task->get_uf_end_time());
                     } else {
                         $current_next_task_end_datetime_handler = new DatetimeHandler($project_task->get_end_date() . " 23:59:59");
                     }
                     if ($new_end_datetime_handler->distance($current_next_task_end_datetime_handler) <= 0) {
                         if ($transaction_id != null) {
                             $transaction->rollback($transaction_id);
                         }
                         return false;
                     }
                 }
                 foreach ($next_project_task_has_previous_task_array as $key => $value) {
                     $project_task_access = new ProjectTask_Access($value);
                     if ($project_task_access->set_start_date($new_next_task_start_datetime_handler->get_formatted_string("Y-m-d")) == false) {
                         if ($transaction_id != null) {
                             $transaction->rollback($transaction_id);
                         }
                         return false;
                     }
                     if ($whole_day == true) {
                         if ($project_task_access->set_start_time("00:00:00") == false) {
                             if ($transaction_id != null) {
                                 $transaction->rollback($transaction_id);
                             }
                             return false;
                         }
                     } else {
                         if ($project_task_access->set_start_time($new_next_task_start_datetime_handler->get_formatted_string("H:i:s")) == false) {
                             if ($transaction_id != null) {
                                 $transaction->rollback($transaction_id);
                             }
                             return false;
                         }
                     }
                 }
             }
             if ($this->task->set_end_date($date) == false) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 return false;
             }
             if ($time) {
                 if ($this->task->set_end_time($time) == false) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     return false;
                 }
             }
             if ($this->task->set_whole_day($whole_day) == false) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 return false;
             }
             if ($transaction_id != null) {
                 $transaction->commit($transaction_id);
             }
             return true;
         } else {
             if ($transaction_id != null) {
                 $transaction->rollback($transaction_id);
             }
             return false;
         }
     } else {
         return false;
     }
 }