• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/binding/contactcompany.php
  • Класс: Bitrix\Crm\Binding\ContactCompanyTable
  • Вызов: ContactCompanyTable::unbindCompanyIDs
static function unbindCompanyIDs($contactID, array $companyIDs)
{
	$contactID = (int)$contactID;
	if($contactID <= 0)
	{
		throw new Main\ArgumentException('Must be greater than zero', 'contactID');
	}

	$companyIDs = array_filter(array_map('intval', $companyIDs));
	if(empty($companyIDs))
	{
		return;
	}

	$connection = Main\Application::getConnection();

	$values = implode(',', $companyIDs);
	$connection->queryExecute(
		/** @lang text */
		"DELETE FROM b_crm_contact_company WHERE CONTACT_ID = {$contactID} AND COMPANY_ID IN({$values})"
	);

	$connection->queryExecute(
		/** @lang text */
		"UPDATE b_crm_contact SET COMPANY_ID =
		(SELECT MIN(COMPANY_ID) FROM b_crm_contact_company t WHERE t.IS_PRIMARY = 'Y' AND t.CONTACT_ID = b_crm_contact.ID)
		WHERE ID = {$contactID}"
	);
}