- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/integration/tasks.php
- Класс: BitrixIntranetIntegrationTasks
- Вызов: Tasks::onTaskUpdate
static function onTaskUpdate($taskId, &$currentTaskFields, &$previousTaskFields): void
{
if (!Loader::includeModule('tasks') || !Loader::includeModule('im'))
{
return;
}
$res = BitrixImModelChatTable::getList(array(
'select' => ['ID'],
'filter' => [
'=ENTITY_TYPE' => 'TASKS',
'=ENTITY_ID' => $taskId,
],
'limit' => 1
));
if ($chat = $res->fetch())
{
$chatId = $chat['ID'];
}
else
{
return;
}
$userIdNewList = self::prepareCurrentUserList($currentTaskFields);
$userIdOldList = self::prepareUserList($previousTaskFields);
if (empty($userIdNewList) || empty($userIdOldList))
{
return;
}
$addedUsers = array_diff($userIdNewList, $userIdOldList);
$deletedUsers = array_diff($userIdOldList, $userIdNewList);
if (empty($addedUsers) && empty($deletedUsers))
{
return;
}
Secretary::updateChatUsers($chatId, $addedUsers, $deletedUsers);
}