if (isset($_POST["reconstructStates"])) { ini_set("max_execution_time", "0"); ini_set("memory_limit", "-1"); $ptState = new PluginTimelineticketState(); $ptState->reconstructTimeline(); Html::back(); } else { if (isset($_POST["reconstructGroups"])) { ini_set("max_execution_time", "0"); ini_set("memory_limit", "-1"); $ptGroup = new PluginTimelineticketAssignGroup(); $ptGroup->reconstrucTimeline(); Html::back(); } else { if (isset($_POST["add_groups"]) || isset($_POST["delete_groups"])) { $grplevel->update($_POST); Html::back(); } else { if (isset($_POST["update"])) { $ptConfig->update($_POST); Html::back(); } else { $ptConfig->showReconstructForm(); $ptConfig->getFromDB(1); $ptConfig->showForm(); Html::footer(); } } } } }
static function checkAssignGroup(Ticket $ticket) { global $DB; $ok = 0; $ptConfig = new PluginTimelineticketConfig(); $ptConfig->getFromDB(1); if ($ptConfig->fields["add_waiting"] == 0) { $ok = 1; } if ($ok && in_array("status", $ticket->updates) && isset($ticket->oldvalues["status"]) && $ticket->oldvalues["status"] == Ticket::WAITING) { if ($ticket->countGroups(CommonITILActor::ASSIGN)) { foreach ($ticket->getGroups(CommonITILActor::ASSIGN) as $d) { $ptAssignGroup = new PluginTimelineticketAssignGroup(); $calendar = new Calendar(); $calendars_id = Entity::getUsedConfig('calendars_id', $ticket->fields['entities_id']); $datedebut = $ticket->fields['date']; if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) { $delay = $calendar->getActiveTimeBetween($datedebut, $_SESSION["glpi_currenttime"]); } else { // cas 24/24 - 7/7 $delay = strtotime($_SESSION["glpi_currenttime"]) - strtotime($datedebut); } $input = array(); $input['tickets_id'] = $ticket->getID(); $input['groups_id'] = $d["groups_id"]; $input['date'] = $_SESSION["glpi_currenttime"]; $input['begin'] = $delay; $ptAssignGroup->add($input); } } } else { if ($ok && in_array("status", $ticket->updates) && isset($ticket->fields["status"]) && $ticket->fields["status"] == Ticket::WAITING) { if ($ticket->countGroups(CommonITILActor::ASSIGN)) { foreach ($ticket->getGroups(CommonITILActor::ASSIGN) as $d) { $calendar = new Calendar(); $calendars_id = Entity::getUsedConfig('calendars_id', $ticket->fields['entities_id']); $ptAssignGroup = new PluginTimelineticketAssignGroup(); $query = "SELECT MAX(`date`) AS datedebut, id\n FROM `" . $ptAssignGroup->getTable() . "`\n WHERE `tickets_id` = '" . $ticket->getID() . "'\n AND `groups_id`='" . $d["groups_id"] . "'\n AND `delay` IS NULL"; $result = $DB->query($query); $datedebut = ''; $input = array(); if ($result && $DB->numrows($result)) { $datedebut = $DB->result($result, 0, 'datedebut'); $input['id'] = $DB->result($result, 0, 'id'); } else { return; } if (!$datedebut) { $delay = 0; // Utilisation calendrier } else { if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) { $delay = $calendar->getActiveTimeBetween($datedebut, $_SESSION["glpi_currenttime"]); } else { // cas 24/24 - 7/7 $delay = strtotime($_SESSION["glpi_currenttime"]) - strtotime($datedebut); } } $input['delay'] = $delay; $ptAssignGroup->update($input); } } } } }