• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/basetype/stringtype.php
  • Класс: BitrixBizprocBaseTypeStringType
  • Вызов: StringType::convertTo
static function convertTo(FieldType $fieldType, $value, $toTypeClass)
{
	/** @var Base $toTypeClass */
	$type = $toTypeClass::getType();
	switch ($type)
	{
		case FieldType::BOOL:
			$value = mb_strtolower((string)$value);
			$value = in_array($value, ['y', 'yes', 'true', '1']) ? 'Y' : 'N';
			break;
		case FieldType::DATE:
		case FieldType::DATETIME:
			$value = (string)$value;

			if (BizprocBaseTypeValueDateTime::isSerialized($value))
			{
				break;
			}

			if ($value)
			{
				$format = ($type == FieldType::DATE) ? FORMAT_DATE : FORMAT_DATETIME;
				if (CheckDateTime($value, $format))
				{
					$value = date(
						MainTypeDate::convertFormatToPhp($format),
						CBPHelper::makeTimestamp($value, $format)
					);
				}
				else
				{
					$value = date(MainTypeDate::convertFormatToPhp($format), strtotime($value));
				}
			}
			break;
		case FieldType::DOUBLE:
			$value = str_replace(' ', '', str_replace(',', '.', $value));
			$value = (float)$value;
			break;
		case FieldType::INT:
			$value = str_replace(' ', '', $value);
			$value = (int)$value;
			break;
		case FieldType::STRING:
		case FieldType::TEXT:
			$value = (string)$value;
			break;
		case FieldType::USER:
			$value = trim($value);
			if (
				mb_strpos($value, 'user_') === false
				&& mb_strpos($value, 'group_') === false
				&& !preg_match('#^[0-9]+$#', $value)
			)
			{
				$value = null;
			}
			break;
		case FieldType::TIME:
			$value = trim((string)$value);

			$value =
				BizprocBaseTypeValueTime::isCorrect($value)
					? (string)(new BizprocBaseTypeValueTime($value))
					: null
			;

			break;
		default:
			$value = null;
	}

	return $value;
}