Example #1
0
 /**
  * <p>Удаляет запись с кодом ID из таблицы курсов валют. Если удаляется несуществующий курс (нет курса с таким ID) - будет ошибка. </p> <p>В случае успеха сбросится кеш <b>currency_rate</b> и тэгированный <b>currency_id_КОД_ВАЛЮТЫ</b>.</p>
  *
  *
  *
  *
  * @param int $ID  Код записи для удаления.
  *
  *
  *
  * @return bool <p>Возвращает значение <i>True</i> в случае успешного добавления и
  * <i>False</i> - в противном случае. Текст ошибки выводится с помощью
  * <code>$APPLICATION-&gt;GetException</code>.</p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/currency/developer/ccurrencyrates/ccurrencyrates__delete.28de3643.php
  * @author Bitrix
  */
 public static function Delete($ID)
 {
     global $DB;
     global $stackCacheManager;
     global $APPLICATION;
     $ID = (int) $ID;
     if ($ID <= 0) {
         return false;
     }
     foreach (GetModuleEvents("currency", "OnBeforeCurrencyRateDelete", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID)) === false) {
             return false;
         }
     }
     $arFields = CCurrencyRates::GetByID($ID);
     if (!is_array($arFields)) {
         $arMsg = array('id' => 'ID', 'text' => GetMessage('BT_MOD_CURR_ERR_RATE_CANT_DELETE_ABSENT_ID'));
         $e = new CAdminException($arMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     $stackCacheManager->Clear("currency_rate");
     $strSql = "DELETE FROM b_catalog_currency_rate WHERE ID = " . $ID;
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     CCurrency::updateCurrencyBaseRate($arFields['CURRENCY']);
     CCurrency::clearTagCache($arFields['CURRENCY']);
     foreach (GetModuleEvents("currency", "OnCurrencyRateDelete", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID));
     }
     return true;
 }