• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/volume/invoice.php
  • Класс: Bitrix\Crm\Volume\Invoice
  • Вызов: Invoice::prepareFilter
public function prepareFilter(ORM\Query\Query $query)
{
	$isAllValueApplied = true;
	$filter = $this->getFilter();

	foreach ($filter as $key => $value)
	{
		if (empty($value))
		{
			continue;
		}
		$key0 = trim($key, '<>!=');
		if ($key0 == 'STAGE_SEMANTIC_ID' || $key0 == 'INVOICE_STAGE_SEMANTIC_ID')
		{
			$statuses = self::getStatusSemantics($value);
			$query->where('STATUS_ID', 'in', $statuses);
		}
		elseif (isset(static::$filterFieldAlias[$key0]))
		{
			$key1 = str_replace($key0, static::$filterFieldAlias[$key0], $key);
			if (is_array($value))
			{
				$query->where($key1, 'in', $value);
			}
			else
			{
				$query->addFilter($key1, $value);
			}
		}
		else
		{
			$isAllValueApplied = $this->addFilterEntityField($query, $query->getEntity(), $key, $value);
		}
	}

	return $isAllValueApplied;
}