• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/merger/contactmerger.php
  • Класс: Bitrix\Crm\Merger\ContactMerger
  • Вызов: ContactMerger::rebind
protected function rebind($seedID, $targID)
{
	$seedID = (int)$seedID;
	$targID = (int)$targID;

	//Skip companies if they were processed by map
	if(!($this->map !== null && isset($this->map['COMPANY_IDS'])))
	{
		Binding\ContactCompanyTable::rebindAllCompanies($seedID, $targID);
	}

	$relations = \Bitrix\Crm\Service\Container::getInstance()
		->getRelationManager()
		->getChildRelations(\CCrmOwnerType::Contact)
	;
	$itemFrom = new Crm\ItemIdentifier(\CCrmOwnerType::Contact, $seedID);
	$itemTo = new Crm\ItemIdentifier(\CCrmOwnerType::Contact, $targID);
	foreach ($relations as $relation)
	{
		$relation->replaceAllItemBindings($itemFrom, $itemTo);
	}

	\CCrmActivity::Rebind(\CCrmOwnerType::Contact, $seedID, $targID);
	\CCrmLiveFeed::Rebind(\CCrmOwnerType::Contact, $seedID, $targID);
	\CCrmSonetRelation::RebindRelations(\CCrmOwnerType::Contact, $seedID, $targID);
	\CCrmEvent::Rebind(\CCrmOwnerType::Contact, $seedID, $targID);
	EntityRequisite::rebind(\CCrmOwnerType::Contact, $seedID, $targID);

	Timeline\ActivityEntry::rebind(\CCrmOwnerType::Contact, $seedID, $targID);
	Timeline\CreationEntry::rebind(\CCrmOwnerType::Contact, $seedID, $targID);
	Timeline\MarkEntry::rebind(\CCrmOwnerType::Contact, $seedID, $targID);
	Timeline\CommentEntry::rebind(\CCrmOwnerType::Contact, $seedID, $targID);
	Timeline\LogMessageEntry::rebind(\CCrmOwnerType::Contact, $seedID, $targID);

	Crm\Tracking\Entity::rebindTrace(
		\CCrmOwnerType::Contact, $seedID,
		\CCrmOwnerType::Contact, $targID
	);
}