- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_productprops_helper.php
- Класс: \CCrmProductPropsHelper
- Вызов: CCrmProductPropsHelper::InternalizeCrmEntityValue
static function InternalizeCrmEntityValue(&$value, array $propertyInfo)
{
$settings = isset($propertyInfo['USER_TYPE_SETTINGS']) ? $propertyInfo['USER_TYPE_SETTINGS'] : null;
if(!is_array($settings))
{
return;
}
$isContactEnabled = isset($settings['CONTACT']) && mb_strtoupper($settings['CONTACT']) === 'Y';
$isCompanyEnabled = isset($settings['COMPANY']) && mb_strtoupper($settings['COMPANY']) === 'Y';
$isLeadEnabled = isset($settings['LEAD']) && mb_strtoupper($settings['LEAD']) === 'Y';
$isDealEnabled = isset($settings['DEAL']) && mb_strtoupper($settings['DEAL']) === 'Y';
if(is_array($value))
{
foreach($value as $k => $v)
{
$entityID = 0;
if($isLeadEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Lead, $v, $entityID))
{
$value[$k] = ($isContactEnabled || $isCompanyEnabled || $isDealEnabled)
? "L_{$entityID}" : "{$entityID}";
}
elseif($isContactEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Contact, $v, $entityID))
{
$value[$k] = ($isCompanyEnabled || $isLeadEnabled || $isDealEnabled)
? "C_{$entityID}" : "{$entityID}";
}
elseif($isCompanyEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Company, $v, $entityID))
{
$value[$k] = ($isContactEnabled || $isLeadEnabled || $isDealEnabled)
? "CO_{$entityID}" : "{$entityID}";
}
elseif($isDealEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Deal, $v, $entityID))
{
$value[$k] = ($isContactEnabled || $isCompanyEnabled || $isLeadEnabled)
? "D_{$entityID}" : "{$entityID}";
}
}
}
elseif(is_string($value) && $value !== '')
{
$entityID = 0;
if($isLeadEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Lead, $value, $entityID))
{
$value = ($isContactEnabled || $isCompanyEnabled || $isDealEnabled)
? "L_{$entityID}" : "{$entityID}";
}
elseif($isContactEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Contact, $value, $entityID))
{
$value = ($isCompanyEnabled || $isLeadEnabled || $isDealEnabled)
? "C_{$entityID}" : "{$entityID}";
}
elseif($isCompanyEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Company, $value, $entityID))
{
$value = ($isContactEnabled || $isLeadEnabled || $isDealEnabled)
? "CO_{$entityID}" : "{$entityID}";
}
elseif($isDealEnabled && self::TryInternalizeCrmEntityID(CCrmOwnerType::Deal, $value, $entityID))
{
$value = ($isContactEnabled || $isCompanyEnabled || $isLeadEnabled)
? "D_{$entityID}" : "{$entityID}";
}
}
}