- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/crm/reader.php
- Класс: BitrixImOpenLinesCrmReader
- Вызов: Reader::extractFields
private function extractFields(): array
{
$extractedFields = [
'FIRST_NAME' => null,
'LAST_NAME' => null,
'PHONE' => null,
'EMAIL' => null
];
$entityToExtract = null;
$isDefaultName = false;
if (isset($this->result[CCrmOwnerType::Lead]))
{
// first lead
$entityToExtract = array_values($this->result[CCrmOwnerType::Lead])[0];
}
else if (isset($this->result[CCrmOwnerType::Contact]))
{
// first contact
$entityToExtract = array_values($this->result[CCrmOwnerType::Contact])[0];
if (
$entityToExtract
&& isset($entityToExtract['NAME'])
&& CAllCrmContact::isDefaultName($entityToExtract['NAME'])
)
{
$isDefaultName = true;
}
}
if (!$entityToExtract)
{
return $extractedFields;
}
if ($entityToExtract['NAME'] !== '' && !$isDefaultName)
{
$extractedFields['FIRST_NAME'] = $entityToExtract['NAME'];
}
if ($entityToExtract['LAST_NAME'] !== '')
{
$extractedFields['LAST_NAME'] = $entityToExtract['LAST_NAME'];
}
if (isset($entityToExtract['FM']) && !empty($entityToExtract['FM']))
{
$phoneFieldKey = array_search('PHONE', array_column($entityToExtract['FM'], 'TYPE_ID'), true);
if (is_numeric($phoneFieldKey))
{
$extractedFields['PHONE'] = $entityToExtract['FM'][$phoneFieldKey]['VALUE'];
}
$emailFieldKey = array_search('EMAIL', array_column($entityToExtract['FM'], 'TYPE_ID'), true);
if (is_numeric($emailFieldKey))
{
$extractedFields['EMAIL'] = $entityToExtract['FM'][$emailFieldKey]['VALUE'];
}
}
return $extractedFields;
}