if (is_array(CCurrencyLang::GetByID($currencyID, $k))) { CCurrencyLang::Update($currencyID, $k, $locFields); } else { $locFields['DECIMALS'] = 2; //Default decimals CCurrencyLang::Add($locFields); } } } if ($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()));
} 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'))); $sort = $arResult['SORT'] = $gridSorting['sort']; $arResult['SORT_VARS'] = $gridSorting['vars']; //if (!isset($arParams['CURRENCY_COUNT'])) //{ // $arParams['CURRENCY_COUNT'] = 20; //} $accountCurrencyID = CCrmCurrency::GetAccountCurrencyID(); $baseCurrencyID = CCrmCurrency::GetBaseCurrencyID(); $defaultForInvoices = CCrmCurrency::getInvoiceDefault(); $currencies = array(); $allCurrencies = CCrmCurrency::GetAll(); foreach ($allCurrencies as $k => $v) { $currency = array(); $currency['ID'] = $k; // Key is Currency ID $currency['NAME'] = $v['FULL_NAME']; $currency['SORT'] = $v['SORT']; $currency['EXCH_RATE'] = $v['AMOUNT']; //Default Exchange Rate $currency['AMOUNT_CNT'] = $v['AMOUNT_CNT']; $currency['ACCOUNTING'] = $k === $accountCurrencyID ? 'Y' : 'N'; $isBase = $k === $baseCurrencyID; $currency['BASE'] = $isBase ? 'Y' : 'N'; $currency['INVOICE_DEF'] = $currency['~INVOICE_DEF'] = $defaultForInvoices == $k ? 'Y' : 'N';
$arSelect[] = 'REASON_MARKED'; $arOptions = array(); if (isset($arSort['date_pay_before'])) { $arOptions['NULLS_LAST'] = true; } $arSelect = array_unique($arSelect, SORT_STRING); $obRes = CCrmInvoice::GetList($arSort, $arFilter, false, $sExportType == '' ? $arNavParams : false, $arSelect, $arOptions); if ($arResult['GADGET'] != 'Y' && $sExportType == '') { $obRes->NavStart($arNavParams['nPageSize'], false); } $arResult['INVOICE'] = array(); $arResult['INVOICE_ID'] = array(); $arResult['INVOICE_UF'] = array(); $now = time() + CTimeZone::GetOffset(); $currencyID = $CCrmInvoice::GetCurrencyID(); $totalPaidCurrencyId = $arParams['SUM_PAID_CURRENCY'] != '' ? $arParams['SUM_PAID_CURRENCY'] : CCrmCurrency::getInvoiceDefault(); $totalPaidNumber = 0; $totalPaidSum = 0; $arContactList = array(); $arCompanyList = array(); $arDealList = array(); $arQuoteList = array(); while ($arInvoice = $obRes->GetNext()) { $entityID = $arInvoice['ID']; // urls for row actions $arInvoice['PATH_TO_INVOICE_SHOW'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_SHOW'], array('invoice_id' => $entityID)); $arInvoice['PATH_TO_INVOICE_PAYMENT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_PAYMENT'], array('invoice_id' => $entityID)); $arInvoice['PATH_TO_INVOICE_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_EDIT'], array('invoice_id' => $entityID)); $arInvoice['PATH_TO_USER_PROFILE'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arInvoice['RESPONSIBLE_ID'])); $arInvoice['PATH_TO_INVOICE_COPY'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_EDIT'], array('invoice_id' => $entityID)), array('copy' => 1)); $arInvoice['PATH_TO_INVOICE_DELETE'] = CHTTP::urlAddParams($bInternal ? $APPLICATION->GetCurPage() : $arParams['PATH_TO_INVOICE_LIST'], array('action_' . $arResult['GRID_ID'] => 'delete', 'ID' => $entityID, 'sessid' => bitrix_sessid()));
$arResult['BACK_URL'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array()); $langs = array(); $rsLang = CLangAdmin::GetList($by = 'sort', $order = 'asc'); while ($arLang = $rsLang->Fetch()) { $lid = $arLang['LID']; $langs[$lid] = array('NAME' => $arLang['NAME']); } $arResult['LANGS'] = $langs; $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'), 'value' => $currencyID, 'type' => 'label'); $arResult['FIELDS']['tab_1'][] = array('id' => 'AMOUNT_CNT', 'name' => GetMessage('CRM_CURRENCY_FIELD_AMOUNT_CNT'), 'value' => isset($currency['AMOUNT_CNT']) ? $currency['AMOUNT_CNT'] : '', 'type' => 'label'); $arResult['FIELDS']['tab_1'][] = array('id' => 'DEFAULT_EXCH_RATE', 'name' => GetMessage('CRM_CURRENCY_FIELD_DEFAULT_EXCH_RATE'), 'value' => isset($currency['AMOUNT']) ? $currency['AMOUNT'] : '', 'type' => 'label'); $arResult['FIELDS']['tab_1'][] = array('id' => 'SORT', 'name' => GetMessage('CRM_CURRENCY_FIELD_SORT'), 'value' => isset($currency['SORT']) ? $currency['SORT'] : '', 'type' => 'label'); $arResult['FIELDS']['tab_1'][] = array('id' => 'BASE', 'name' => GetMessage('CRM_CURRENCY_SHOW_BASE'), 'value' => $isBaseCurrency ? GetMessage('MAIN_YES') : GetMessage('MAIN_NO'), 'type' => 'label'); $defaultForInvoices = CCrmCurrency::getInvoiceDefault() == $currencyID ? GetMessage("MAIN_YES") : GetMessage("MAIN_NO"); $arResult['FIELDS']['tab_1'][] = array('id' => 'INVOICES_DEFAULT', 'name' => GetMessage('CRM_CURRENCY_INVOICES_DEFAULT'), 'value' => $defaultForInvoices, 'type' => 'label'); $currencyLocs = array(); if (isset($currencyID[0])) { $rs = CCurrencyLang::GetList($by = '', $order = '', $currencyID); while ($ary = $rs->GetNext()) { $loc = array(); $loc['FULL_NAME'] = $ary['FULL_NAME']; $loc['FORMAT_STRING'] = $ary['FORMAT_STRING']; $loc['DEC_POINT'] = $ary['DEC_POINT']; $loc['THOUSANDS_SEP'] = $ary['THOUSANDS_SEP']; $loc['THOUSANDS_VARIANT'] = $ary['THOUSANDS_VARIANT']; $currencyLocs[$ary['LID']] = $loc; } } $arResult['CURRENCY_LOCALIZATIONS'] = $currencyLocs;