- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/gradebook.php
- Класс: CAllGradeBook
- Вызов: CAllGradeBook::RecountAttempts
static function RecountAttempts($STUDENT_ID,$TEST_ID)
{
global $DB;
$STUDENT_ID = intval($STUDENT_ID);
$TEST_ID = intval($TEST_ID);
if ($TEST_ID < 1 || $STUDENT_ID < 1)
return false;
$strSql = "SELECT ID FROM b_learn_gradebook G WHERE STUDENT_ID = '".$STUDENT_ID."' AND TEST_ID = '".$TEST_ID."' ";
$res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
if (!$arG = $res->Fetch())
{
$ID = CGradeBook::Add(Array(
"STUDENT_ID" => $STUDENT_ID,
"TEST_ID" => $TEST_ID,
"RESULT" => "0",
"MAX_RESULT" => "0",
"COMPLETED" => "N"
));
return ($ID > 0);
}
$strSql = "SELECT SCORE, MAX_SCORE, COMPLETED ".
"FROM b_learn_attempt ".
"WHERE STUDENT_ID = '".$STUDENT_ID."' AND TEST_ID = '".$TEST_ID."' ".
"ORDER BY COMPLETED DESC, SCORE DESC ";
$res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
$res->NavStart();
if (intval($res->SelectedRowsCount()) == 0)
{
$strSql = "DELETE FROM b_learn_gradebook WHERE ID = ".$arG["ID"];
if (!$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__))
return false;
return true;
}
if (!$ar = $res->Fetch())
return false;
$strSql = "UPDATE b_learn_gradebook SET ATTEMPTS = '".intval($res->SelectedRowsCount())."', COMPLETED = '".$ar["COMPLETED"]."', RESULT = '".intval($ar["SCORE"])."' , MAX_RESULT = '".intval($ar["MAX_SCORE"])."' WHERE STUDENT_ID = '".$STUDENT_ID."' AND TEST_ID = '".$TEST_ID."' ";
if (!$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__))
return false;
return true;
}