• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/taskservice.php
  • Класс: CBPTaskService
  • Вызов: CBPTaskService::parseFields
static function parseFields(&$arFields, $id = 0)
{
	global $DB;

	$id = intval($id);
	$updateMode = ($id > 0 ? true : false);
	$addMode = !$updateMode;

	if ($addMode && !is_set($arFields, "USERS"))
		throw new Exception("USERS");

	if (is_set($arFields, "USERS"))
	{
		$arUsers = $arFields["USERS"];
		if (!is_array($arUsers))
			$arUsers = array($arUsers);

		$arFields["USERS"] = array();
		foreach ($arUsers as $userId)
		{
			$userId = intval($userId);
			if ($userId > 0 && !in_array($userId, $arFields["USERS"]))
				$arFields["USERS"][] = $userId;
		}

		if (count($arFields["USERS"]) <= 0)
			throw new Exception(GetMessage("BPTS_AI_AR_USERS"));
	}

	if (is_set($arFields, "WORKFLOW_ID") || $addMode)
	{
		$arFields["WORKFLOW_ID"] = trim($arFields["WORKFLOW_ID"]);
		if ($arFields["WORKFLOW_ID"] == '')
			throw new Exception("WORKFLOW_ID");
	}

	if (is_set($arFields, "ACTIVITY") || $addMode)
	{
		$arFields["ACTIVITY"] = trim($arFields["ACTIVITY"]);
		if ($arFields["ACTIVITY"] == '')
			throw new Exception("ACTIVITY");
	}

	if (is_set($arFields, "ACTIVITY_NAME") || $addMode)
	{
		$arFields["ACTIVITY_NAME"] = trim($arFields["ACTIVITY_NAME"]);
		if ($arFields["ACTIVITY_NAME"] == '')
			throw new Exception("ACTIVITY_NAME");
	}

	if (is_set($arFields, "NAME") || $addMode)
	{
		$arFields["NAME"] = is_scalar($arFields["NAME"]) ? trim($arFields["NAME"]) : '';
		if ($arFields["NAME"] == '')
			throw new Exception("NAME");

		$arFields["NAME"] = htmlspecialcharsback($arFields["NAME"]);
	}

	if (is_set($arFields, "DESCRIPTION"))
	{
		$arFields["DESCRIPTION"] = htmlspecialcharsback(CBPHelper::stringify($arFields["DESCRIPTION"]));
	}

	if (is_set($arFields, "PARAMETERS"))
	{
		if ($arFields["PARAMETERS"] == null)
		{
			$arFields["PARAMETERS"] = false;
		}
		else
		{
			$arParameters = $arFields["PARAMETERS"];
			if (!is_array($arParameters))
				$arParameters = array($arParameters);
			if (count($arParameters) > 0)
				$arFields["PARAMETERS"] = serialize($arParameters);
		}
	}

	if (is_set($arFields, "OVERDUE_DATE"))
	{
		if ($arFields["OVERDUE_DATE"] == null)
			$arFields["OVERDUE_DATE"] = false;
		elseif (!$DB->IsDate($arFields["OVERDUE_DATE"], false, LANG, "FULL"))
			throw new Exception("OVERDUE_DATE");
	}
}