• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/certification.php
  • Класс: CAllCertification
  • Вызов: CAllCertification::Certificate
static function Certificate($STUDENT_ID, $COURSE_ID, $checkPerms = true)
{
	global $DB;

	$STUDENT_ID = intval($STUDENT_ID);
	$COURSE_ID = intval($COURSE_ID);

	if ($STUDENT_ID < 1 || $COURSE_ID < 1)
		return false;

	if (CCertification::IsCourseCompleted($STUDENT_ID, $COURSE_ID))
	{

		$strSql = "SELECT SUM(G.RESULT) CNT, SUM(G.MAX_RESULT) MAX_CNT FROM b_learn_gradebook G
		INNER JOIN b_learn_test T ON T.ID = G.TEST_ID
		WHERE G.COMPLETED = 'Y' AND G.STUDENT_ID = '".$STUDENT_ID."' AND T.COURSE_ID = '".$COURSE_ID."'";
		$res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); $SUMMARY = $MAX_SUMMARY = 0; if ($ar = $res->Fetch()) { $SUMMARY = $ar["CNT"]; $MAX_SUMMARY = $ar["MAX_CNT"]; } $arFields = array( 'STUDENT_ID' => $STUDENT_ID, 'COURSE_ID' => $COURSE_ID, 'SUMMARY' => &$SUMMARY, 'MAX_SUMMARY' => &$MAX_SUMMARY ); foreach(GetModuleEvents('learning', 'OnBeforeCertificate', true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$arFields))===false) return (false); } $arParams = array(); if ( ! $checkPerms ) $arParams['CHECK_PERMISSIONS'] = 'N'; $strSql = "SELECT ID FROM b_learn_certification WHERE STUDENT_ID = '".$STUDENT_ID."' AND COURSE_ID = '".$COURSE_ID."'"; $res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); if ($ar = $res->Fetch()) { return CCertification::Update($ar["ID"], Array("SUMMARY" => $SUMMARY, "MAX_SUMMARY" => $MAX_SUMMARY, "ACTIVE" => "Y"), $arParams); } else { $arFields = Array( "STUDENT_ID" => $STUDENT_ID, "COURSE_ID" => $COURSE_ID, "SUMMARY" => $SUMMARY, "MAX_SUMMARY" => $MAX_SUMMARY, "~DATE_CREATE" => CDatabase::CurrentTimeFunction(), ); $ID = CCertification::Add($arFields, $arParams); return ($ID > 0); } } return false; }