- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/timeline/tasks/controller.php
- Класс: Bitrix\Crm\Timeline\Tasks\Controller
- Вызов: Controller::handleCommentActivity
private function handleCommentActivity(Bindings $bindings, int $typeId, array $timelineParams): void
{
[$bindings, $timelineParams] = $this->prepareParams($bindings, $timelineParams);
foreach ($bindings as $identifier)
{
$taskId = $timelineParams['TASK_ID'] ?? null;
if (is_null($taskId))
{
return;
}
$fromUser = $timelineParams['FROM_USER'] ?? 0;
$responsibleId = $this->getAssignedByEntity($identifier);
if (is_null($responsibleId))
{
return;
}
if ($fromUser === $responsibleId)
{
continue;
}
$activity = $this->commentActivityProvider->find($taskId, $identifier);
if (is_null($activity) || $activity->getCompleted())
{
$result = $this->commentActivityProvider->createActivity(
Comment::getProviderTypeId(),
$this->commentActivityProvider->prepareFields($taskId, $responsibleId, $identifier, $timelineParams)
);
if ($result->isSuccess())
{
$timelineParams['SKIP_BINDINGS_UPDATE'] = true;
$this->handleTaskEvent($typeId, new Bindings(...[$identifier]), $timelineParams);
}
}
else
{
$this->commentActivityProvider->update($activity, $timelineParams);
}
}
}