/** @global CMain $APPLICATION */ use Bitrix\Main\Loader; use Bitrix\Main\Type\DateTime; use Bitrix\Main\Localization\Loc; use Bitrix\Currency; $module_id = 'currency'; $moduleAccessLevel = $APPLICATION->GetGroupRight($module_id); if ($moduleAccessLevel >= 'R') { Loader::includeModule('currency'); Loc::loadMessages(__FILE__); $aTabs = array( array("DIV" => "edit0", "TAB" => Loc::getMessage("CURRENCY_SETTINGS"), "ICON" => "currency_settings", "TITLE" => Loc::getMessage("CURRENCY_SETTINGS_TITLE")), array("DIV" => "edit1", "TAB" => Loc::getMessage("CO_TAB_RIGHTS"), "ICON" => "currency_settings", "TITLE" => Loc::getMessage("CO_TAB_RIGHTS_TITLE")), ); $tabControl = new CAdminTabControl("currencyTabControl", $aTabs, true, true); $systemTabs = array( array('DIV' => 'proc_edit0', 'TAB' => Loc::getMessage('CURRENCY_BASE_RATE'), 'ICON' => '', 'TITLE' => Loc::getMessage('CURRENCY_BASE_RATE_TITLE')), array('DIV' => 'proc_edit1', 'TAB' => Loc::getMessage('CURRENCY_AGENTS'), 'ICON' => '', 'TITLE' => Loc::getMessage('CURRENCY_AGENTS_TITLE')), ); $systemTabControl = new CAdminTabControl("currencyProcTabControl", $systemTabs, true, true); if ( $_SERVER['REQUEST_METHOD'] == "GET" && !empty($_GET['RestoreDefaults']) && $moduleAccessLevel == "W" && check_bitrix_sessid() ) { COption::RemoveOption("currency"); $z = CGroup::GetList('id', 'asc', array("ACTIVE" => "Y", "ADMIN" => "N")); while($zr = $z->Fetch()) $APPLICATION->DelGroupRight($module_id, array($zr["ID"])); LocalRedirect($APPLICATION->GetCurPage().'?lang='.LANGUAGE_ID.'&mid='.$module_id); } if ($_SERVER['REQUEST_METHOD'] == 'POST' && $moduleAccessLevel == "W" && check_bitrix_sessid()) { if (isset($_POST['Update']) && $_POST['Update'] === 'Y') { $newBaseCurrency = ''; if (isset($_POST['BASE_CURRENCY'])) $newBaseCurrency = (string)$_POST['BASE_CURRENCY']; if ($newBaseCurrency != '') $res = CCurrency::SetBaseCurrency($newBaseCurrency); ob_start(); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/admin/group_rights.php'); ob_end_clean(); LocalRedirect($APPLICATION->GetCurPage().'?lang='.LANGUAGE_ID.'&mid='.$module_id.'&'.$tabControl->ActiveTabParam()); } if (isset($_POST['procedures']) && $_POST['procedures'] === 'Y' && isset($_POST['action']) && $_POST['action'] == 'recalc') { Currency\CurrencyManager::updateBaseRates(); LocalRedirect($APPLICATION->GetCurPage().'?lang='.LANGUAGE_ID.'&mid='.$module_id.'&'.$systemTabControl->ActiveTabParam()); } if (isset($_POST['agents']) && $_POST['agents'] == 'Y' && isset($_POST['action']) && !empty($_POST['action'])) { $action = (string)$_POST['action']; switch ($action) { case 'activate': case 'deactivate': $agentIterator = CAgent::GetList( array(), array('MODULE_ID' => 'currency','=NAME' => '\Bitrix\Currency\CurrencyManager::currencyBaseRateAgent();') ); if ($currencyAgent = $agentIterator->Fetch()) { $active = ($action == 'activate' ? 'Y' : 'N'); CAgent::Update($currencyAgent['ID'], array('ACTIVE' => $active)); } break; case 'create': $checkDate = DateTime::createFromTimestamp(strtotime('tomorrow 00:01:00'));; CAgent::AddAgent('\Bitrix\Currency\CurrencyManager::currencyBaseRateAgent();', 'currency', 'Y', 86400, '', 'Y', $checkDate->toString(), 100, false, true); break; } LocalRedirect($APPLICATION->GetCurPage().'?lang='.LANGUAGE_ID.'&mid='.$module_id.'&'.$systemTabControl->ActiveTabParam()); } } $baseCurrency = Currency\CurrencyManager::getBaseCurrency(); $tabControl->Begin(); ?>