49 'MODIFIED_BY' =>
true,
55 $whiteList[
'CREATED_BY'] =
true;
72 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_CUR_ID_ABSENT'),
79 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_CUR_ID_LAT_EXT'),
86 'select' => [
'CURRENCY'],
87 'filter' => [
'=CURRENCY' =>
$arFields[
'CURRENCY']],
89 if (!empty($currencyExist))
93 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_CUR_ID_EXISTS'),
96 unset($currencyExist);
102 'id' =>
'AMOUNT_CNT',
103 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_AMOUNT_CNT_ABSENT'),
111 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_AMOUNT_ABSENT'),
119 if ($strCurrencyID ===
false)
123 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_CUR_ID_BAD'),
128 'filter' => [
'=CURRENCY' => $strCurrencyID],
130 if (($row[
'BASE'] ??
'N') ===
'Y')
138 'id' =>
'AMOUNT_CNT',
139 'text' => Loc::getMessage(
'BX_CURRENCY_ERR_CURR_BASE_AMOUNT_CNT_BAD'),
150 'text' => Loc::getMessage(
'BX_CURRENCY_ERR_CURR_BASE_AMOUNT_BAD'),
166 'id' =>
'AMOUNT_CNT',
167 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_AMOUNT_CNT_BAD'),
178 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_AMOUNT_BAD'),
206 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_NUMCODE_IS_BAD'),
213 $intUserID = ($boolUserExist ? (int)
$USER->GetID() : 0);
238 'text' => Loc::getMessage(
'BT_MOD_CURR_ERR_CURR_LANG_BAD'),
251 $langAction = (CCurrencyLang::isExistCurrencyLanguage(
$currency,
$lang) ?
'UPDATE' :
'ADD');
255 $settings[
'IS_EXIST'] = ($langAction ===
'ADD' ?
'N' :
'Y');
257 if (is_array($checkLang))
259 $arMsg = array_merge($arMsg, $checkLang);
283 foreach (
GetModuleEvents(
"currency",
"OnBeforeCurrencyAdd",
true) as $arEvent)
296 $arInsert =
$DB->PrepareInsert(
'b_catalog_currency',
$arFields);
298 $strSql =
"insert into b_catalog_currency(".$arInsert[0].
") values(".$arInsert[1].
")";
321 foreach (
GetModuleEvents(
'currency',
'OnCurrencyAdd',
true) as $arEvent)
326 if (isset(self::$currencyCache[
$arFields[
'CURRENCY']]))
328 unset(self::$currencyCache[
$arFields[
'CURRENCY']]);
338 foreach (
GetModuleEvents(
'currency',
'OnBeforeCurrencyUpdate',
true) as $arEvent)
352 $strUpdate =
$DB->PrepareUpdate(
'b_catalog_currency',
$arFields);
353 if (!empty($strUpdate))
355 $strSql =
"update b_catalog_currency set ".$strUpdate.
" where CURRENCY = '".
$DB->ForSql(
$currency).
"'";
360 if (isset(self::$currencyCache[
$currency]))
380 if (!empty($strUpdate) || isset(
$arFields[
'LANG']))
386 foreach (
GetModuleEvents(
'currency',
'OnCurrencyUpdate',
true) as $arEvent)
402 foreach (
GetModuleEvents(
'currency',
'OnBeforeCurrencyDelete',
true) as $arEvent)
420 if ($existCurrency ===
null)
424 if ($existCurrency[
'BASE'] ===
'Y')
429 foreach (
GetModuleEvents(
'currency',
'OnCurrencyDelete',
true) as $arEvent)
439 if (isset(self::$currencyCache[
$currency]))
459 if (!isset(self::$currencyCache[
$currency]))
463 if ($currencyData = $currencyIterator->fetch())
465 $currencyData[
'DATE_UPDATE_FORMAT'] = (
467 ? $currencyData[
'DATE_UPDATE']->
toString()
470 $currencyData[
'DATE_CREATE_FORMAT'] = (
472 ? $currencyData[
'DATE_CREATE']->
toString()
475 unset($currencyData[
'DATE_UPDATE'], $currencyData[
'DATE_CREATE']);
476 self::$currencyCache[
$currency] = $currencyData;
478 unset($currencyData, $currencyIterator);
491 return Currency\CurrencyManager::getBaseCurrency();
501 'select' => [
'CURRENCY',
'BASE'],
504 if (!empty($existCurrency))
506 if ($existCurrency[
'BASE'] ===
'Y')
522 public static function SelectBox($sFieldName, $sValue, $sDefaultValue =
'', $bFullName =
true, $JavaFunc =
'', $sAdditionalParams =
'')
524 $s =
'<select name="'.$sFieldName.
'"';
525 if (
'' != $JavaFunc) $s .=
' onchange="'.$JavaFunc.
'"';
526 if (
'' != $sAdditionalParams) $s .=
' '.$sAdditionalParams.
' ';
532 if (!empty($currencyList) && is_array($currencyList))
540 if (
'' != $sDefaultValue)
541 $s .=
'<option value=""'.($found ?
'' :
' selected').
'>'.
htmlspecialcharsbx($sDefaultValue).
'</option>';
542 return $s.$s1.
'</select>';
558 $by = strtolower($by);
562 defined(
"CURRENCY_SKIP_CACHE") && CURRENCY_SKIP_CACHE
569 $dbCurrencyList = static::__GetList($by,
$order,
$lang);
574 if (defined(
"CURRENCY_CACHE_TIME"))
575 $cacheTime = (int)CURRENCY_CACHE_TIME;
577 if (
$CACHE_MANAGER->Read($cacheTime,
"currency_currency_list_".$lang,
'b_catalog_currency'))
581 $dbCurrencyList->InitFromArray($arCurrencyList);
585 $arCurrencyList = [];
587 $dbCurrencyList = static::__GetList($by,
$order,
$lang);
588 while ($arCurrency = $dbCurrencyList->Fetch())
589 $arCurrencyList[] = $arCurrency;
594 $dbCurrencyList->InitFromArray($arCurrencyList);
598 return $dbCurrencyList;
613 $normalBy = strtolower($by);
614 if ($normalBy !=
'currency' && $normalBy !=
'name')
618 $normalOrder = strtoupper(
$order);
619 if ($normalOrder !=
'DESC')
621 $normalOrder =
'ASC';
626 $currencyOrder =
array(
'CURRENCY' => $normalOrder);
629 $currencyOrder =
array(
'FULL_NAME' => $normalOrder);
633 $currencyOrder =
array(
'SORT' => $normalOrder);
636 unset($normalOrder, $normalBy);
641 'CURRENCY',
'AMOUNT_CNT',
'AMOUNT',
'SORT',
'BASE',
'NUMCODE',
'CREATED_BY',
'MODIFIED_BY',
644 'FULL_NAME' =>
'RT_LANG.FULL_NAME',
'LID' =>
'RT_LANG.LID',
'FORMAT_STRING' =>
'RT_LANG.FORMAT_STRING',
645 'DEC_POINT' =>
'RT_LANG.DEC_POINT',
'THOUSANDS_SEP' =>
'RT_LANG.THOUSANDS_SEP',
646 'DECIMALS' =>
'RT_LANG.DECIMALS',
'HIDE_ZERO' =>
'RT_LANG.HIDE_ZERO'
648 'order' => $currencyOrder,
651 'data_type' =>
'Bitrix\Currency\CurrencyLang',
652 'reference' =>
array(
653 '=this.CURRENCY' =>
'ref.CURRENCY',
659 unset($datetimeField);
661 while (
$currency = $currencyIterator->fetch())
669 $result->InitFromArray($currencyList);
746 $agentIterator = CAgent::GetList(
749 'MODULE_ID' =>
'currency',
750 '=NAME' =>
'\Bitrix\Currency\CurrencyManager::currencyBaseRateAgent();',
755 $currencyAgent = $agentIterator->Fetch();
761 '\Bitrix\Currency\CurrencyManager::currencyBaseRateAgent();',
767 $checkDate->toString(),
805 return ($value !==
null);
static deleteByCurrency(string $currency)
static clearTagCache($currency)
static clearCurrencyCache($language='')
static updateBaseRates($updateCurrency='')
static updateBaseCurrency($currency)
static getInstalledCurrencies()
static checkCurrencyID($currency)
static deleteByCurrency(string $currency)
static isModuleInstalled($moduleName)
static getRow(array $parameters)
static getList(array $parameters=array())
static createFromTimestamp($timestamp)
toString(Context\Culture $culture=null)
static Update($currency, $arFields)
static updateAllCurrencyBaseRate()
static GetList($by='sort', $order='asc', $lang=LANGUAGE_ID)
static array $currencyCache
static updateCurrencyBaseRate($currency)
static updateBaseRates($currency='', $updateCurrency='')
static clearTagCache($currency)
static CheckFields($ACTION, &$arFields, $strCurrencyID=false)
static SelectBox($sFieldName, $sValue, $sDefaultValue='', $bFullName=true, $JavaFunc='', $sAdditionalParams='')
static __GetList($by='sort', $order='asc', $lang=LANGUAGE_ID)
static updateBaseCurrency($currency)
static GetCurrency($currency)
static GetByID($currency)
static getInstalledCurrencies()
static clearCurrencyCache()
static initCurrencyBaseRateAgent()
static SetBaseCurrency($currency)
static clearFields($value)
static checkCurrencyID($currency)
const CURRENCY_CACHE_DEFAULT_TIME
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!defined('SITE_ID')) $lang
ExecuteModuleEventEx($arEvent, $arParams=[])
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)