• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/attempt.php
  • Класс: CAllTestAttempt
  • Вызов: CAllTestAttempt::CheckFields
public function CheckFields(&$arFields, $ID = false, $bCheckRights = true)
{
	global $DB, $APPLICATION;

	if ($ID===false && !is_set($arFields, "TEST_ID"))
	{
		$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID"), "EMPTY_TEST_ID");
		return false;
	}
	elseif (is_set($arFields, "TEST_ID"))
	{
		if ($bCheckRights)
			$r = CTest::GetByID($arFields["TEST_ID"]);
		else
		{
			$r = CTest::getList(
				array(),
				array(
					'ID'                => $arFields['TEST_ID'],
					'CHECK_PERMISSIONS' => 'N'
				)
			);
		}

		if(!$r->Fetch())
		{
			$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID_EX"), "ERROR_NO_TEST_ID");
			return false;
		}
	}

	if ($ID===false && !is_set($arFields, "STUDENT_ID"))
	{
		$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_STUDENT_ID");
		return false;
	}
	elseif (is_set($arFields, "STUDENT_ID"))
	{
		$dbResult = CUser::GetByID($arFields["STUDENT_ID"]);
		if (!$dbResult->Fetch())
		{
			$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_STUDENT_ID");
			return false;
		}
	}

	if (is_set($arFields, "DATE_START") &&  (!$DB->IsDate($arFields["DATE_START"], false, LANG, "FULL")))
	{
		$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_DATE_START"), "ERROR_DATE_START");
		return false;
	}

	if (is_set($arFields, "DATE_END") && $arFields["DATE_END"] <> '' && (!$DB->IsDate($arFields["DATE_END"], false, LANG, "FULL")))
	{
		$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_DATE_END"), "ERROR_DATE_END");
		return false;
	}

	//Defaults
	if (is_set($arFields, "STATUS") && !in_array($arFields["STATUS"], Array("B", "D", "F", "N")))
		$arFields["STATUS"] = "B";

	if (is_set($arFields, "COMPLETED") && $arFields["COMPLETED"] != "Y")
		$arFields["COMPLETED"] = "N";

	return true;
}