- Модуль: 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
);
}