当前位置: 首页>>代码示例>>PHP>>正文


PHP SLA::computeDueDate方法代码示例

本文整理汇总了PHP中SLA::computeDueDate方法的典型用法代码示例。如果您正苦于以下问题:PHP SLA::computeDueDate方法的具体用法?PHP SLA::computeDueDate怎么用?PHP SLA::computeDueDate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SLA的用法示例。


在下文中一共展示了SLA::computeDueDate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getDatasToAddSLA

 /**
  * Get Datas to be added for SLA add
  *
  * @param $slas_id      SLA id
  * @param $entities_id  entity ID of the ticket
  * @param $date         begin date of the ticket
  *
  * @return array of datas to add in ticket
  **/
 function getDatasToAddSLA($slas_id, $entities_id, $date)
 {
     $calendars_id = Entity::getUsedConfig('calendars_id', $entities_id);
     $data = array();
     $sla = new SLA();
     if ($sla->getFromDB($slas_id)) {
         $sla->setTicketCalendar($calendars_id);
         // Get first SLA Level
         $data["slalevels_id"] = SlaLevel::getFirstSlaLevel($slas_id);
         // Compute due_date
         $data['due_date'] = $sla->computeDueDate($date);
         $data['sla_waiting_duration'] = 0;
     } else {
         $data["slalevels_id"] = 0;
         $data["slas_id"] = 0;
         $data['sla_waiting_duration'] = 0;
     }
     return $data;
 }
开发者ID:gaforeror,项目名称:glpi,代码行数:28,代码来源:ticket.class.php

示例2: unset


//.........这里部分代码省略.........
                 unset($this->updates[$key]);
                 unset($this->oldvalues['closedate']);
             }
         }
     }
     if (($key = array_search('status', $this->updates)) !== false && $this->oldvalues['status'] == $this->fields['status']) {
         unset($this->updates[$key]);
         unset($this->oldvalues['status']);
     }
     // Status solved : check dates
     if (in_array($this->fields["status"], $this->getSolvedStatusArray()) && (in_array("date", $this->updates) || in_array("solvedate", $this->updates))) {
         // Invalid dates : no change
         // solvedate must be > create date
         if ($this->fields["solvedate"] < $this->fields["date"]) {
             Session::addMessageAfterRedirect(__('Invalid dates. Update cancelled.'), false, ERROR);
             if (($key = array_search('date', $this->updates)) !== false) {
                 unset($this->updates[$key]);
                 unset($this->oldvalues['date']);
             }
             if (($key = array_search('solvedate', $this->updates)) !== false) {
                 unset($this->updates[$key]);
                 unset($this->oldvalues['solvedate']);
             }
         }
     }
     // Manage come back to waiting state
     if (!is_null($this->fields['begin_waiting_date']) && ($key = array_search('status', $this->updates)) !== false && ($this->oldvalues['status'] == self::WAITING || in_array($this->oldvalues["status"], $this->getSolvedStatusArray()) && !in_array($this->fields["status"], $this->getClosedStatusArray()))) {
         // Compute ticket waiting time use calendar if exists
         $calendars_id = Entity::getUsedConfig('calendars_id', $this->fields['entities_id']);
         $calendar = new Calendar();
         $delay_time = 0;
         // Compute ticket waiting time use calendar if exists
         // Using calendar
         if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) {
             $delay_time = $calendar->getActiveTimeBetween($this->fields['begin_waiting_date'], $_SESSION["glpi_currenttime"]);
         } else {
             // Not calendar defined
             $delay_time = strtotime($_SESSION["glpi_currenttime"]) - strtotime($this->fields['begin_waiting_date']);
         }
         // SLA case : compute sla duration
         if (isset($this->fields['slas_id']) && $this->fields['slas_id'] > 0) {
             $sla = new SLA();
             if ($sla->getFromDB($this->fields['slas_id'])) {
                 $sla->setTicketCalendar($calendars_id);
                 $delay_time_sla = $sla->getActiveTimeBetween($this->fields['begin_waiting_date'], $_SESSION["glpi_currenttime"]);
                 $this->updates[] = "sla_waiting_duration";
                 $this->fields["sla_waiting_duration"] += $delay_time_sla;
             }
             // Compute new due date
             $this->updates[] = "due_date";
             $this->fields['due_date'] = $sla->computeDueDate($this->fields['date'], $this->fields["sla_waiting_duration"]);
             // Add current level to do
             $sla->addLevelToDo($this);
         } else {
             // Using calendar
             if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) {
                 if ($this->fields['due_date'] > 0) {
                     // compute new due date using calendar
                     $this->updates[] = "due_date";
                     $this->fields['due_date'] = $calendar->computeEndDate($this->fields['due_date'], $delay_time);
                 }
             } else {
                 // Not calendar defined
                 if ($this->fields['due_date'] > 0) {
                     // compute new due date : no calendar so add computed delay_time
                     $this->updates[] = "due_date";
                     $this->fields['due_date'] = date('Y-m-d H:i:s', $delay_time + strtotime($this->fields['due_date']));
                 }
             }
         }
         $this->updates[] = "waiting_duration";
         $this->fields["waiting_duration"] += $delay_time;
         // Reset begin_waiting_date
         $this->updates[] = "begin_waiting_date";
         $this->fields["begin_waiting_date"] = 'NULL';
     }
     // Set begin waiting date if needed
     if (($key = array_search('status', $this->updates)) !== false && ($this->fields['status'] == self::WAITING || in_array($this->fields["status"], $this->getSolvedStatusArray()))) {
         $this->updates[] = "begin_waiting_date";
         $this->fields["begin_waiting_date"] = $_SESSION["glpi_currenttime"];
         // Specific for tickets
         if (isset($this->fields['slas_id']) && $this->fields['slas_id'] > 0) {
             SLA::deleteLevelsToDo($this);
         }
     }
     // solve_delay_stat : use delay between opendate and solvedate
     if (in_array("solvedate", $this->updates)) {
         $this->updates[] = "solve_delay_stat";
         $this->fields['solve_delay_stat'] = $this->computeSolveDelayStat();
     }
     // close_delay_stat : use delay between opendate and closedate
     if (in_array("closedate", $this->updates)) {
         $this->updates[] = "close_delay_stat";
         $this->fields['close_delay_stat'] = $this->computeCloseDelayStat();
     }
     // Do not take into account date_mod if no update is done
     if (count($this->updates) == 1 && ($key = array_search('date_mod', $this->updates)) !== false) {
         unset($this->updates[$key]);
     }
 }
