本文整理汇总了PHP中SLA::addLevelToDo方法的典型用法代码示例。如果您正苦于以下问题:PHP SLA::addLevelToDo方法的具体用法?PHP SLA::addLevelToDo怎么用?PHP SLA::addLevelToDo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SLA
的用法示例。
在下文中一共展示了SLA::addLevelToDo方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doLevelForTicket
/**
* Do a specific SLAlevel for a ticket
*
* @param $data array data of an entry of slalevels_tickets
*
* @return nothing
**/
static function doLevelForTicket(array $data)
{
$ticket = new Ticket();
$slalevelticket = new self();
// existing ticket and not deleted
if ($ticket->getFromDB($data['tickets_id']) && !$ticket->isDeleted()) {
$slalevel = new SlaLevel();
$sla = new SLA();
// Check if sla datas are OK
if ($ticket->fields['slas_id'] > 0 && $ticket->fields['slalevels_id'] == $data['slalevels_id']) {
if ($ticket->fields['status'] == CommonITILObject::CLOSED) {
// Drop line when status is closed
$slalevelticket->delete(array('id' => $data['id']));
} else {
if ($ticket->fields['status'] != CommonITILObject::SOLVED) {
// If status = solved : keep the line in case of solution not validated
$input['id'] = $ticket->getID();
$input['_auto_update'] = true;
if ($slalevel->getRuleWithCriteriasAndActions($data['slalevels_id'], 1, 1) && $sla->getFromDB($ticket->fields['slas_id'])) {
$doit = true;
if (count($slalevel->criterias)) {
$doit = $slalevel->checkCriterias($ticket->fields);
}
// Process rules
if ($doit) {
$input = $slalevel->executeActions($input, array());
}
}
// Put next level in todo list
$next = $slalevel->getNextSlaLevel($ticket->fields['slas_id'], $ticket->fields['slalevels_id']);
$input['slalevels_id'] = $next;
$ticket->update($input);
$sla->addLevelToDo($ticket);
// Action done : drop the line
$slalevelticket->delete(array('id' => $data['id']));
}
}
} else {
// Drop line
$slalevelticket->delete(array('id' => $data['id']));
}
} else {
// Drop line
$slalevelticket->delete(array('id' => $data['id']));
}
}
示例2: unset
//.........这里部分代码省略.........
unset($this->updates[$key]);
unset($this->oldvalues['closedate']);
}
}
}
if (($key = array_search('status', $this->updates)) !== false && $this->oldvalues['status'] == $this->fields['status']) {
unset($this->updates[$key]);
unset($this->oldvalues['status']);
}
// Status solved : check dates
if (in_array($this->fields["status"], $this->getSolvedStatusArray()) && (in_array("date", $this->updates) || in_array("solvedate", $this->updates))) {
// Invalid dates : no change
// solvedate must be > create date
if ($this->fields["solvedate"] < $this->fields["date"]) {
Session::addMessageAfterRedirect(__('Invalid dates. Update cancelled.'), false, ERROR);
if (($key = array_search('date', $this->updates)) !== false) {
unset($this->updates[$key]);
unset($this->oldvalues['date']);
}
if (($key = array_search('solvedate', $this->updates)) !== false) {
unset($this->updates[$key]);
unset($this->oldvalues['solvedate']);
}
}
}
// Manage come back to waiting state
if (!is_null($this->fields['begin_waiting_date']) && ($key = array_search('status', $this->updates)) !== false && ($this->oldvalues['status'] == self::WAITING || in_array($this->oldvalues["status"], $this->getSolvedStatusArray()) && !in_array($this->fields["status"], $this->getClosedStatusArray()))) {
// Compute ticket waiting time use calendar if exists
$calendars_id = Entity::getUsedConfig('calendars_id', $this->fields['entities_id']);
$calendar = new Calendar();
$delay_time = 0;
// Compute ticket waiting time use calendar if exists
// Using calendar
if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) {
$delay_time = $calendar->getActiveTimeBetween($this->fields['begin_waiting_date'], $_SESSION["glpi_currenttime"]);
} else {
// Not calendar defined
$delay_time = strtotime($_SESSION["glpi_currenttime"]) - strtotime($this->fields['begin_waiting_date']);
}
// SLA case : compute sla duration
if (isset($this->fields['slas_id']) && $this->fields['slas_id'] > 0) {
$sla = new SLA();
if ($sla->getFromDB($this->fields['slas_id'])) {
$sla->setTicketCalendar($calendars_id);
$delay_time_sla = $sla->getActiveTimeBetween($this->fields['begin_waiting_date'], $_SESSION["glpi_currenttime"]);
$this->updates[] = "sla_waiting_duration";
$this->fields["sla_waiting_duration"] += $delay_time_sla;
}
// Compute new due date
$this->updates[] = "due_date";
$this->fields['due_date'] = $sla->computeDueDate($this->fields['date'], $this->fields["sla_waiting_duration"]);
// Add current level to do
$sla->addLevelToDo($this);
} else {
// Using calendar
if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) {
if ($this->fields['due_date'] > 0) {
// compute new due date using calendar
$this->updates[] = "due_date";
$this->fields['due_date'] = $calendar->computeEndDate($this->fields['due_date'], $delay_time);
}
} else {
// Not calendar defined
if ($this->fields['due_date'] > 0) {
// compute new due date : no calendar so add computed delay_time
$this->updates[] = "due_date";
$this->fields['due_date'] = date('Y-m-d H:i:s', $delay_time + strtotime($this->fields['due_date']));
}
}
}
$this->updates[] = "waiting_duration";
$this->fields["waiting_duration"] += $delay_time;
// Reset begin_waiting_date
$this->updates[] = "begin_waiting_date";
$this->fields["begin_waiting_date"] = 'NULL';
}
// Set begin waiting date if needed
if (($key = array_search('status', $this->updates)) !== false && ($this->fields['status'] == self::WAITING || in_array($this->fields["status"], $this->getSolvedStatusArray()))) {
$this->updates[] = "begin_waiting_date";
$this->fields["begin_waiting_date"] = $_SESSION["glpi_currenttime"];
// Specific for tickets
if (isset($this->fields['slas_id']) && $this->fields['slas_id'] > 0) {
SLA::deleteLevelsToDo($this);
}
}
// solve_delay_stat : use delay between opendate and solvedate
if (in_array("solvedate", $this->updates)) {
$this->updates[] = "solve_delay_stat";
$this->fields['solve_delay_stat'] = $this->computeSolveDelayStat();
}
// close_delay_stat : use delay between opendate and closedate
if (in_array("closedate", $this->updates)) {
$this->updates[] = "close_delay_stat";
$this->fields['close_delay_stat'] = $this->computeCloseDelayStat();
}
// Do not take into account date_mod if no update is done
if (count($this->updates) == 1 && ($key = array_search('date_mod', $this->updates)) !== false) {
unset($this->updates[$key]);
}
}
示例3: sprintf
function post_addItem()
{
global $CFG_GLPI;
// Log this event
$username = 'anonymous';
if (isset($_SESSION["glpiname"])) {
$username = $_SESSION["glpiname"];
}
Event::log($this->fields['id'], "ticket", 4, "tracking", sprintf(__('%1$s adds the item %2$s'), $username, $this->fields['id']));
if (isset($this->input["_followup"]) && is_array($this->input["_followup"]) && strlen($this->input["_followup"]['content']) > 0) {
$fup = new TicketFollowup();
$type = "new";
if (isset($this->fields["status"]) && $this->fields["status"] == self::SOLVED) {
$type = "solved";
}
$toadd = array("type" => $type, "tickets_id" => $this->fields['id']);
if (isset($this->input["_followup"]['content']) && strlen($this->input["_followup"]['content']) > 0) {
$toadd["content"] = $this->input["_followup"]['content'];
}
if (isset($this->input["_followup"]['is_private'])) {
$toadd["is_private"] = $this->input["_followup"]['is_private'];
}
$toadd['_no_notif'] = true;
$fup->add($toadd);
}
if (isset($this->input["plan"]) && count($this->input["plan"]) || isset($this->input["actiontime"]) && $this->input["actiontime"] > 0) {
$task = new TicketTask();
$type = "new";
if (isset($this->fields["status"]) && $this->fields["status"] == self::SOLVED) {
$type = "solved";
}
$toadd = array("type" => $type, "tickets_id" => $this->fields['id'], "actiontime" => $this->input["actiontime"]);
if (isset($this->input["plan"]) && count($this->input["plan"])) {
$toadd["plan"] = $this->input["plan"];
}
if (isset($_SESSION['glpitask_private'])) {
$toadd['is_private'] = $_SESSION['glpitask_private'];
}
$toadd['_no_notif'] = true;
$task->add($toadd);
}
$ticket_ticket = new Ticket_Ticket();
// From interface
if (isset($this->input['_link'])) {
$this->input['_link']['tickets_id_1'] = $this->fields['id'];
// message if ticket's ID doesn't exist
if (!empty($this->input['_link']['tickets_id_2'])) {
if ($ticket_ticket->can(-1, 'w', $this->input['_link'])) {
$ticket_ticket->add($this->input['_link']);
} else {
Session::addMessageAfterRedirect(__('Unknown ticket'), false, ERROR);
}
}
}
// From mailcollector : do not check rights
if (isset($this->input["_linkedto"])) {
$input2['tickets_id_1'] = $this->fields['id'];
$input2['tickets_id_2'] = $this->input["_linkedto"];
$input2['link'] = Ticket_Ticket::LINK_TO;
$ticket_ticket->add($input2);
}
// Manage SLA Level : add actions
if (isset($this->input["slas_id"]) && $this->input["slas_id"] > 0 && isset($this->input["slalevels_id"]) && $this->input["slalevels_id"] > 0) {
$calendars_id = Entity::getUsedConfig('calendars_id', $this->fields['entities_id']);
$sla = new SLA();
if ($sla->getFromDB($this->input["slas_id"])) {
$sla->setTicketCalendar($calendars_id);
// Add first level in working table
if ($this->input["slalevels_id"] > 0) {
$sla->addLevelToDo($this);
}
// Replay action in case of open date is set before now
}
SlaLevel_Ticket::replayForTicket($this->getID());
}
parent::post_addItem();
//Action for send_validation rule
if (isset($this->input["_add_validation"])) {
$validations_to_send = array();
if (!is_array($this->input["_add_validation"])) {
$this->input["_add_validation"] = array($this->input["_add_validation"]);
}
foreach ($this->input["_add_validation"] as $validation) {
switch ($validation) {
case 'requester_supervisor':
if (isset($this->input['_groups_id_requester']) && $this->input['_groups_id_requester']) {
$users = Group_User::getGroupUsers($this->input['_groups_id_requester'], "is_manager='1'");
foreach ($users as $data) {
$validations_to_send[] = $data['id'];
}
}
break;
case 'assign_supervisor':
if (isset($this->input['_groups_id_assign']) && $this->input['_groups_id_assign']) {
$users = Group_User::getGroupUsers($this->input['_groups_id_assign'], "is_manager='1'");
foreach ($users as $data) {
$validations_to_send[] = $data['id'];
}
}
break;
//.........这里部分代码省略.........
示例4: TicketFollowup
function post_addItem()
{
global $LANG, $CFG_GLPI;
// Add document if needed
$this->addFiles($this->fields['id']);
if (isset($this->input["_followup"]) && is_array($this->input["_followup"]) && strlen($this->input["_followup"]['content']) > 0) {
$fup = new TicketFollowup();
$type = "new";
if (isset($this->fields["status"]) && $this->fields["status"] == "solved") {
$type = "solved";
}
$toadd = array("type" => $type, "tickets_id" => $this->fields['id']);
if (isset($this->input["_followup"]['content']) && strlen($this->input["_followup"]['content']) > 0) {
$toadd["content"] = $this->input["_followup"]['content'];
}
if (isset($this->input["_followup"]['is_private'])) {
$toadd["is_private"] = $this->input["_followup"]['is_private'];
}
$toadd['_no_notif'] = true;
$fup->add($toadd);
}
if (isset($this->input["plan"]) || isset($this->input["_hour"]) && isset($this->input["_minute"]) && isset($this->input["realtime"]) && $this->input["realtime"] > 0) {
$task = new TicketTask();
$type = "new";
if (isset($this->fields["status"]) && $this->fields["status"] == "solved") {
$type = "solved";
}
$toadd = array("type" => $type, "tickets_id" => $this->fields['id']);
if (isset($this->input["_hour"])) {
$toadd["hour"] = $this->input["_hour"];
}
if (isset($this->input["_minute"])) {
$toadd["minute"] = $this->input["_minute"];
}
if (isset($this->input["plan"])) {
$toadd["plan"] = $this->input["plan"];
}
$toadd['_no_notif'] = true;
$task->add($toadd);
}
$ticket_ticket = new Ticket_Ticket();
// From interface
if (isset($this->input['_link'])) {
$this->input['_link']['tickets_id_1'] = $this->fields['id'];
if ($ticket_ticket->can(-1, 'w', $this->input['_link'])) {
$ticket_ticket->add($this->input['_link']);
}
}
// From mailcollector : do not check rights
if (isset($this->input["_linkedto"])) {
$input2['tickets_id_1'] = $this->fields['id'];
$input2['tickets_id_2'] = $this->input["_linkedto"];
$input2['link'] = Ticket_Ticket::LINK_TO;
$ticket_ticket->add($input2);
}
// Manage SLA Level : add actions
if (isset($this->input["slas_id"]) && $this->input["slas_id"] > 0 && isset($this->input["slalevels_id"]) && $this->input["slalevels_id"] > 0) {
$sla = new SLA();
if ($sla->getFromDB($this->input["slas_id"])) {
// Add first level in working table
if ($this->input["slalevels_id"] > 0) {
$sla->addLevelToDo($this);
}
}
}
// Add user groups linked to tickets
$ticket_user = new Ticket_User();
$group_ticket = new Group_Ticket();
if (isset($this->input["_users_id_requester"]) && ($this->input["_users_id_requester"] > 0 || isset($this->input["_users_id_requester_notif"]['alternative_email']) && !empty($this->input["_users_id_requester_notif"]['alternative_email']))) {
$input2 = array('tickets_id' => $this->fields['id'], 'users_id' => $this->input["_users_id_requester"], 'type' => self::REQUESTER);
if (isset($this->input["_users_id_requester_notif"])) {
foreach ($this->input["_users_id_requester_notif"] as $key => $val) {
$input2[$key] = $val;
}
}
$ticket_user->add($input2);
}
if (isset($this->input["_users_id_observer"]) && ($this->input["_users_id_observer"] > 0 || isset($this->input["_users_id_observer_notif"]['alternative_email']) && !empty($this->input["_users_id_observer_notif"]['alternative_email']))) {
$input2 = array('tickets_id' => $this->fields['id'], 'users_id' => $this->input["_users_id_observer"], 'type' => self::OBSERVER);
if (isset($this->input["_users_id_observer_notif"])) {
foreach ($this->input["_users_id_observer_notif"] as $key => $val) {
$input2[$key] = $val;
}
}
$ticket_user->add($input2);
}
if (isset($this->input["_users_id_assign"]) && $this->input["_users_id_assign"] > 0) {
$input2 = array('tickets_id' => $this->fields['id'], 'users_id' => $this->input["_users_id_assign"], 'type' => self::ASSIGN);
if (isset($this->input["_users_id_assign_notif"])) {
foreach ($this->input["_users_id_assign_notif"] as $key => $val) {
$input2[$key] = $val;
}
}
$ticket_user->add($input2);
}
if (isset($this->input["_groups_id_requester"]) && $this->input["_groups_id_requester"] > 0) {
$group_ticket->add(array('tickets_id' => $this->fields['id'], 'groups_id' => $this->input["_groups_id_requester"], 'type' => self::REQUESTER));
}
if (isset($this->input["_groups_id_assign"]) && $this->input["_groups_id_assign"] > 0) {
$group_ticket->add(array('tickets_id' => $this->fields['id'], 'groups_id' => $this->input["_groups_id_assign"], 'type' => self::ASSIGN));
//.........这里部分代码省略.........
示例5: doLevelForTicket
/**
* Do a specific SLAlevel for a ticket
*
* @param $data array data of an entry of slalevels_tickets
*
* @return nothing
**/
static function doLevelForTicket(array $data)
{
$ticket = new Ticket();
$slalevelticket = new self();
// existing ticket and not deleted
if ($ticket->getFromDB($data['tickets_id']) && !$ticket->isDeleted()) {
// search all actors of a ticket
foreach ($ticket->getUsers(CommonITILActor::REQUESTER) as $user) {
$ticket->fields['_users_id_requester'][] = $user['users_id'];
}
foreach ($ticket->getUsers(CommonITILActor::ASSIGN) as $user) {
$ticket->fields['_users_id_assign'][] = $user['users_id'];
}
foreach ($ticket->getUsers(CommonITILActor::OBSERVER) as $user) {
$ticket->fields['_users_id_observer'][] = $user['users_id'];
}
foreach ($ticket->getGroups(CommonITILActor::REQUESTER) as $group) {
$ticket->fields['_groups_id_requester'][] = $group['groups_id'];
}
foreach ($ticket->getGroups(CommonITILActor::ASSIGN) as $group) {
$ticket->fields['_groups_id_assign'][] = $group['groups_id'];
}
foreach ($ticket->getGroups(CommonITILActor::OBSERVER) as $groups) {
$ticket->fields['_groups_id_observer'][] = $group['groups_id'];
}
foreach ($ticket->getSuppliers(CommonITILActor::ASSIGN) as $supplier) {
$ticket->fields['_suppliers_id_assign'][] = $supplier['suppliers_id'];
}
$slalevel = new SlaLevel();
$sla = new SLA();
// Check if sla datas are OK
if ($ticket->fields['slas_id'] > 0 && $ticket->fields['slalevels_id'] == $data['slalevels_id']) {
if ($ticket->fields['status'] == CommonITILObject::CLOSED) {
// Drop line when status is closed
$slalevelticket->delete(array('id' => $data['id']));
} else {
if ($ticket->fields['status'] != CommonITILObject::SOLVED) {
// If status = solved : keep the line in case of solution not validated
$input['id'] = $ticket->getID();
$input['_auto_update'] = true;
if ($slalevel->getRuleWithCriteriasAndActions($data['slalevels_id'], 1, 1) && $sla->getFromDB($ticket->fields['slas_id'])) {
$doit = true;
if (count($slalevel->criterias)) {
$doit = $slalevel->checkCriterias($ticket->fields);
}
// Process rules
if ($doit) {
$input = $slalevel->executeActions($input, array());
}
}
// Put next level in todo list
$next = $slalevel->getNextSlaLevel($ticket->fields['slas_id'], $ticket->fields['slalevels_id']);
$input['slalevels_id'] = $next;
$ticket->update($input);
$sla->addLevelToDo($ticket);
// Action done : drop the line
$slalevelticket->delete(array('id' => $data['id']));
}
}
} else {
// Drop line
$slalevelticket->delete(array('id' => $data['id']));
}
} else {
// Drop line
$slalevelticket->delete(array('id' => $data['id']));
}
}
示例6: sprintf
function post_addItem()
{
global $CFG_GLPI;
if (isset($this->input['content'])) {
if (isset($this->input['_stock_image'])) {
$this->addImagePaste();
}
}
// Log this event
$username = 'anonymous';
if (isset($_SESSION["glpiname"])) {
$username = $_SESSION["glpiname"];
}
Event::log($this->fields['id'], "ticket", 4, "tracking", sprintf(__('%1$s adds the item %2$s'), $username, $this->fields['id']));
if (isset($this->input["_followup"]) && is_array($this->input["_followup"]) && strlen($this->input["_followup"]['content']) > 0) {
$fup = new TicketFollowup();
$type = "new";
if (isset($this->fields["status"]) && $this->fields["status"] == self::SOLVED) {
$type = "solved";
}
$toadd = array("type" => $type, "tickets_id" => $this->fields['id']);
if (isset($this->input["_followup"]['content']) && strlen($this->input["_followup"]['content']) > 0) {
$toadd["content"] = $this->input["_followup"]['content'];
}
if (isset($this->input["_followup"]['is_private'])) {
$toadd["is_private"] = $this->input["_followup"]['is_private'];
}
// $toadd['_no_notif'] = true;
$fup->add($toadd);
}
if (isset($this->input["plan"]) && count($this->input["plan"]) || isset($this->input["actiontime"]) && $this->input["actiontime"] > 0) {
$task = new TicketTask();
$type = "new";
if (isset($this->fields["status"]) && $this->fields["status"] == self::SOLVED) {
$type = "solved";
}
$toadd = array("type" => $type, "tickets_id" => $this->fields['id'], "actiontime" => $this->input["actiontime"]);
if (isset($this->input["plan"]) && count($this->input["plan"])) {
$toadd["plan"] = $this->input["plan"];
}
if (isset($_SESSION['glpitask_private'])) {
$toadd['is_private'] = $_SESSION['glpitask_private'];
}
// $toadd['_no_notif'] = true;
$task->add($toadd);
}
$ticket_ticket = new Ticket_Ticket();
// From interface
if (isset($this->input['_link'])) {
$this->input['_link']['tickets_id_1'] = $this->fields['id'];
// message if ticket's ID doesn't exist
if (!empty($this->input['_link']['tickets_id_2'])) {
if ($ticket_ticket->can(-1, CREATE, $this->input['_link'])) {
$ticket_ticket->add($this->input['_link']);
} else {
Session::addMessageAfterRedirect(__('Unknown ticket'), false, ERROR);
}
}
}
// From mailcollector : do not check rights
if (isset($this->input["_linkedto"])) {
$input2['tickets_id_1'] = $this->fields['id'];
$input2['tickets_id_2'] = $this->input["_linkedto"];
$input2['link'] = Ticket_Ticket::LINK_TO;
$ticket_ticket->add($input2);
}
// Manage SLA Level : add actions
if (isset($this->input["slas_id"]) && $this->input["slas_id"] > 0 && isset($this->input["slalevels_id"]) && $this->input["slalevels_id"] > 0) {
$calendars_id = Entity::getUsedConfig('calendars_id', $this->fields['entities_id']);
$sla = new SLA();
if ($sla->getFromDB($this->input["slas_id"])) {
$sla->setTicketCalendar($calendars_id);
// Add first level in working table
if ($this->input["slalevels_id"] > 0) {
$sla->addLevelToDo($this);
}
// Replay action in case of open date is set before now
}
SlaLevel_Ticket::replayForTicket($this->getID());
}
// Add project task link if needed
if (isset($this->input['_projecttasks_id'])) {
$projecttask = new ProjectTask();
if ($projecttask->getFromDB($this->input['_projecttasks_id'])) {
$pt = new ProjectTask_Ticket();
$pt->add(array('projecttasks_id' => $this->input['_projecttasks_id'], 'tickets_id' => $this->fields['id']));
}
}
if (!empty($this->input['itemtype']) && !empty($this->input['items_id'])) {
$item_ticket = new Item_Ticket();
$item_ticket->add(array('items_id' => $this->input['items_id'], 'itemtype' => $this->input['itemtype'], 'tickets_id' => $this->fields['id'], '_disablenotif' => true));
}
parent::post_addItem();
$this->manageValidationAdd($this->input);
// Processing Email
if ($CFG_GLPI["use_mailing"]) {
// Clean reload of the ticket
$this->getFromDB($this->fields['id']);
$type = "new";
if (isset($this->fields["status"]) && $this->fields["status"] == self::SOLVED) {
//.........这里部分代码省略.........
示例7: cronSlaTicket
/**
* Cron for ticket's automatic close
* @param $task : crontask object
*
* @return integer (0 : nothing done - 1 : done)
*
*/
static function cronSlaTicket($task)
{
global $DB;
$tot = 0;
$query = "SELECT *\n FROM `glpi_slalevels_tickets`\n WHERE `glpi_slalevels_tickets`.`date` < NOW()";
$slalevelticket = new self();
foreach ($DB->request($query) as $data) {
$tot++;
$ticket = new Ticket();
if ($ticket->getFromDB($data['tickets_id'])) {
$slalevel = new SlaLevel();
$sla = new SLA();
// Check if sla datas are OK
if ($ticket->fields['slas_id'] > 0 && $ticket->fields['slalevels_id'] == $data['slalevels_id']) {
if ($ticket->fields['status'] == 'closed') {
// Drop line when status is closed
$slalevelticket->delete(array('id' => $data['id']));
} else {
if ($ticket->fields['status'] != 'solved') {
// If status = solved : keep the line in case of solution not validated
$input = $ticket->fields;
$input['_auto_update'] = true;
if ($slalevel->getRuleWithCriteriasAndActions($data['slalevels_id'], 0, 1) && $sla->getFromDB($ticket->fields['slas_id'])) {
// Process rules
$input = $slalevel->executeActions($input, array());
}
// Put next level in todo list
$next = $slalevel->getNextSlaLevel($ticket->fields['slas_id'], $ticket->fields['slalevels_id']);
$input['slalevels_id'] = $next;
$ticket->update($input);
$sla->addLevelToDo($ticket);
}
}
}
} else {
// Drop line
$slalevelticket->delete(array('id' => $data['id']));
}
}
$task->setVolume($tot);
return $tot > 0;
}