- Модуль: 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;
}