• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recycling/leadrelationmanager.php
  • Класс: Bitrix\Crm\Recycling\LeadRelationManager
  • Вызов: LeadRelationManager::buildCollection
public function buildCollection($entityID, array &$recyclingData)
{
	$companyID = isset($recyclingData['COMPANY_ID']) ? (int)$recyclingData['COMPANY_ID'] : 0;
	unset($recyclingData['COMPANY_ID']);

	$contactIDs = isset($recyclingData['CONTACT_IDS']) && is_array($recyclingData['CONTACT_IDS'])
		? $recyclingData['CONTACT_IDS'] : [];
	unset($recyclingData['CONTACT_IDS']);

	$childContactIDs = isset($recyclingData['CHILD_CONTACT_IDS']) && is_array($recyclingData['CHILD_CONTACT_IDS'])
		? $recyclingData['CHILD_CONTACT_IDS'] : [];
	unset($recyclingData['CHILD_CONTACT_IDS']);

	$childCompanyIDs = isset($recyclingData['CHILD_COMPANY_IDS']) && is_array($recyclingData['CHILD_COMPANY_IDS'])
		? $recyclingData['CHILD_COMPANY_IDS'] : [];
	unset($recyclingData['CHILD_COMPANY_IDS']);

	$childDealIDs = isset($recyclingData['CHILD_DEAL_IDS']) && is_array($recyclingData['CHILD_DEAL_IDS'])
		? $recyclingData['CHILD_DEAL_IDS'] : [];
	unset($recyclingData['CHILD_DEAL_IDS']);

	$childQuoteIds = isset($recyclingData['CHILD_QUOTE_IDS']) && is_array($recyclingData['CHILD_QUOTE_IDS'])
		? $recyclingData['CHILD_QUOTE_IDS'] : [];
	unset($recyclingData['CHILD_QUOTE_IDS']);

	$relations = [];
	$this->prepareActivityRelations(
		\CCrmOwnerType::Lead,
		$entityID,
		$recyclingData,
		$relations
	);

	if($companyID > 0)
	{
		$relations[] = new Relation(
			\CCrmOwnerType::Company,
			$companyID,
			\CCrmOwnerType::Lead,
			$entityID
		);
	}

	if(!empty($contactIDs))
	{
		foreach($contactIDs as $contactID)
		{
			$relations[] = new Relation(
				\CCrmOwnerType::Contact,
				$contactID,
				\CCrmOwnerType::Lead,
				$entityID
			);
		}
	}

	if(!empty($childContactIDs))
	{
		foreach($childContactIDs as $contactID)
		{
			$relations[] = new Relation(
				\CCrmOwnerType::Lead,
				$entityID,
				\CCrmOwnerType::Contact,
				$contactID
			);
		}
	}

	if(!empty($childCompanyIDs))
	{
		foreach($childCompanyIDs as $companyID)
		{
			$relations[] = new Relation(
				\CCrmOwnerType::Lead,
				$entityID,
				\CCrmOwnerType::Company,
				$companyID
			);
		}
	}

	if(!empty($childDealIDs))
	{
		foreach($childDealIDs as $dealID)
		{
			$relations[] = new Relation(
				\CCrmOwnerType::Lead,
				$entityID,
				\CCrmOwnerType::Deal,
				$dealID
			);
		}
	}

	if (!empty($childQuoteIds))
	{
		foreach ($childQuoteIds as $quoteId)
		{
			$relations[] = new Relation(
				\CCrmOwnerType::Lead,
				$entityID,
				\CCrmOwnerType::Quote,
				$quoteId
			);
		}
	}

	return $relations;
}