- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/import/yahoocsvfileimport.php
- Класс: Bitrix\Crm\Import\YahooCsvFileImport
- Вызов: YahooCsvFileImport::prepareContact
public function prepareContact(&$data)
{
$map = $this->headerMap;
if($map === null)
{
throw new Main\SystemException("Invalid operation. HeaderMap is not assigned.");
}
$result = array();
$this->tryToMapField('First', 'NAME', $data, $result, $map, true);
$this->tryToMapField('Middle', 'SECOND_NAME', $data, $result, $map, true);
$this->tryToMapField('Last', 'LAST_NAME', $data, $result, $map, true);
$this->tryToMapField('Title', 'POST', $data, $result, $map, true);
$this->tryToMapField('Company', 'COMPANY_TITLE', $data, $result, $map, true);
$this->tryToMapField('Comments', 'COMMENTS', $data, $result, $map, true);
$emailInfos = $this->getEmails($data);
foreach($emailInfos as &$emailInfo)
{
$valueType = $emailInfo['VALUE_TYPE'] === 'P' ? 'WORK' : 'OTHER';
$this->addMultifieldValue('EMAIL', $valueType, $emailInfo['VALUE'], $result);
}
unset($emailInfo);
$phoneInfos = $this->getPhones($data);
foreach($phoneInfos as &$phoneInfo)
{
$valueType = mb_strtoupper($phoneInfo['VALUE_TYPE']);
$result["PHONE_{$valueType}"] = $phoneInfo['VALUE'];
}
unset($phoneInfo);
$websiteInfos = $this->getWebsites($data);
foreach($websiteInfos as &$websiteInfo)
{
$valueType = mb_strtoupper($websiteInfo['VALUE_TYPE']);
if($valueType === 'PERSONAL')
{
$valueType = 'HOME';
}
elseif($valueType === 'BUSINESS')
{
$valueType = 'WORK';
}
else
{
$valueType = 'WORK';
}
$this->addMultifieldValue('WEB', $valueType, $websiteInfo['VALUE'], $result);
}
unset($websiteInfo);
$imInfos = $this->getInstantMessengers($data);
foreach($imInfos as $imInfo)
{
$valueType = mb_strtoupper($imInfo['VALUE_TYPE']);
$this->addMultifieldValue('IM', $valueType, $imInfo['VALUE'], $result);
}
unset($imInfo);
$addressInfos = $this->getAddresses($data);
if(isset($addressInfos['Work']))
{
$result['ADDRESS'] = $this->formatAddress($addressInfos['Work']);
}
elseif(isset($addressInfos['Home']))
{
$result['ADDRESS'] = $this->formatAddress($addressInfos['Home']);
}
return $result;
}