• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/basetype/select.php
  • Класс: BitrixBizprocBaseTypeSelect
  • Вызов: Select::convertTo
static function convertTo(FieldType $fieldType, $value, $toTypeClass)
{
	/** @var Base $toTypeClass */
	$type = $toTypeClass::getType();
	$options = static::getFieldOptions($fieldType);

	$key = $originalValue = $value;
	if (is_array($value))
	{
		foreach($value as $k => $v)
		{
			$key = $k;
			$originalValue = $v;
		}
	}
	elseif (isset($options[$key]))
	{
		$originalValue = $options[$value];
	}

	switch ($type)
	{
		case FieldType::BOOL:
			$value = mb_strtolower((string)$key);
			$value = in_array($value, array('y', 'yes', 'true', '1')) ? 'Y' : 'N';
			break;
		case FieldType::DOUBLE:
			$value = str_replace(' ', '', str_replace(',', '.', $key));
			$value = (float)$value;
			break;
		case FieldType::INT:
			$value = str_replace(' ', '', $key);
			$value = (int)$value;
			break;
		case FieldType::STRING:
		case FieldType::TEXT:
			$value = (string) $originalValue;
			break;
		case FieldType::SELECT:
		case FieldType::INTERNALSELECT:
			$value = (string) $key;
			break;
		case FieldType::USER:
			$value = trim($key);
			if (mb_strpos($value, 'user_') === false
				&& mb_strpos($value, 'group_') === false
				&& !preg_match('#^[0-9]+$#', $value)
			)
			{
				$value = null;
			}
			break;
		default:
			$value = null;
	}

	return $value;
}