- Модуль: currency
- Путь к файлу: ~/bitrix/modules/currency/lib/currencymanager.php
- Класс: BitrixCurrencyCurrencyManager
- Вызов: CurrencyManager::updateBaseRates
static function updateBaseRates($updateCurrency = '')
{
$currency = static::getBaseCurrency();
if ($currency === '')
return;
$currencyIterator = CurrencyTable::getList([
'select' => [
'CURRENCY',
'CURRENT_BASE_RATE',
],
'filter' => ($updateCurrency == '' ? [] : ['=CURRENCY' => $updateCurrency])
]);
while ($existCurrency = $currencyIterator->fetch())
{
$baseRate = ($existCurrency['CURRENCY'] != $currency
? CCurrencyRates::getConvertFactorEx($existCurrency['CURRENCY'], $currency)
: 1
);
$updateResult = CurrencyTable::update($existCurrency['CURRENCY'], array('CURRENT_BASE_RATE' => $baseRate));
if ($updateResult->isSuccess())
{
$event = new MainEvent(
'currency',
self::EVENT_ON_AFTER_UPDATE_BASE_RATE,
[
'OLD_BASE_RATE' => (float)$existCurrency['CURRENT_BASE_RATE'],
'CURRENT_BASE_RATE' => $baseRate,
'BASE_CURRENCY' => $currency,
'CURRENCY' => $existCurrency['CURRENCY'],
]
);
$event->send();
}
unset($updateResult);
unset($baseRate);
}
unset($existCurrency, $currencyIterator);
}