コード例 #1
0
    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();
                }
            }
        }
    }
}
コード例 #2
0
 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);
                 }
             }
         }
     }
 }