• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/volume/invoice.php
  • Класс: Bitrix\Crm\Volume\Invoice
  • Вызов: Invoice::registerStageField
static function registerStageField(ORM\Query\Query $query, $sourceAlias = '', $fieldAlias = 'STAGE_SEMANTIC_ID')
{
	// STAGE_SEMANTIC_ID
	$caseSql = '';
	$stageStatusMirror = self::getStatusSemantics();
	foreach ($stageStatusMirror as $stageId => $statusList)
	{
		foreach ($statusList as $statusId)
		{
			$caseSql .= " WHEN '{$statusId}' THEN '{$stageId}' ";
		}
	}
	$stageField = new ORM\Fields\ExpressionField(
		$fieldAlias,
		"CASE %s {$caseSql} ELSE NULL END",
		($sourceAlias != '' ? "{$sourceAlias}.STATUS_ID" : 'STATUS_ID')
	);

	$query->registerRuntimeField($stageField);
}