• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/contact.php
  • Класс: BitrixSenderContactTable
  • Вызов: ContactTable::addIfNotExist
static function addIfNotExist(array $ar)
{
	$id = false;
	$listId = false;

	if(array_key_exists('LIST_CODE', $ar) && array_key_exists('LIST_NAME', $ar))
	{
		$listId = ListTable::addIfNotExist($ar['LIST_CODE'], $ar['LIST_NAME']);
		unset($ar['LIST_CODE'], $ar['LIST_NAME']);
	}

	$ar['EMAIL'] = mb_strtolower($ar['EMAIL']);
	$contactDb = ContactTable::getList(array(
		'select' => array('ID'),
		'filter' => array(
			'=CODE' => $ar['EMAIL'],
			'=TYPE_ID' => RecipientType::EMAIL
		)
	));
	if($contact = $contactDb->fetch())
	{
		$id = $contact['ID'];
	}
	else
	{
		$ar['TYPE_ID'] = RecipientType::EMAIL;
		$ar['CODE'] = $ar['EMAIL'];
		unset($ar['EMAIL']);

		$resultAdd = static::add($ar);
		if($resultAdd->isSuccess())
			$id = $resultAdd->getId();
	}

	if($listId && $id)
	{
		ContactListTable::addIfNotExist($id, $listId);
	}

	return $id;
}