- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicatecommunicationcriterion.php
- Класс: Bitrix\Crm\Integrity\DuplicateCommunicationCriterion
- Вызов: DuplicateCommunicationCriterion::prepareEntityMultifieldValues
static function prepareEntityMultifieldValues($entityTypeID, $entityID, array $options = null)
{
if(!is_array($options))
{
$options = array();
}
if(isset($options['invalidateCache']) && $options['invalidateCache'])
{
self::invalidateCache($entityTypeID, $entityID);
}
if(isset(self::$entityMultiFields[$entityTypeID])
&& is_array(self::$entityMultiFields[$entityTypeID])
&& isset(self::$entityMultiFields[$entityTypeID][$entityID])
)
{
return self::$entityMultiFields[$entityTypeID][$entityID];
}
if(!isset(self::$entityMultiFields[$entityTypeID]))
{
self::$entityMultiFields[$entityTypeID] = array();
}
$dbResult = \CCrmFieldMulti::GetListEx(
array(),
array(
'=ENTITY_ID' => \CCrmOwnerType::ResolveName($entityTypeID),
'=ELEMENT_ID' => $entityID,
'@TYPE_ID' => CommunicationType::getMultiFieldTypeIDs()
),
false,
false,
array('TYPE_ID', 'VALUE', 'VALUE_TYPE')
);
$results = array();
if(is_object($dbResult))
{
while($fields = $dbResult->Fetch())
{
$typeID = isset($fields['TYPE_ID']) ? $fields['TYPE_ID'] : '';
$value = isset($fields['VALUE']) ? $fields['VALUE'] : '';
$valueType = isset($fields['VALUE_TYPE']) ? $fields['VALUE_TYPE'] : '';
if($typeID === '' || $value === '')
{
continue;
}
if(!isset($results[$typeID]))
{
$results[$typeID] = array();
}
$results[$typeID][] = array('VALUE'=> $value, 'VALUE_TYPE' => $valueType);
}
}
self::$entityMultiFields[$entityTypeID][$entityID] = $results;
return $results;
}