CCrmRestVat::prepareFilter

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmRestVat
  4. prepareFilter
  • Модуль: 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;
}

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