DealExist::fillTemplateFields

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. DealExist
  4. fillTemplateFields
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recurring/entity/item/dealexist.php
  • Класс: Bitrix\Crm\Recurring\Entity\Item\DealExist
  • Вызов: DealExist::fillTemplateFields
protected function fillTemplateFields()
{
	global $USER_FIELD_MANAGER;
	$result = new Main\Result();
	$fields = \CCrmDeal::GetByID($this->templateId, false);
	if (empty($fields))
	{
		$result->addError(new Main\Error('Template entity not found'));
		return $result;
	}

	$this->setTemplateFields($fields);
	$dealUserType = new \CCrmUserType($USER_FIELD_MANAGER, \CCrmDeal::GetUserFieldEntityID());
	$userFields = $dealUserType->GetEntityFields($this->templateId);
	foreach ($userFields as $key => $ufField)
	{
		$this->setTemplateField($key, $ufField['VALUE']);
	}

	$dealProducts = \CCrmDeal::LoadProductRows([$this->templateId]);
	$dealProducts = is_array($dealProducts) ? $dealProducts : [];
	$this->setTemplateField('PRODUCT_ROWS', $dealProducts);

	$dealContactIds = [];
	$contactsRawData = DealContactTable::getList([
		'filter' => ['=DEAL_ID' => $this->templateId],
		'select' => ['DEAL_ID', 'CONTACT_ID']
	]);

	while ($contact = $contactsRawData->fetch())
	{
		$dealContactIds[$contact['DEAL_ID']][] = $contact['CONTACT_ID'];
	}
	$this->setTemplateField('CONTACT_IDS', $dealContactIds);

	$observers = ObserverManager::getEntityObserverIDs(\CCrmOwnerType::Deal, $this->templateId);
	if (!empty($observers))
	{
		$this->setTemplateField('OBSERVER_IDS', $observers);
	}

	return $result;
}

Добавить комментарий