• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/builder/orderbuildercrm.php
  • Класс: Bitrix\Crm\Order\Builder\OrderBuilderCrm
  • Вызов: OrderBuilderCrm::setContactCompanyCollection
protected function setContactCompanyCollection()
{
	$client = $this->formData['CLIENT'] ?? [];
	$clientCollection = $this->order->getContactCompanyCollection();
	$clientCollection->clearCollection();

	if ((int)($client['COMPANY_ID'] ?? 0) > 0)
	{
		/** @var \Bitrix\Crm\Order\Company $company */
		$company = $clientCollection->createCompany();
		$company->setFields([
			'ENTITY_ID' => $client['COMPANY_ID'],
			'IS_PRIMARY' => 'Y'
		]);
	}

	if (!empty($client['CONTACT_IDS']) && is_array($client['CONTACT_IDS']))
	{
		$contactIds = array_unique($client['CONTACT_IDS']);
		$firstKey = key($contactIds);
		foreach ($contactIds as $key => $itemId)
		{
			if ($itemId > 0)
			{
				$contact = $clientCollection->createContact();
				$contact->setFields([
					'ENTITY_ID' => $itemId,
					'IS_PRIMARY' => ($key === $firstKey) ? 'Y' : 'N'
				]);
			}
		}
	}

	$requisites = [];
	if (isset($this->formData['REQUISITE_ID']) && (int)($this->formData['REQUISITE_ID']) > 0)
	{
		$requisites['REQUISITE_ID'] = (int)($this->formData['REQUISITE_ID']);
	}

	if (isset($this->formData['BANK_DETAIL_ID']) && (int)($this->formData['BANK_DETAIL_ID'])> 0)
	{
		$requisites['BANK_DETAIL_ID'] = (int)($this->formData['BANK_DETAIL_ID']);
	}

	if (!empty($requisites))
	{
		$this->order->setRequisiteLink($requisites);
	}

	return $this;
}