Configurable::validateFields

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Configurable
  4. validateFields
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/activity/configurable.php
  • Класс: Bitrix\Crm\Controller\Activity\Configurable
  • Вызов: Configurable::validateFields
private function validateFields(?array $fields): Result
{
	$result = new Result();
	$allowedBooleanValues = array_merge(
		self::VALID_TRUE_VALUES,
		self::VALID_FALSE_VALUES
	);

	if (isset($fields['completed']) && !in_array($fields['completed'], $allowedBooleanValues, true))
	{
		$this->addWrongFieldValueError('completed', $result);
	}

	if (isset($fields['isIncomingChannel']) && !in_array($fields['isIncomingChannel'], $allowedBooleanValues, true))
	{
		$this->addWrongFieldValueError('isIncomingChannel', $result);
	}

	if (isset($fields['isIncomingChannel']) && isset($fields['deadline']) && !empty($fields['deadline']) && $this->castToBool($fields['isIncomingChannel']))
	{
		$result->addError(new Error(
			(string)Loc::getMessage('CRM_CONFIGURABLE_REST_APP_INCOMING_NO_DEADLINE'),
			'INCOMING_ACTIVITY_CAN_NOT_BE_WITH_DEADLINE'
		));
	}

	if (isset($fields['pingOffsets']))
	{
		if (!is_array($fields['pingOffsets']))
		{
			$this->addWrongFieldValueError('pingOffsets', $result);
		}
		else
		{
			foreach ($fields['pingOffsets'] as $index => $pingOffsetValue)
			{
				if (!is_scalar($pingOffsetValue) || (int)$pingOffsetValue < 0)
				{
					$this->addWrongFieldValueError("pingOffsets[$index]", $result);
				}
			}
		}
	}

	if (isset($fields['responsibleId']) && (int)$fields['responsibleId'] <= 0)
	{
		$this->addWrongFieldValueError('responsibleId', $result);
	}

	if (
		isset($fields['badgeCode'])
		&& $fields['badgeCode'] !== ''
		&& !\Bitrix\Crm\Badge\Model\CustomBadgeTable::query()
			->setSelect(['ID'])
			->where('CODE', (string)$fields['badgeCode'])
			->setLimit(1)
			->fetch()
	)
	{
		$this->addWrongFieldValueError('badgeCode', $result);
	}

	return $result;
}

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