Call::getUncompletedActivityIdList

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Call
  4. getUncompletedActivityIdList
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/call.php
  • Класс: Bitrix\Crm\Activity\Provider\Call
  • Вызов: Call::getUncompletedActivityIdList
static function getUncompletedActivityIdList(int $activityId, int $options = 0): array
{
	$bindings = CCrmActivity::GetBindings($activityId);
	if (!is_array($bindings))
	{
		return [];
	}

	if (empty($bindings))
	{
		return [];
	}

	// fetch not completed CALL activities
	$dbResult = CCrmActivity::GetList(
		[],
		[
			'TYPE_ID' => CCrmActivityType::Call,
			'PROVIDER_ID' => static::getId(),
			'=PROVIDER_TYPE_ID' => static::ACTIVITY_PROVIDER_TYPE_CALL,
			'=CHECK_PERMISSIONS' => 'N',
			'=COMPLETED' => 'N',
			'BINDINGS' => $bindings,
		],
		false,
		false,
		['ID', 'SETTINGS']
	);

	$missedOnly = $options & self::UNCOMPLETED_ACTIVITY_MISSED;
	$incomingOnly = $options & self::UNCOMPLETED_ACTIVITY_INCOMING;

	$result = [];
	while ($arResult = $dbResult->Fetch())
	{
		if ($missedOnly)
		{
			$isMissedCall = isset($arResult['SETTINGS']['MISSED_CALL'])
				&& $arResult['SETTINGS']['MISSED_CALL'];

			if ($isMissedCall)
			{
				$result[] = (int)$arResult["ID"];
			}
		}
		else
		{
			// all call activities excluding last created call activity
			if ($activityId !== (int)$arResult["ID"])
			{
				$result[] = (int)$arResult["ID"];
			}
		}

		if ($incomingOnly)
		{
			$result = array_filter(
				$result,
				fn($activityId): bool => IncomingChannel::getInstance()->isIncomingChannel($activityId)
			);
		}
	}

	return array_values(array_unique($result));
}

Добавить комментарий