コード例 #1
0
 public function update_outage($outage_SN, $remark, $start_time, $end_time = NULL)
 {
     //過濾參數
     $start_time = date("Y-m-d H:i:s", strtotime($start_time));
     $end_time = trim($end_time);
     $end_time = empty($end_time) ? NULL : date("Y-m-d H:i:s", strtotime($end_time));
     //檢查outage存不存在
     $outage = $this->facility_model->get_outage_list(array("outage_SN" => $outage_SN))->row_array();
     if (!$outage) {
         throw new Exception("無此停機記錄", ERROR_CODE);
     }
     //檢查時間順序
     if (!empty($end_time)) {
         if ($start_time >= $end_time) {
             throw new Exception("起始時間需小於結束時間", WARNING_CODE);
         }
     }
     //檢查有沒有重複時間
     $outages = $this->facility_model->get_outage_list(array("outage_start_time" => $start_time, "outage_end_time" => $end_time, "facility_SN" => $outage['facility_SN']))->result_array();
     foreach ($outages as $o) {
         if ($o['outage_SN'] != $outage['outage_SN']) {
             throw new Exception("停機時段已存在,不可重複", ERROR_CODE);
         }
     }
     $facility = $this->facility_model->get_facility_list(array("ID" => $outage['facility_SN']))->row_array();
     //檢查時間有無整點
     if (!is_int_multiple_unit_time(array(strtotime($start_time), strtotime($end_time)), $facility['unit_sec'])) {
         throw new Exception("請輸入單位倍數的時間", WARNING_CODE);
     }
     //更新
     $this->facility_model->update_outage(array("outage_SN" => $outage['outage_SN'], "outage_remark" => $remark, "outage_start_time" => $start_time, "outage_end_time" => $end_time));
     //更新使用者權限
     if ($outage['outage_start_time'] != $start_time || $outage['outage_end_time'] != $end_time) {
         $this->load->model('facility/user_privilege_model');
         $this->user_privilege_model->update(NULL, $outage['facility_SN']);
     }
 }
コード例 #2
0
 public function get_time_by_checkbox($input_array_time, $f_IDs)
 {
     $facilities_ID = $this->facility_model->get_vertical_group_facilities($f_IDs, array("facility_only" => TRUE));
     $facilities = $this->facility_model->get_facility_list(array("ID" => $facilities_ID))->result_array();
     if (!$facilities) {
         throw new Exception("無此儀器!", ERROR_CODE);
     }
     $unit_sec = max(sql_result_to_column($facilities, "unit_sec"));
     $min_time = min($input_array_time);
     $max_time = max($input_array_time) + $unit_sec;
     //確認選擇了連續時段
     for ($i = $min_time; $i < $max_time; $i += $unit_sec) {
         if (!in_array($i, $input_array_time)) {
             throw new Exception("請選擇連續時段。", WARNING_CODE);
         }
     }
     //確認選擇了整點時段
     if (!is_int_multiple_unit_time($min_time, $unit_sec) || !is_int_multiple_unit_time($max_time, $unit_sec)) {
         throw new Exception("非整點時段!", ERROR_CODE);
     }
     return array($min_time, $max_time);
 }