开发者ID:paisdelconocimiento,项目名称:glpi-smartcities,代码行数:101,代码来源:commonitilobject.class.php

示例3: prepareInputForAdd


//.........这里部分代码省略.........
                 }
                 if (!$input['_groups_id_assign'] && $cat->isField('groups_id')) {
                     $input['_groups_id_assign'] = $cat->getField('groups_id');
                 }
             }
             // Auto assign tech from item
             if ($input["_users_id_assign"] == 0 && $item != NULL) {
                 if ($item->isField('users_id_tech')) {
                     $input["_users_id_assign"] = $item->getField('users_id_tech');
                     if ($input["_users_id_assign"] > 0) {
                         $input["status"] = "assign";
                     }
                 }
             }
             break;
     }
     // Process Business Rules
     $rules = new RuleTicketCollection($input['entities_id']);
     // Set unset variables with are needed
     $user = new User();
     if (isset($input["_users_id_requester"]) && $user->getFromDB($input["_users_id_requester"])) {
         $input['users_locations'] = $user->fields['locations_id'];
     }
     $input = $rules->processAllRules($input, $input, array('recursive' => true));
     //       if (isset($input["use_email_notification"])
     //           && $input["use_email_notification"]
     //           && empty($input["user_email"])) {
     //
     //          if ($user->getFromDB($input["users_id"])) {
     //             $input["user_email"] = $user->fields["email"];
     //          }
     //       }
     if ((isset($input["_users_id_assign"]) && $input["_users_id_assign"] > 0 || isset($input["_groups_id_assign"]) && $input["_groups_id_assign"] > 0 || isset($input["suppliers_id_assign"]) && $input["suppliers_id_assign"] > 0) && $input["status"] == "new") {
         $input["status"] = "assign";
     }
     if (isset($input["hour"]) && isset($input["minute"])) {
         $input["actiontime"] = $input["hour"] * HOUR_TIMESTAMP + $input["minute"] * MINUTE_TIMESTAMP;
         $input["_hour"] = $input["hour"];
         $input["_minute"] = $input["minute"];
         unset($input["hour"]);
         unset($input["minute"]);
     }
     if (isset($input["status"]) && $input["status"] == "solved") {
         if (isset($input["date"])) {
             $input["solvedate"] = $input["date"];
         } else {
             $input["solvedate"] = $_SESSION["glpi_currenttime"];
         }
     }
     if (isset($input["status"]) && $input["status"] == "closed") {
         if (isset($input["date"])) {
             $input["closedate"] = $input["date"];
         } else {
             $input["closedate"] = $_SESSION["glpi_currenttime"];
         }
         $input['solvedate'] = $input["closedate"];
     }
     // Set begin waiting time if status is waiting
     if (isset($input["status"]) && $input["status"] == "waiting") {
         $input['begin_waiting_date'] = $input['date'];
     }
     // No name set name
     if (empty($input["name"])) {
         $input["name"] = preg_replace('/\\r\\n/', ' ', $input['content']);
         $input["name"] = preg_replace('/\\n/', ' ', $input['name']);
         $input["name"] = utf8_substr($input['name'], 0, 70);
     }
     //// Manage SLA assignment
     // due date defined : no SLA
     if (isset($input["due_date"]) && $input['due_date'] != 'NULL') {
         // Valid due date
         if ($input['due_date'] > $input['date']) {
             if (isset($input["slas_id"])) {
                 unset($input["slas_id"]);
             }
         } else {
             // Unset due date
             unset($input["due_date"]);
         }
     }
     if (isset($input["slas_id"]) && $input["slas_id"] > 0) {
         $sla = new SLA();
         if ($sla->getFromDB($input["slas_id"])) {
             // Get first SLA Level
             $input["slalevels_id"] = SlaLevel::getFirstSlaLevel($input["slas_id"]);
             // Compute due_date
             $input['due_date'] = $sla->computeDueDate($input['date']);
             $input['sla_waiting_duration'] = 0;
         } else {
             $input["slalevels_id"] = 0;
             $input["slas_id"] = 0;
             $input['sla_waiting_duration'] = 0;
         }
     }
     // auto set type if not set
     if (!isset($input["type"])) {
         $input['type'] = EntityData::getUsedConfig('tickettype', $input['entities_id']);
     }
     return $input;
 }
开发者ID:ryukansent,项目名称:Thesis-SideB,代码行数:101,代码来源:ticket.class.php


注:本文中的SLA::computeDueDate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。