• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Kanban/ItemPreparer/Counters/ItemCounterActivityResponsible.php
  • Класс: BitrixCrmMobileKanbanItemPreparerCountersItemCounterActivityResponsible
  • Вызов: ItemCounterActivityResponsible::counters
public function counters(array $item, array $params, ?int $entityAssignedById): CountersResult
{
	$counters = [];

	$activityCounterTotal = ($item['activityCounterTotal'] ?? 0);
	$userId = (int)$params['userId'];

	$userData = $item['activitiesByUser'][$userId] ?? [];
	$activityError = (int)($userData['activityError'] ?? 0);
	$activityIncomingTotal = (int)($userData['incoming'] ?? 0);

	$indicator = $this->getIndicator($item, $activityCounterTotal, $userId);


	if (empty($userData))
	{
		$counters[] = $this->itemCounter->getEmptyCounter($activityCounterTotal);
		return new CountersResult($counters, $activityCounterTotal, $indicator);
	}

	$isReckonActivityLessItems = $params['isReckonActivityLessItems'];

	if ($activityError)
	{
		$counters[] = $this->itemCounter->getErrorCounter($activityError);
	}

	if ($activityIncomingTotal)
	{
		$counters[] = $this->itemCounter->getIncomingCounter($activityIncomingTotal);
	}

	if (empty($counters))
	{
		$counters[] = $isReckonActivityLessItems
			? $this->itemCounter->getErrorCounter(ItemCounters::DEFAULT_COUNT_WITH_RECKON_ACTIVITY)
			: $this->itemCounter->getEmptyCounter(0);
	}

	if ($activityError > 0 || $activityIncomingTotal > 0)
	{
		$activityCounterTotal = $activityError + $activityIncomingTotal;
	}

	return new CountersResult($counters, $activityCounterTotal, $indicator);
}