static function getTotaltimeEnddate(CommonGLPI $ticket) { $totaltime = 0; $ptState = new PluginTimelineticketState(); $a_states = $ptState->find("`tickets_id`='" . $ticket->getField('id') . "'", "date"); $last_date = ''; foreach ($a_states as $a_state) { $totaltime += $a_state['delay']; $last_date = $a_state['date']; } if ($ticket->fields['status'] != Ticket::CLOSED && isset($a_state['date'])) { $totaltime += PluginTimelineticketDisplay::getPeriodTime($ticket, $a_state['date'], date("Y-m-d H:i:s")); } $end_date = $totaltime; return array('totaltime' => $totaltime, 'end_date' => $end_date); }
private function displayGroups($closed = true) { global $DB, $CFG_GLPI; $DB->connect(); $CFG_GLPI['root_doc'] = "http://127.0.0.1/fusion0.83/"; Session::loadLanguage("en_GB"); $ticket = new Ticket(); $ptAssignGroup = new PluginTimelineticketAssignGroup(); $a_storedate_temp = self::$storedate; $ticket->getFromDB(1); // $a_data = PluginTimelineticketDisplay::getTotaltimeEnddate($ticket); // ob_start(); // $a_data = $ptAssignGroup->showTimeline($ticket, $a_data); // ob_end_clean(); $a_data = PluginTimelineticketToolbox::getDetails($ticket, 'group', 0); foreach ($a_data as $num => $data) { foreach ($data as $num2 => $data2) { unset($data2['Caption']); unset($data2['R']); unset($data2['G']); unset($data2['B']); $a_data[$num][$num2] = $data2; } } $ticket_date = $ticket->fields['date']; $a_ref = array(); $a_ref[1] = array(array('Start' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[3]), 'End' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[5]), 'Status' => Ticket::ASSIGNED), array('Start' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[5]), 'End' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[7]), 'Status' => Ticket::WAITING), array('Start' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[13]), 'End' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[16]), 'Status' => Ticket::WAITING), array('Start' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[16]), 'End' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[18]), 'Status' => Ticket::ASSIGNED)); if ($closed) { $a_ref[1][] = array('Start' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[18]), 'End' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[20]), 'Status' => Ticket::SOLVED); } $a_ref[2] = array(array('Start' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[9]), 'End' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[11]), 'Status' => Ticket::ASSIGNED), array('Start' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[11]), 'End' => PluginTimelineticketDisplay::getPeriodTime($ticket, $ticket_date, $a_storedate_temp[13]), 'Status' => Ticket::WAITING)); $this->assertEquals($a_ref, $a_data, 'Data used to display groups in graph'); }