SLT::computeDate PHP Method

computeDate() public method

Get date based on a slt
public computeDate ( $start_date, $additional_delay ) : due
$start_date datetime start date
$additional_delay integer additional delay to add or substract (for waiting time) (default 0)
return due date time (NULL if sla not exists)
    function computeDate($start_date, $additional_delay = 0)
    {
        if (isset($this->fields['id'])) {
            $delay = $this->getSLTTime();
            // Based on a calendar
            if ($this->fields['calendars_id'] > 0) {
                $cal = new Calendar();
                $work_in_days = $this->fields['definition_time'] == 'day';
                if ($cal->getFromDB($this->fields['calendars_id'])) {
                    return $cal->computeEndDate($start_date, $delay, $additional_delay, $work_in_days, $this->fields['end_of_working_day']);
                }
            }
            // No calendar defined or invalid calendar
            if ($this->fields['number_time'] >= 0) {
                $starttime = strtotime($start_date);
                $endtime = $starttime + $delay + $additional_delay;
                return date('Y-m-d H:i:s', $endtime);
            }
        }
        return NULL;
    }

Usage Example

Esempio n. 1
0
 /**
  * Get Datas to be added for SLT add
  *
  * @param $slts_id      SLT id
  * @param $entities_id  entity ID of the ticket
  * @param $date         begin date of the ticket
  * @param $type         type of SLT
  *
  * @since version 9.1 (before getDatasToAddSla without type parameter)
  *
  * @return array of datas to add in ticket
  **/
 function getDatasToAddSLT($slts_id, $entities_id, $date, $type)
 {
     list($dateField, $sltField) = SLT::getSltFieldNames($type);
     $calendars_id = Entity::getUsedConfig('calendars_id', $entities_id);
     $data = array();
     $slt = new SLT();
     if ($slt->getFromDB($slts_id)) {
         $slt->setTicketCalendar($calendars_id);
         if ($slt->fields['type'] == SLT::TTR) {
             $data["ttr_slalevels_id"] = SlaLevel::getFirstSltLevel($slts_id);
         }
         // Compute due_date
         $data[$dateField] = $slt->computeDate($date);
         $data['sla_waiting_duration'] = 0;
     } else {
         $data["ttr_slalevels_id"] = 0;
         $data[$sltField] = 0;
         $data['sla_waiting_duration'] = 0;
     }
     return $data;
 }
All Usage Examples Of SLT::computeDate