• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recycling/companyrelationmanager.php
  • Класс: Bitrix\Crm\Recycling\CompanyRelationManager
  • Вызов: CompanyRelationManager::buildCollection
public function buildCollection($entityID, array &$recyclingData)
{
	$contactIDs = isset($recyclingData['CONTACT_IDS']) && is_array($recyclingData['CONTACT_IDS']) ? $recyclingData['CONTACT_IDS'] : array();
	unset($recyclingData['CONTACT_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::Company)
		->buildCollection($relations, $recyclingData);

	$this->prepareActivityRelations(
		\CCrmOwnerType::Company,
		$entityID,
		$recyclingData,
		$relations
	);

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

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

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

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

	return $relations;
}