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