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

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

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

	$values = implode(',', $contactIDs);
	$connection->queryExecute(
		/** @lang text */
		"DELETE FROM b_crm_contact_company WHERE COMPANY_ID = {$companyID} AND CONTACT_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.CONTACT_ID = b_crm_contact.ID)
		WHERE COMPANY_ID = {$companyID} AND ID IN({$values})"
	);
}