- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/result/resultmanager.php
- Класс: BitrixTasksInternalsTaskResultResultManager
- Вызов: ResultManager::updateFromComment
public function updateFromComment(int $taskId, int $commentId): ?Result
{
$task = $this->loadTask($taskId);
if (!$task)
{
return null;
}
$comment = $this->loadComment($commentId);
if (!$comment)
{
return null;
}
$result = $this->loadResult($commentId);
if ($comment->getServiceData() !== self::COMMENT_SERVICE_DATA)
{
if ($result)
{
$result->delete();
$this->executeAutomationTrigger($task, $result);
$this->sendPush(self::COMMAND_DELETE, $result);
}
return null;
}
$pushCommand = self::COMMAND_UPDATE;
if (!$result)
{
$result = new Result();
$result->setTaskId($taskId);
$result->setCommentId($commentId);
$result->setCreatedBy($this->userId);
$result->setCreatedAt($comment->getPostDate());
$result->setStatus(ResultTable::STATUS_OPENED);
$pushCommand = self::COMMAND_CREATE;
}
$result->setText($comment->getPostMessage());
$result->setUpdatedAt(new DateTime());
$result->save();
$this->updateUf($result, $commentId);
$this->sendPush($pushCommand, $result);
$this->log($result, self::RESULT_EDIT);
$this->executeAutomationTrigger($task, $result);
return $result;
}