• Модуль: 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;
}