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