- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/processor/efficiencyprocessor.php
- Класс: BitrixTasksInternalsCounterProcessorEfficiencyProcessor
- Вызов: EfficiencyProcessor::updateEfficiencyForDeletedAndAdded
private function updateEfficiencyForDeletedAndAdded(int $taskId, bool $isDeleted = false): array
{
/** @var EventResource $task */
$task = ($this->modifiedData[$taskId] ?? $this->originData[$taskId]);
if (!$task)
{
return [];
}
$taskMembers = $task->getMembersAsArray();
$membersMap = array_fill_keys(
$taskMembers[MemberTable::MEMBER_TYPE_ACCOMPLICE],
MemberTable::MEMBER_TYPE_ACCOMPLICE
);
$membersMap[current($taskMembers[MemberTable::MEMBER_TYPE_RESPONSIBLE])] = MemberTable::MEMBER_TYPE_RESPONSIBLE;
$taskData = [
'ID' => $taskId,
'TITLE' => $task->getTitle(),
'DEADLINE' => $task->getDeadline(),
'CREATED_BY' => current($taskMembers[MemberTable::MEMBER_TYPE_ORIGINATOR]),
];
$processedMembers = [];
foreach ($membersMap as $userId => $type)
{
Effective::modify($userId, $type, $taskData, $task->getGroupId(), false, false);
$processedMembers[$userId] = $userId;
}
if ($isDeleted)
{
Effective::repair($taskId);
}
return $processedMembers;
}