• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_crm_helper.php
  • Класс: CVoxImplantCrmHelper
  • Вызов: CVoxImplantCrmHelper::AttachRecordToCall
static function AttachRecordToCall($params)
{
	if (!CModule::IncludeModule('crm'))
	{
		return false;
	}

	CVoxImplantHistory::WriteToLog($params, 'CRM ATTACH RECORD TO CALL');
	if ($params['CALL_WEBDAV_ID'] > 0 || $params['CALL_RECORD_ID'] > 0)
	{
		$activityId = CCrmActivity::GetIDByOrigin('VI_'.$params['CALL_ID']);
		if ($activityId)
		{
			$activityFields = CCrmActivity::GetByID($activityId);

			$storageElementIds = unserialize($activityFields['STORAGE_ELEMENT_IDS'], ['allowed_classes' => false]) ?: array();
			$doSave = false;
			if($params['CALL_WEBDAV_ID'] > 0)
			{
				$storageElementIds[] = $params['CALL_WEBDAV_ID'];
				$arFields['STORAGE_TYPE_ID'] = $activityFields['STORAGE_TYPE_ID'] ?: CCrmActivity::GetDefaultStorageTypeID();
				$doSave = true;
			}
			else if($params['CALL_RECORD_ID'] > 0 && empty($storageElementIds))
			{
				$storageElementIds[] = $params['CALL_RECORD_ID'];
				$arFields['STORAGE_TYPE_ID'] = BitrixCrmIntegrationStorageType::File;
				$doSave = true;
			}
			if(!$doSave)
			{
				return false;
			}

			$arFields['STORAGE_ELEMENT_IDS'] = $storageElementIds;
			CCrmActivity::Update($activityId, $arFields, false);
		}
	}

	return true;
}