Entity::getSchemesByInvoice

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Entity
  4. getSchemesByInvoice
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/entity.php
  • Класс: Bitrix\Crm\WebForm\Entity
  • Вызов: Entity::getSchemesByInvoice
static function getSchemesByInvoice($selectedSchemeId = null, $allowedEntitySchemes = null)
{
	$result = [
		'HAS_DEAL' => false,
		'HAS_DYNAMIC' => false,
		'HAS_INVOICE' => false,
		'SELECTED_DESCRIPTION' => '',
		'BY_INVOICE' => [],
		'BY_NON_INVOICE' => [],
	];
	$schemes = self::getSchemes();
	$previousSchemeId = null;
	foreach ($schemes as $schemeId => $scheme)
	{
		if (!$selectedSchemeId)
		{
			$selectedSchemeId = $schemeId;
		}

		$scheme['ID'] = $schemeId;
		$scheme['SELECTED'] = false;
		$scheme['DISABLED'] = (!empty($allowedEntitySchemes) && !in_array($schemeId, $allowedEntitySchemes));

		$hasDeal = in_array(\CCrmOwnerType::DealName, $scheme['ENTITIES']);
		$hasInvoice = in_array(\CCrmOwnerType::InvoiceName, $scheme['ENTITIES']);
		$searchSchemeId = $hasInvoice ? $previousSchemeId : $schemeId;

		$section = $hasInvoice ? 'BY_INVOICE' : 'BY_NON_INVOICE';
		$result[$section][$searchSchemeId] = $scheme;
		$previousSchemeId = $schemeId;

		if ($schemeId == $selectedSchemeId)
		{
			$result['SELECTED_ID'] = $selectedSchemeId;
			$result['HAS_DEAL'] = $hasDeal;
			$result['HAS_INVOICE'] = $hasInvoice;
			$result['HAS_DYNAMIC'] = $scheme['DYNAMIC'];
			$result['BY_NON_INVOICE'][$searchSchemeId]['SELECTED'] = true;
			$result['SELECTED_DESCRIPTION'] = $scheme['DESCRIPTION'];
		}
	}

	return $result;
}

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