function post_updateItem($history = 1)
{
global $CFG_GLPI;
if (in_array("begin", $this->updates)) {
PlanningRecall::managePlanningUpdates($this->getType(), $this->getID(), $this->fields["begin"]);
}
$update_done = false;
$itemtype = $this->getItilObjectItemType();
$item = new $itemtype();
if ($item->getFromDB($this->fields[$item->getForeignKeyField()])) {
$item->updateDateMod($this->fields[$item->getForeignKeyField()]);
if (count($this->updates)) {
$update_done = true;
if (in_array("actiontime", $this->updates)) {
$item->updateActionTime($this->input[$item->getForeignKeyField()]);
}
// change ticket status (from splitted button)
$itemtype = $this->getItilObjectItemType();
$this->input['_job'] = new $itemtype();
if (!$this->input['_job']->getFromDB($this->input[$this->input['_job']->getForeignKeyField()])) {
return false;
}
if (isset($this->input['_status']) && $this->input['_status'] != $this->input['_job']->fields['status']) {
$update['status'] = $this->input['_status'];
$update['id'] = $this->input['_job']->fields['id'];
$update['_disablenotif'] = true;
$this->input['_job']->update($update);
}
if (!empty($this->fields['begin']) && $item->isStatusExists(CommonITILObject::PLANNED) && ($item->fields["status"] == CommonITILObject::INCOMING || $item->fields["status"] == CommonITILObject::ASSIGNED)) {
$input2['id'] = $item->getID();
$input2['status'] = CommonITILObject::PLANNED;
$input2['_disablenotif'] = true;
$item->update($input2);
}
if ($CFG_GLPI["use_mailing"]) {
$options = array('task_id' => $this->fields["id"], 'is_private' => $this->isPrivate());
NotificationEvent::raiseEvent('update_task', $item, $options);
}
}
}
if ($update_done) {
// Add log entry in the ITIL object
$changes[0] = 0;
$changes[1] = '';
$changes[2] = $this->fields['id'];
Log::history($this->getField($item->getForeignKeyField()), $itemtype, $changes, $this->getType(), Log::HISTORY_UPDATE_SUBITEM);
}
}