CCrmRestProxyBase::prepareListItemMultiFields

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmRestProxyBase
  4. prepareListItemMultiFields
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
  • Класс: \CCrmRestProxyBase
  • Вызов: CCrmRestProxyBase::prepareListItemMultiFields
protected function prepareListItemMultiFields(&$entityMap, $entityTypeID, $typeIDs)
{
	$entityIDs = array_keys($entityMap);
	if(empty($entityIDs))
	{
		return;
	}

	$entityTypeName = CCrmOwnerType::ResolveName($entityTypeID);
	if($entityTypeName === '')
	{
		return;
	}

	$dbResult = CCrmFieldMulti::GetListEx(
		array(),
		array(
			'=ENTITY_ID' => $entityTypeName,
			'@ELEMENT_ID' => $entityIDs,
			'@TYPE_ID' => $typeIDs
		)
	);

	while($fm = $dbResult->Fetch())
	{
		$typeID = $fm['TYPE_ID'] ?? '';
		if(!in_array($typeID, $typeIDs, true))
		{
			continue;
		}

		$entityID = isset($fm['ELEMENT_ID']) ? intval($fm['ELEMENT_ID']) : 0;
		if(!isset($entityMap[$entityID]))
		{
			continue;
		}

		$entity = &$entityMap[$entityID];
		if(!isset($entity['FM']))
		{
			$entity['FM'] = array();
		}

		if(!isset($entity['FM'][$typeID]))
		{
			$entity['FM'][$typeID] = array();
		}

		$entity['FM'][$typeID][] = array('ID' => $fm['ID'], 'VALUE_TYPE' => $fm['VALUE_TYPE'], 'VALUE' => $fm['VALUE']);
		unset($entity);
	}
}

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