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

	$relations = \Bitrix\Crm\Service\Container::getInstance()
		->getRelationManager()
		->getChildRelations(\CCrmOwnerType::Company)
	;
	$itemFrom = new Crm\ItemIdentifier(\CCrmOwnerType::Company, $seedID);
	$itemTo = new Crm\ItemIdentifier(\CCrmOwnerType::Company, $targID);
	foreach ($relations as $relation)
	{
		if (
			($relation->getChildEntityTypeId() === \CCrmOwnerType::Contact)
			&& $this->map !== null
			&& isset($this->map['CONTACT_ID'])
		)
		{
			//Skip contacts if they were processed by map
			continue;
		}

		$relation->replaceAllItemBindings($itemFrom, $itemTo);
	}

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

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

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