• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/kanban/entityactcounter/preparecounters.php
  • Класс: Bitrix\Crm\Kanban\EntityActCounter\PrepareCounters
  • Вызов: PrepareCounters::prepareIncomings
private function prepareIncomings(): void
{
	$activitiesIds = [];
	$activityResponsibleMap = [];
	foreach ($this->builder->activities as $activity)
	{
		$activitiesIds[] = $activity['ID'];
		$activityResponsibleMap[$activity['ID']] = (int)$activity['RESPONSIBLE_ID'];
	}

	if (empty($activitiesIds))
	{
		return;
	}
	$incomingList = $this->queryActivity
		->queryIncomingActivities($this->entityTypeId, $this->entityIds, $activitiesIds);

	$this->builder->incomingByResponsible = [];

	foreach ($incomingList as $incoming)
	{
		$ownerId = $incoming['OWNER_ID'];
		if (!isset($this->builder->incoming[$ownerId]))
		{
			$this->builder->incoming[$ownerId] = [];
		}
		$this->builder->incoming[$ownerId][] = (int)$incoming['ACTIVITY_ID'];

		$actResponsibleId = $activityResponsibleMap[$incoming['ACTIVITY_ID']] ?? null;
		if ($actResponsibleId !== null)
		{
			if (!isset($this->builder->incomingByResponsible[$ownerId][$actResponsibleId]))
			{
				$this->builder->incomingByResponsible[$ownerId][$actResponsibleId] = 0;
			}
			$this->builder->incomingByResponsible[$ownerId][$actResponsibleId]++;
		}
	}
}