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

	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 ($ID===false && !is_set($arFields, "COURSE_ID"))
	{
		$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_COURSE_ID"), "ERROR_EMPTY_COURSE_ID");
		return false;
	}
	elseif (is_set($arFields, "COURSE_ID"))
	{
		if ($bCheckRights)
			$r = CCourse::GetByID($arFields["COURSE_ID"]);
		else
			$r = CCourse::GetList(Array(),Array("ID" => $arFields["COURSE_ID"], 'CHECK_PERMISSIONS' => 'N'));

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

	if (is_set($arFields, "STUDENT_ID") && is_set($arFields, "COURSE_ID"))
	{
		$res = CCertification::GetList(Array(), Array("STUDENT_ID" => $arFields["STUDENT_ID"], "COURSE_ID" => $arFields["COURSE_ID"]));
		if ($res->Fetch())
		{
			$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_CERTIFICATE_DUPLICATE"), "ERROR_CERTIFICATE_DUPLICATE");
			return false;
		}
	}

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

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

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

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

	return true;
}