OutlookCsvFileImport::prepareContact

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. OutlookCsvFileImport
  4. prepareContact
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/import/outlookcsvfileimport.php
  • Класс: Bitrix\Crm\Import\OutlookCsvFileImport
  • Вызов: OutlookCsvFileImport::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($this->getFiledAlias('FIRST_NAME'), 'NAME', $data, $result, $map, true);
	$this->tryToMapField($this->getFiledAlias('MIDDLE_NAME'), 'SECOND_NAME', $data, $result, $map, true);
	$this->tryToMapField($this->getFiledAlias('LAST_NAME'), 'LAST_NAME', $data, $result, $map, true);
	$this->tryToMapField($this->getFiledAlias('JOB_TITLE'), 'POST', $data, $result, $map, true);
	$this->tryToMapField($this->getFiledAlias('COMPANY'), 'COMPANY_TITLE', $data, $result, $map, true);
	$this->tryToMapField($this->getFiledAlias('NOTES'), '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']);
		if($valueType === 'BUSINESS')
		{
			$valueType = 'WORK';
		}
		if($valueType !== 'MOBILE' && $valueType !== 'FAX'
			&& $valueType !== 'HOME' && $valueType !== 'HOME'
			&& $valueType !== 'PAGER' && $valueType !== 'OTHER')
		{
			$valueType = 'OTHER';
		}
		$this->addMultifieldValue('PHONE', $valueType, $phoneInfo['VALUE'], $result);
	}
	unset($phoneInfo);

	$webPageUrl = '';
	if($this->tryToGetValue($this->getFiledAlias('WEB_PAGE'), $data, $webPageUrl, $map, true) && $webPageUrl !== '')
	{
		$result['WEB_WORK'] = $webPageUrl;
	}

	$addressInfos = $this->getAddresses($data);
	if(isset($addressInfos['Business']))
	{
		$result['ADDRESS'] = $this->formatAddress($addressInfos['Business']);
	}
	elseif(isset($addressInfos['Home']))
	{
		$result['ADDRESS'] = $this->formatAddress($addressInfos['Home']);
	}
	elseif(isset($addressInfos['Other']))
	{
		$result['ADDRESS'] = $this->formatAddress($addressInfos['Other']);
	}

	return $result;
}

Добавить комментарий