- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/recycling/contactrelationmanager.php
- Класс: Bitrix\Crm\Recycling\ContactRelationManager
- Вызов: ContactRelationManager::buildCollection
public function buildCollection($entityID, array &$recyclingData)
{
$companyIDs = isset($recyclingData['COMPANY_IDS']) && is_array($recyclingData['COMPANY_IDS'])
? $recyclingData['COMPANY_IDS'] : array();
unset($recyclingData['COMPANY_IDS']);
$dealIDs = isset($recyclingData['DEAL_IDS']) && is_array($recyclingData['DEAL_IDS'])
? $recyclingData['DEAL_IDS'] : array();
unset($recyclingData['DEAL_IDS']);
$leadIDs = isset($recyclingData['LEAD_IDS']) && is_array($recyclingData['LEAD_IDS'])
? $recyclingData['LEAD_IDS'] : array();
unset($recyclingData['LEAD_IDS']);
$parentLeadID = isset($recyclingData['PARENT_LEAD_ID']) ? $recyclingData['PARENT_LEAD_ID'] : 0;
unset($recyclingData['PARENT_LEAD_ID']);
$relations = [];
DynamicBinderManager::getInstance()
->configure($entityID, \CCrmOwnerType::Contact)
->buildCollection($relations, $recyclingData);
$this->prepareActivityRelations(
\CCrmOwnerType::Contact,
$entityID,
$recyclingData,
$relations
);
if(!empty($companyIDs))
{
foreach($companyIDs as $companyID)
{
$relations[] = new Relation(
\CCrmOwnerType::Company,
$companyID,
\CCrmOwnerType::Contact,
$entityID
);
}
}
if(!empty($dealIDs))
{
foreach($dealIDs as $dealID)
{
$relations[] = new Relation(
\CCrmOwnerType::Contact,
$entityID,
\CCrmOwnerType::Deal,
$dealID
);
}
}
if(!empty($leadIDs))
{
foreach($leadIDs as $leadID)
{
$relations[] = new Relation(
\CCrmOwnerType::Contact,
$entityID,
\CCrmOwnerType::Lead,
$leadID
);
}
}
if($parentLeadID > 0)
{
$relations[] = new Relation(
\CCrmOwnerType::Lead,
$parentLeadID,
\CCrmOwnerType::Contact,
$entityID
);
}
return $relations;
}