• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/utm.php
  • Класс: Bitrix\Crm\UtmTable
  • Вызов: UtmTable::upsertEntityUtmFromFields
static function upsertEntityUtmFromFields($isAdd, $entityTypeId, $entityId, $fields)
{
	$codeList = self::getCodeList();
	foreach ($codeList as $code)
	{
		if (!isset($fields[$code]))
		{
			continue;
		}

		if (!$fields[$code])
		{
			static::deleteEntityUtm($entityTypeId, $entityId, $code);
			continue;
		}

		if (!is_string($fields[$code]))
		{
			continue;
		}

		$primary = [
			'ENTITY_TYPE_ID' => $entityTypeId,
			'ENTITY_ID' => $entityId,
			'CODE' => $code
		];

		if (!$isAdd)
		{
			if (static::getRowById($primary))
			{
				$resultDb = static::update($primary, ['VALUE' => $fields[$code]]);
			}
			else
			{
				$isAdd = true;
			}
		}

		if ($isAdd)
		{
			$addFields = $primary;
			$addFields['VALUE'] = $fields[$code];
			$resultDb = static::add($addFields);
		}

		$resultDb->isSuccess();
	}
}