- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice_invoice.php
- Класс: \CCrmRestVat
- Вызов: CCrmRestVat::prepareFilter
static function prepareFilter($arFilter)
{
if(!is_array($arFilter))
{
$arFilter = array();
}
else
{
$fieldsInfo = self::getFieldsInfo();
$arAllowedFilterFields = array();
foreach ($fieldsInfo as $fieldName => $fieldInfo)
{
if ($fieldInfo['filter'] === true)
$arAllowedFilterFields[] = $fieldName;
}
if (count($arFilter) > 0)
{
$arFilter = array_change_key_case($arFilter, CASE_UPPER);
foreach ($arFilter as $key => $value)
{
$matches = array();
if(preg_match('/^([^a-zA-Z]*)(.*)/', $key, $matches))
{
$operation = $matches[1];
$field = $matches[2];
if(!in_array($field, $arAllowedFilterFields, true)
|| !in_array($operation, self::$arAllowedFilterOperations, true))
{
unset($arFilter[$key]);
}
else
{
switch ($fieldsInfo[$field]['type'])
{
case 'datetime':
$arFilter[$key] = CRestUtil::unConvertDateTime($value, true);
break;
case 'date':
$arFilter[$key] = CRestUtil::unConvertDate($value);
break;
default:
break;
}
}
}
else
{
unset($arFilter[$key]);
}
}
}
}
return $arFilter;
}