- Модуль: statistic
- Путь к файлу: ~/bitrix/modules/statistic/classes/general/statistic.php
- Класс: CAllStatistics
- Вызов: CAllStatistics::RecountBaseCurrency
static function RecountBaseCurrency($new_base_currency)
{
$err_mess = "File: ".__FILE__."
Line: ";
$DB = CDatabase::GetModuleConnection('statistic');
$base_currency = GetStatisticBaseCurrency();
if ($base_currency!="xxx" && $base_currency <> '')
{
if (CModule::IncludeModule("currency"))
{
if (CCurrency::GetByID($base_currency))
{
$rate = CCurrencyRates::GetConvertFactor($base_currency, $new_base_currency);
if ($rate!=1 && $rate>0)
{
$arUpdate = array(
array("TABLE" => "b_stat_adv", "FIELDS" => array("COST", "REVENUE")),
array("TABLE" => "b_stat_event", "FIELDS" => array("MONEY")),
array("TABLE" => "b_stat_event_day", "FIELDS" => array("MONEY")),
array("TABLE" => "b_stat_event_list", "FIELDS" => array("MONEY"))
);
set_time_limit(0);
ignore_user_abort(true);
$DB->StartTransaction();
foreach ($arUpdate as $arr)
{
$arFields = $arr["FIELDS"];
$strSql = "UPDATE ".$arr["TABLE"]." SET ";
$i = 0;
$str = "";
foreach ($arFields as $field)
{
if ($i>0) $str .= ", ";
$str .= $field." = round(".$field."*".$rate.",2)";
$i++;
}
$DB->Query($strSql.$str, false, $err_mess.__LINE__);
}
$DB->Commit();
}
}
}
}
}