- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/connectors/personalize/basepersonalize.php
- Класс: Bitrix\Sender\Integration\Crm\Connectors\Personalize\BasePersonalize
- Вызов: BasePersonalize::checkUsedField
static function checkUsedField($usedField, $entityType, &$objDocument)
{
switch ($usedField)
{
case 'FULL_ADDRESS':
$objDocument['FULL_ADDRESS'] = self::buildAddress($entityType, $objDocument);
break;
case 'BANKING_DETAILS':
$requisites = Bitrix\Crm\EntityRequisite::getSingleInstance()
->getList(
[
'filter' => [
'=ENTITY_TYPE_ID' => \CCrmOwnerType::ResolveID($entityType),
'=ENTITY_ID' => $objDocument['ID']
],
'select' => ['ID'],
'limit' => '1'
]
)->fetch();
$titleMap = Bitrix\Crm\EntityBankDetail::getSingleInstance()->getRqFieldTitleMap();
$details = Bitrix\Crm\EntityBankDetail::getByOwners(
\CCrmOwnerType::Requisite, [$requisites['ID']]
);
$objDocument['BANKING_DETAILS'] = '';
$tmpDetails = [];
if($details[$requisites['ID']])
{
foreach ($details[$requisites['ID']] as $detail)
{
foreach ($titleMap as $key => $title)
{
if(isset($title[$detail['COUNTRY_ID']]))
{
$tmpDetails[] =
$title[$detail['COUNTRY_ID']] . ': ' . $detail[$key];
}
}
}
}
$objDocument['BANKING_DETAILS'] = implode(self::COMMA, $tmpDetails);
break;
case 'MODIFY_BY_ID':
case 'CREATED_BY_ID':
if ($objDocument[$usedField] > 1)
{
$dbUsers = \CUser::GetList(
'',
'',
['ID' => $objDocument[$usedField]],
[
'FIELDS' => [
'NAME',
'LAST_NAME'
]
]
);
$arUser = is_object($dbUsers)? $dbUsers->Fetch() : null;
$objDocument[$usedField] =
is_array($arUser)? implode(" ", [
$arUser['NAME'],
$arUser['LAST_NAME']
]
) : '';
}
break;
case 'CONTACT_ID':
$contactID = \Bitrix\Crm\Binding\ContactCompanyTable::getCompanyContactIDs($objDocument['ID']);
$contact = \CCrmContact::GetByID(
$contactID[0]
);
if(!empty($contact))
{
$objDocument['CONTACT_ID'] = implode(" ", [
$contact['NAME'],
$contact['LAST_NAME']
]
);
}
break;
case 'COMPANY_ID':
$objDocument['COMPANY_ID'] = \CCrmCompany::GetByID(
$objDocument['COMPANY_ID']
)['TITLE'];
break;
case 'COMPANY_IDS':
$contactCompany = "\Bitrix\Crm\Binding\ContactCompanyTable";
$companies = $contactCompany::getContactCompanyIDs(
$objDocument['ID']
);
$companiesTitle = [];
foreach ($companies as $company)
{
$companiesTitle[] = \CCrmCompany::GetByID(
$company
)['TITLE'];
}
$objDocument['COMPANY_IDS'] = implode(', ', $companiesTitle);
break;
case 'IS_RETURN_CUSTOMER':
case 'ASSIGNED_BY.ACTIVE':
case 'OPENED':
case 'EXPORT':
$objDocument[$usedField] = $objDocument[$usedField] === 'Y'
? GetMessage('CRM_FIELDS_TYPE_B_VALUE_YES') : GetMessage('CRM_FIELDS_TYPE_B_VALUE_NO');
break;
case 'HONORIFIC':
$honorifics = \CCrmStatus::GetStatus('HONORIFIC');
$objDocument['HONORIFIC'] = $honorifics[$objDocument['HONORIFIC']]['NAME'];
break;
case 'ORIGINATOR_ID':
/**
* @var \CDBResult $originator
*/
$originator = \CCrmExternalSale::GetList([],[
['=ID' => $objDocument['ORIGINATOR_ID']]
])->Fetch();
if(isset($originator[0]))
{
$objDocument['ORIGINATOR_ID'] = $originator[0]['NAME'];
}
break;
case 'INDUSTRY':
$sources = \CCrmStatus::GetStatus('INDUSTRY');
$objDocument['INDUSTRY'] = $sources[$objDocument['INDUSTRY']]['NAME'];
break;
case 'SOURCE_ID':
$sources = \CCrmStatus::GetStatus('SOURCE');
$objDocument['SOURCE_ID'] = $sources[$objDocument['SOURCE_ID']]['NAME'];
break;
case 'COMPANY_TYPE':
$types = \CCrmStatus::GetStatus('COMPANY_TYPE');
$objDocument['COMPANY_TYPE'] = $types[$objDocument['COMPANY_TYPE']]['NAME'];
break;
case 'TYPE_ID':
$types = \CCrmStatus::GetStatus('CONTACT_TYPE');
$objDocument['TYPE_ID'] = $types[$objDocument['TYPE_ID']]['NAME'];
break;
case 'STATUS_ID':
$statuses = \CCrmStatus::GetStatus('STATUS');
$objDocument['STATUS_ID'] = $statuses[$objDocument['STATUS_ID']]['NAME'];
break;
case 'EMPLOYEES':
$employees = \CCrmStatus::GetStatus('EMPLOYEES');
$objDocument['EMPLOYEES'] = $employees[$objDocument['EMPLOYEES']]['NAME'];
break;
}
}