• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm/common.php
  • Класс: BitrixImOpenLinesCrmCommon
  • Вызов: Common::addActivityBindings
static function addActivityBindings($id, $newBindings): Result
{
	$result = new Result();

	if (!Loader::includeModule('crm'))
	{
		$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NOT_LOAD_CRM'), Crm::ERROR_IMOL_NOT_LOAD_CRM, __METHOD__));
	}
	else
	{
		if($id > 0 && !empty($newBindings) && is_array($newBindings))
		{
			$bindings = CAllCrmActivity::GetBindings($id);

			foreach($bindings as $binding)
			{
				if(!empty($newBindings[CCrmOwnerType::ResolveName($binding['OWNER_TYPE_ID'])]) &&
					$binding['OWNER_ID'] == $newBindings[CCrmOwnerType::ResolveName($binding['OWNER_TYPE_ID'])])
				{
					unset($newBindings[CCrmOwnerType::ResolveName($binding['OWNER_TYPE_ID'])]);
				}
			}

			if(!empty($newBindings))
			{
				foreach ($newBindings as $ownerType => $ownerId)
				{
					$bindings[] = [
						'OWNER_ID' => $ownerId,
						'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($ownerType)
					];
				}

				CAllCrmActivity::SaveBindings($id, $bindings, false, false);
			}
		}
		else
		{
			$result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NO_REQUIRED_PARAMETERS'), Crm::ERROR_IMOL_CRM_NO_REQUIRED_PARAMETERS, __METHOD__));
		}
	}

	return $result;
}