• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/processor/efficiencyprocessor.php
  • Класс: BitrixTasksInternalsCounterProcessorEfficiencyProcessor
  • Вызов: EfficiencyProcessor::updateEfficiencyForExpired
private function updateEfficiencyForExpired(int $taskId): array
{
	/** @var EventResource $task */
	$task = $this->modifiedData[$taskId];
	$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)
	{
		if (!Effective::checkActiveViolations($taskId, $userId, $task->getGroupId()))
		{
			Effective::modify($userId, $type, $taskData, $task->getGroupId(), true, false);
			$processedMembers[$userId] = $userId;
		}
	}

	return $processedMembers;
}