本文整理汇总了PHP中CCurrencyRates::CheckFields方法的典型用法代码示例。如果您正苦于以下问题:PHP CCurrencyRates::CheckFields方法的具体用法?PHP CCurrencyRates::CheckFields怎么用?PHP CCurrencyRates::CheckFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCurrencyRates
的用法示例。
在下文中一共展示了CCurrencyRates::CheckFields方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Update
/**
* <p>Функция обновляет параметры записи в таблице курсов валют на значения из массива <i>arFields</i>. Перед обновлением выполняется проверка, нет ли курса этой валюты на эту дату с другим ID. Если есть - то произойдет ошибка.</p> <p>В случае успешного обновления сбрасываются кеш <b>currency_rate</b> и тэгированный кеш <b>currency_id_КОД_ВАЛЮТЫ</b>.</p>
*
*
*
*
* @param int $ID Код записи.
*
*
*
* @param array $arFields <p>Ассоциативный массив новых параметров курса валюты, ключами
* которого являются названия параметров, а значениями - значения
* параметров.</p> <p>Допустимые ключи:</p> <ul> <li>CURRENCY - код валюты
* (обязательный);</li> <li>DATE_RATE - дата БЕЗ ВРЕМЕНИ, за которую
* устанавливается курс (обязательный);</li> <li>RATE_CNT - количество
* единиц валюты, которое участвует в задании курса валюты
* (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это
* количество единиц);</li> <li>RATE - курс валюты.</li> </ul>
*
*
*
* @return bool <p>В случае успеха возвращает ID изменённого курса, иначе <i>false</i>.
* Текст ошибки выводится через <code>$APPLICATION->GetException()</code>.</p> <br><br>
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/currency/developer/ccurrencyrates/ccurrencyrates__update.1f36666f.php
* @author Bitrix
*/
public static function Update($ID, $arFields)
{
global $DB;
global $APPLICATION;
global $stackCacheManager;
$ID = (int) $ID;
if ($ID <= 0) {
return false;
}
$arMsg = array();
foreach (GetModuleEvents("currency", "OnBeforeCurrencyRateUpdate", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
return false;
}
}
if (!CCurrencyRates::CheckFields("UPDATE", $arFields, $ID)) {
return false;
}
$db_result = $DB->Query("SELECT 'x' FROM b_catalog_currency_rate WHERE CURRENCY = '" . $DB->ForSql($arFields["CURRENCY"]) . "' " . "\tAND DATE_RATE = " . $DB->CharToDateFunction($DB->ForSql($arFields["DATE_RATE"]), "SHORT") . " AND ID<>" . $ID . " ");
if ($db_result->Fetch()) {
$arMsg[] = array("id" => "DATE_RATE", "text" => GetMessage("ERROR_ADD_REC2"));
$e = new CAdminException($arMsg);
$APPLICATION->ThrowException($e);
return false;
} else {
$strUpdate = $DB->PrepareUpdate("b_catalog_currency_rate", $arFields);
if (!empty($strUpdate)) {
$strSql = "UPDATE b_catalog_currency_rate SET " . $strUpdate . " WHERE ID = " . $ID;
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
$stackCacheManager->Clear("currency_rate");
CCurrency::updateCurrencyBaseRate($arFields['CURRENCY']);
CCurrency::clearTagCache($arFields['CURRENCY']);
}
foreach (GetModuleEvents("currency", "OnCurrencyRateUpdate", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
}
return true;
}
示例2: Update
/**
* <p>Функция обновляет параметры записи в таблице курсов валют на значения из массива <i>arFields</i>. Перед обновлением выполняется проверка, нет ли курса этой валюты на эту дату с другим ID. Если есть - то произойдет ошибка.</p> <p>В случае успешного обновления сбрасываются кеш <b>currency_rate</b> и тэгированный кеш <b>currency_id_КОД_ВАЛЮТЫ</b>.</p>
*
*
*
*
* @param int $ID Код записи.
*
*
*
* @param array $arFields <p>Ассоциативный массив новых параметров курса валюты, ключами
* которого являются названия параметров, а значениями - значения
* параметров.</p> <p>Допустимые ключи:</p> <ul> <li>CURRENCY - код валюты
* (обязательный);</li> <li>DATE_RATE - дата БЕЗ ВРЕМЕНИ, за которую
* устанавливается курс (обязательный);</li> <li>RATE_CNT - количество
* единиц валюты, которое участвует в задании курса валюты
* (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это
* количество единиц);</li> <li>RATE - курс валюты.</li> </ul>
*
*
*
* @return bool <p>В случае успеха возвращает ID изменённого курса, иначе <i>false</i>.
* Текст ошибки выводится через <code>$APPLICATION->GetException()</code>.</p><br><br>
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/currency/developer/ccurrencyrates/ccurrencyrates__update.1f36666f.php
* @author Bitrix
*/
public static function Update($ID, $arFields)
{
global $DB;
global $CACHE_MANAGER;
global $APPLICATION;
global $stackCacheManager;
$ID = intval($ID);
$arMsg = array();
if (!CCurrencyRates::CheckFields("UPDATE", $arFields, $ID))
return false;
$db_result = $DB->Query("SELECT 'x' ".
"FROM b_catalog_currency_rate ".
"WHERE CURRENCY = '".$DB->ForSql($arFields["CURRENCY"])."' ".
" AND DATE_RATE = ".$DB->CharToDateFunction($DB->ForSql($arFields["DATE_RATE"]), "SHORT")." ".
" AND ID<>".$ID." ");
if ($db_result->Fetch())
{
$arMsg[] = array("id"=>"DATE_RATE", "text"=> GetMessage("ERROR_ADD_REC2"));
$e = new CAdminException($arMsg);
$APPLICATION->ThrowException($e);
return false;
}
else
{
$strUpdate = $DB->PrepareUpdate("b_catalog_currency_rate", $arFields);
if (!empty($strUpdate))
{
$strSql = "UPDATE b_catalog_currency_rate SET ".$strUpdate." WHERE ID = ".$ID;
$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
$stackCacheManager->Clear("currency_rate");
if (defined("BX_COMP_MANAGED_CACHE"))
$CACHE_MANAGER->ClearByTag("currency_id_".$arFields["CURRENCY"]);
}
}
return true;
}