- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/item/task.php
- Класс: BitrixTasksItemTask
- Вызов: Task::sendPullEvents
private function sendPullEvents($data, $result)
{
$id = $this->getId();
$recipients = array_merge(array($data["CREATED_BY"], $data["RESPONSIBLE_ID"]), $data["ACCOMPLICES"], $data["AUDITORS"]);
try
{
$groupId = intval($data['GROUP_ID']);
$lastResult = ResultManager::getLastResult((int) $id);
$arPullData = array(
'TASK_ID' => $id,
'AFTER' => array(
'GROUP_ID' => $groupId
),
'params' => [
'addCommentExists' => false
],
'TS' => time(),
'event_GUID' => isset($data['META::EVENT_GUID']) ? $data['META::EVENT_GUID'] : sha1(uniqid('AUTOGUID', true)),
'taskRequireResult' => BitrixTasksInternalsTaskResultResultManager::requireResult((int)$id) ? "Y" : "N",
'taskHasResult' => $lastResult ? "Y" : "N",
'taskHasOpenResult' => ($lastResult && (int) $lastResult['STATUS'] === ResultTable::STATUS_OPENED) ? "Y" : "N",
);
PullPushService::addEvent($recipients, [
'module_id' => 'tasks',
'command' => PullPushCommand::TASK_ADDED,
'params' => $arPullData
]);
}
catch (Exception $e)
{
Util::log($e);
$result->getErrors()->addWarning('POST_ACTION_FAILURE.PULL', Loc::getMessage('TASKS_ITEM_TASK_PULL_NOT_SENT'), array('EXCEPTION' => $e));
}
}