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');
 }