CAllCrmQuote::PrepareStorageElementIDs

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CAllCrmQuote
  4. PrepareStorageElementIDs
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_quote.php
  • Класс: \CAllCrmQuote
  • Вызов: CAllCrmQuote::PrepareStorageElementIDs
static function PrepareStorageElementIDs(&$arFields)
{
	if(isset($arFields['STORAGE_ELEMENT_IDS']) && is_array($arFields['STORAGE_ELEMENT_IDS']))
	{
		return;
	}

	if(isset($arFields['~STORAGE_ELEMENT_IDS']))
	{
		$field = $arFields['~STORAGE_ELEMENT_IDS'];
	}
	elseif(isset($arFields['STORAGE_ELEMENT_IDS']))
	{
		$field = $arFields['STORAGE_ELEMENT_IDS'];
	}
	else
	{
		$field = '';
	}

	if(is_array($field))
	{
		$result = $field;
	}
	elseif(is_numeric($field))
	{
		$ID = (int)$field;
		if($ID <= 0)
		{
			$ID = isset($arFields['ID']) ? (int)$arFields['ID'] : (isset($arFields['~ID']) ? (int)$arFields['~ID'] : 0);
		}

		if($ID <= 0)
		{
			$result = array();
		}
		else
		{
			$result = self::LoadElementIDs($ID);
			$arUpdateFields = array('STORAGE_ELEMENT_IDS' => serialize($result));
			$table = CCrmActivity::TABLE_NAME;
			global $DB;
			$DB->QueryBind(
				'UPDATE '.$table.' SET '.$DB->PrepareUpdate($table, $arUpdateFields).' WHERE ID = '.$ID,
				$arUpdateFields,
				false
			);
		}
	}
	elseif(is_string($field) && $field !== '')
	{
		$result = unserialize($field, ['allowed_classes' => false]);
	}
	else
	{
		$result = array();
	}

	$arFields['~STORAGE_ELEMENT_IDS'] = $arFields['STORAGE_ELEMENT_IDS'] = &$result;
	unset($result);
}

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