Entity::traceOrderFromFields

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Entity
  4. traceOrderFromFields
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/tracking/entity.php
  • Класс: Bitrix\Crm\Tracking\Entity
  • Вызов: Entity::traceOrderFromFields
static function traceOrderFromFields($entityTypeId, $entityId, $fields)
{
	if (!in_array($entityTypeId, [\CCrmOwnerType::Deal], true))
	{
		return;
	}

	$hasOriginator = !empty($fields['ORIGINATOR_ID']) && $fields['ORIGINATOR_ID'] === 'bitrix.cms.sync';
	if ($hasOriginator && !empty($fields['ORIGIN_ID']))
	{
		$orderId = $fields['ORIGIN_ID'];
		$orderId = is_string($orderId) || is_integer($orderId)
			? trim((string)$orderId)
			: null
		;
	}
	else
	{
		$fieldName = Tracking\Channel\Order::getDealField();
		$orderId = ($fieldName && isset($fields[$fieldName]))
			? $fields[$fieldName]
			: null
		;
		$orderId = is_array($orderId)
			? current($orderId)
			: $orderId
		;
		$orderId = is_string($orderId) || is_integer($orderId)
			? trim((string)$orderId)
			: null
		;
	}


	if ($orderId)
	{
		self::traceOrder($orderId, $entityTypeId, $entityId);
	}
}

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