- Модуль: form
- Путь к файлу: ~/bitrix/modules/form/classes/general/form_callformresult.php
- Класс: CAllFormResult
- Вызов: CAllFormResult::Reset
static function Reset($RESULT_ID, $DELETE_FILES=true, $DELETE_ADDITIONAL="N", $arrException=array())
{
global $DB, $strError;
$err_mess = (CAllFormResult::err_mess())."
Function: Reset
Line: ";
$RESULT_ID = intval($RESULT_ID);
$strExc = '';
if (is_array($arrException) && count($arrException)>0)
{
foreach ($arrException as $field_id)
{
$strExc .= ($strExc === '' ? '' : "','").intval($field_id);
}
}
if ($DELETE_FILES)
{
$sqlExc = "";
if ($strExc <> '') $sqlExc = " and FIELD_ID not in ('$strExc') ";
// delete result files
$strSql = "SELECT USER_FILE_ID, ANSWER_ID FROM b_form_result_answer WHERE RESULT_ID='$RESULT_ID' and USER_FILE_ID>0 $sqlExc";
$z = $DB->Query($strSql, false, $err_mess.__LINE__);
while ($zr = $z->Fetch()) CFile::Delete($zr["USER_FILE_ID"]);
}
if ($DELETE_ADDITIONAL=="Y")
{
$sqlExc = "";
if ($strExc <> '') $sqlExc = " and FIELD_ID not in ('$strExc') ";
$DB->Query("DELETE FROM b_form_result_answer WHERE RESULT_ID='$RESULT_ID' $sqlExc", false, $err_mess.__LINE__);
}
else
{
$sqlExc = "";
if ($strExc <> '') $sqlExc = "and F.ID not in ('".$strExc."'')";
$strSql = "
SELECT
F.ID
FROM
b_form_result R,
b_form_field F
WHERE
R.ID = $RESULT_ID
and F.FORM_ID = R.FORM_ID
and F.ADDITIONAL = 'N'
$sqlExc
";
$z = $DB->Query($strSql, false, $err_mess.__LINE__);
while ($zr=$z->Fetch()) $arrD[] = $zr["ID"];
if (is_array($arrD) && count($arrD)>0) $strD = implode(",",$arrD);
if ($strD <> '')
{
$DB->Query("DELETE FROM b_form_result_answer WHERE RESULT_ID='$RESULT_ID' and FIELD_ID in ($strD)", false, $err_mess.__LINE__);
}
}
return true;
}