- Модуль: 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");
}
}