if (!(is_string($componentPage) && isset($componentPage[0]) && isset($arDefaultUrlTemplates404[$componentPage]))) { $componentPage = 'currency_list'; } CComponentEngine::InitComponentVariables($componentPage, $arComponentVariables, $arVariableAliases, $arVariables); foreach ($arUrlTemplates as $url => $value) { $key = 'PATH_TO_' . strtoupper($url); $arResult[$key] = isset($arParams[$key][0]) ? $arParams[$key] : $arParams['SEF_FOLDER'] . $value; } } else { $arComponentVariables = array(isset($arParams['VARIABLE_ALIASES']['currency_id']) ? $arParams['VARIABLE_ALIASES']['currency_id'] : 'currency_id'); $arDefaultVariableAliases = array('currency_id' => 'currency_id'); $arVariables = array(); $arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases, $arParams['VARIABLE_ALIASES']); CComponentEngine::InitComponentVariables(false, $arComponentVariables, $arVariableAliases, $arVariables); $componentPage = 'currency_list'; if (isset($_REQUEST['edit'])) { $componentPage = 'currency_edit'; } elseif (isset($_REQUEST['show'])) { $componentPage = 'currency_show'; } $curPage = $APPLICATION->GetCurPage(); $arResult['PATH_TO_CURRENCY_LIST'] = $curPage; $arResult['PATH_TO_CURRENCY_ADD'] = $curPage . '?add'; $arResult['PATH_TO_CURRENCY_EDIT'] = $curPage . '?' . $arVariableAliases['currency_id'] . '=#currency_id#&edit'; $arResult['PATH_TO_CURRENCY_SHOW'] = $curPage . '?' . $arVariableAliases['currency_id'] . '=#currency_id#&show'; } $arResult = array_merge(array('VARIABLES' => $arVariables, 'ALIASES' => $arParams['SEF_MODE'] == 'Y' ? array() : $arVariableAliases, 'CURRENCY_ID' => isset($arVariables['currency_id']) ? strval($arVariables['currency_id']) : ''), $arResult); if (!CCrmCurrency::EnsureReady()) { ShowError(CCrmCurrency::GetLastError()); } $this->IncludeComponentTemplate($componentPage);
protected function innerDelete($ID, &$errors) { if (!CCrmCurrency::CheckDeletePermission($ID)) { $errors[] = 'Access denied.'; return false; } $result = CCrmCurrency::Delete($ID); if ($result !== true) { $errors[] = CCrmCurrency::GetLastError(); } return $result; }
if ($currency['IS_ACCOUNTING_CURRENCY'] && $currencyID !== CCrmCurrency::GetAccountCurrencyID()) { CCrmCurrency::SetAccountCurrencyID($currencyID); } elseif (!$currency['IS_ACCOUNTING_CURRENCY'] && $currencyID === CCrmCurrency::GetAccountCurrencyID()) { CCrmCurrency::SetAccountCurrencyID(CCrmCurrency::GetBaseCurrencyID()); } if ($currency['IS_INVOICE_CURRENCY'] && $currencyID !== CCrmCurrency::getInvoiceDefault()) { CCrmCurrency::setInvoiceDefault($currencyID); } LocalRedirect(isset($_POST['apply']) ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_EDIT'], array('currency_id' => $currencyID)) : CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array('currency_id' => $currencyID))); } } elseif ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['delete'])) { $currencyID = isset($arParams['CURRENCY_ID']) ? strval($arParams['CURRENCY_ID']) : ''; $currency = isset($currencyID[0]) ? CCrmCurrency::GetByID($currencyID) : null; if ($currency) { if (!CCrmCurrency::Delete($currencyID)) { $err = CCrmCurrency::GetLastError(); ShowError(isset($err[0]) ? $err : GetMessage('CRM_CURRENCY_DELETE_UNKNOWN_ERROR')); return; } } LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array())); } } $arResult['FIELDS'] = array(); $arResult['FIELDS']['tab_1'][] = array('id' => 'currency_info', 'name' => GetMessage('CRM_CURRENCY_SECTION_MAIN'), 'type' => 'section'); $arResult['FIELDS']['tab_1'][] = array('id' => 'ID', 'name' => GetMessage('CRM_CURRENCY_FIELD_ID'), 'params' => array('size' => 10), 'value' => $currencyID, 'type' => $isEditMode ? 'label' : 'text'); $arResult['FIELDS']['tab_1'][] = array('id' => 'AMOUNT_CNT', 'name' => GetMessage('CRM_CURRENCY_FIELD_AMOUNT_CNT'), 'params' => array('size' => 10), 'value' => isset($currency['AMOUNT_CNT']) ? $currency['AMOUNT_CNT'] : '1', 'type' => $isBaseCurrency ? 'label' : 'text'); $arResult['FIELDS']['tab_1'][] = array('id' => 'DEFAULT_EXCH_RATE', 'name' => GetMessage('CRM_CURRENCY_FIELD_DEFAULT_EXCH_RATE'), 'params' => array('size' => 10), 'value' => isset($currency['AMOUNT']) ? $currency['AMOUNT'] : '1', 'type' => $isBaseCurrency ? 'label' : 'text'); $arResult['FIELDS']['tab_1'][] = array('id' => 'SORT', 'name' => GetMessage('CRM_CURRENCY_FIELD_SORT'), 'params' => array('size' => 10), 'value' => isset($currency['SORT']) ? $currency['SORT'] : '10', 'type' => 'text'); $arResult['FIELDS']['tab_1'][] = array('id' => 'BASE', 'name' => GetMessage('CRM_CURRENCY_EDIT_BASE'), 'value' => $isBaseCurrency ? GetMessage('MAIN_YES') : GetMessage('MAIN_NO'), 'type' => 'label'); $arResult['FIELDS']['tab_1'][] = array('id' => 'ACCOUNTING', 'name' => GetMessage('CRM_CURRENCY_FIELD_ACCOUNTING'), 'value' => $currency['IS_ACCOUNTING_CURRENCY'] ? 'Y' : 'N', 'type' => 'checkbox');
if ($arResult['CAN_EDIT'] && $_GET['action_' . $arResult['GRID_ID']] === 'mark_as_base') { $currencyID = isset($_GET['ID']) ? $_GET['ID'] : ''; if ($currencyID !== '' && $currencyID !== CCrmCurrency::GetBaseCurrencyID()) { if (!CCrmCurrency::SetBaseCurrencyID($currencyID)) { $errorID = uniqid('crm_err_'); $_SESSION[$errorID] = GetMessage('CRM_CURRENCY_MARK_AS_BASE_GENERAL_ERROR'); } } unset($_GET['ID'], $_REQUEST['ID']); // otherwise the filter will work } elseif ($arResult['CAN_DELETE'] && $_GET['action_' . $arResult['GRID_ID']] === 'delete') { $currencyID = isset($_GET['ID']) ? $_GET['ID'] : ''; if ($currencyID !== '') { if (!CCrmCurrency::Delete($currencyID)) { $errorID = uniqid('crm_err_'); $_SESSION[$errorID] = CCrmCurrency::GetLastError(); } } unset($_GET['ID'], $_REQUEST['ID']); // otherwise the filter will work } if (!isset($_GET['AJAX_CALL'])) { if ($errorID === '') { LocalRedirect($bInternal ? '?' . $arParams['FORM_ID'] . '_active_tab=tab_currency' : ''); } else { LocalRedirect(CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array()), array('error' => $errorID))); } } } $gridOptions = new CCrmGridOptions($arResult['GRID_ID']); $gridSorting = $gridOptions->GetSorting(array('sort' => array('SORT' => 'asc'), 'vars' => array('by' => 'by', 'order' => 'order')));