- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/conversion/leadconversionmapper.php
- Класс: Bitrix\Crm\Conversion\LeadConversionMapper
- Вызов: LeadConversionMapper::createMap
static function createMap($entityTypeID)
{
if(!is_int($entityTypeID))
{
$entityTypeID = (int)$entityTypeID;
}
if(!\CCrmOwnerType::IsDefined($entityTypeID))
{
throw new Main\ArgumentOutOfRangeException('dstEntityTypeID',
\CCrmOwnerType::FirstOwnerType,
\CCrmOwnerType::LastOwnerType
);
}
if($entityTypeID !== \CCrmOwnerType::Contact
&& $entityTypeID !== \CCrmOwnerType::Company
&& $entityTypeID !== \CCrmOwnerType::Deal)
{
$dstEntityTypeName = \CCrmOwnerType::ResolveName($entityTypeID);
throw new Main\NotSupportedException("Entity type: '{$dstEntityTypeName}' is not supported in current context");
}
$map = new EntityConversionMap(\CCrmOwnerType::Lead, $entityTypeID);
if($entityTypeID === \CCrmOwnerType::Contact)
{
//region Contact Map Static Field Bindings
$map->createItem('HONORIFIC');
$map->createItem('NAME');
$map->createItem('SECOND_NAME');
$map->createItem('LAST_NAME');
$map->createItem('BIRTHDATE');
$map->createItem('POST');
$map->createItem('COMMENTS');
$map->createItem('OPENED');
$map->createItem('SOURCE_ID');
$map->createItem('SOURCE_DESCRIPTION');
$map->createItem('ADDRESS');
$map->createItem('ADDRESS_2');
$map->createItem('ADDRESS_CITY');
$map->createItem('ADDRESS_POSTAL_CODE');
$map->createItem('ADDRESS_REGION');
$map->createItem('ADDRESS_PROVINCE');
$map->createItem('ADDRESS_COUNTRY');
$map->createItem('ADDRESS_COUNTRY_CODE');
$map->createItem('PHONE');
$map->createItem('EMAIL');
$map->createItem('WEB');
$map->createItem('IM');
$map->createItem('LINK');
$map->createItem('ASSIGNED_BY_ID');
$map->createItem('ORIGINATOR_ID');
$map->createItem('ORIGIN_ID');
$map->createItem('FACE_ID');
//endregion
//region Contact Map User Field Bindings
$intersections = UserFieldSynchronizer::getIntersection(\CCrmOwnerType::Lead, \CCrmOwnerType::Contact);
foreach($intersections as $intersection)
{
$map->createItem($intersection['SRC_FIELD_NAME'], $intersection['DST_FIELD_NAME']);
}
//endregion
}
elseif($entityTypeID === \CCrmOwnerType::Company)
{
//region Company Map Static Field Bindings
$map->createItem('COMPANY_TITLE', 'TITLE', array('ALT_SRC_FIELD_IDS' => array('TITLE')));
$map->createItem('COMMENTS');
$map->createItem('OPENED');
$map->createItem('ADDRESS');
$map->createItem('ADDRESS_2');
$map->createItem('ADDRESS_CITY');
$map->createItem('ADDRESS_POSTAL_CODE');
$map->createItem('ADDRESS_REGION');
$map->createItem('ADDRESS_PROVINCE');
$map->createItem('ADDRESS_COUNTRY');
$map->createItem('ADDRESS_COUNTRY_CODE');
$map->createItem('PHONE');
$map->createItem('EMAIL');
$map->createItem('WEB');
$map->createItem('IM');
$map->createItem('LINK');
$map->createItem('ASSIGNED_BY_ID');
$map->createItem('ORIGINATOR_ID');
$map->createItem('ORIGIN_ID');
//endregion
//region Company Map User Field Bindings
$intersections = UserFieldSynchronizer::getIntersection(\CCrmOwnerType::Lead, \CCrmOwnerType::Company);
foreach($intersections as $intersection)
{
$map->createItem($intersection['SRC_FIELD_NAME'], $intersection['DST_FIELD_NAME']
);
}
//endregion
}
elseif($entityTypeID === \CCrmOwnerType::Deal)
{
//region Deal Map Static Field Bindings
$map->createItem('TITLE');
$map->createItem('OPPORTUNITY');
$map->createItem('CURRENCY_ID');
$map->createItem('COMMENTS');
$map->createItem('OPENED');
$map->createItem('SOURCE_ID');
$map->createItem('SOURCE_DESCRIPTION');
$map->createItem('ADDRESS');
$map->createItem('ADDRESS_2');
$map->createItem('ADDRESS_CITY');
$map->createItem('ADDRESS_POSTAL_CODE');
$map->createItem('ADDRESS_REGION');
$map->createItem('ADDRESS_PROVINCE');
$map->createItem('ADDRESS_COUNTRY');
$map->createItem('ADDRESS_COUNTRY_CODE');
$map->createItem('PRODUCT_ROWS');
$map->createItem('ASSIGNED_BY_ID');
$map->createItem('ORIGINATOR_ID');
$map->createItem('ORIGIN_ID');
$map->createItem('WEBFORM_ID');
//endregion
//region Deal Map User Field Bindings
$intersections = UserFieldSynchronizer::getIntersection(\CCrmOwnerType::Lead, \CCrmOwnerType::Deal);
foreach($intersections as $intersection)
{
$map->createItem($intersection['SRC_FIELD_NAME'], $intersection['DST_FIELD_NAME']);
}
//endregion
}
//region UTM Fields
foreach(UtmTable::getCodeList() as $fieldID)
{
$map->createItem($fieldID);
}
//endregion
return $map;
}