if (isset($_POST['TAX_VALUE'])) { $arFields['TAX_VALUE'] = trim($_POST['TAX_VALUE']); } elseif (isset($arSrcElement['TAX_VALUE'])) { $arFields['TAX_VALUE'] = $arSrcElement['TAX_VALUE']; } if (isset($_POST['CURRENCY_ID'])) { $arFields['CURRENCY_ID'] = $_POST['CURRENCY_ID']; } elseif (isset($arSrcElement['CURRENCY_ID'])) { $arFields['CURRENCY_ID'] = $arSrcElement['CURRENCY_ID']; } // EXCH_RATE --> $currencyID = isset($arFields['CURRENCY_ID']) ? $arFields['CURRENCY_ID'] : ''; if (!($currencyID !== '' && CCrmCurrency::IsExists($currencyID))) { $currencyID = $arFields['CURRENCY_ID'] = CCrmCurrency::GetBaseCurrencyID(); } $arFields['EXCH_RATE'] = CCrmCurrency::GetExchangeRate($currencyID); // <-- EXCH_RATE if (isset($_POST['CONTACT_ID'])) { $contactID = intval($_POST['CONTACT_ID']); if ($contactID > 0 && CCrmContact::CheckReadPermission($contactID)) { $arFields['CONTACT_ID'] = $contactID; } else { $arFields['CONTACT_ID'] = 0; } } elseif (isset($arSrcElement['CONTACT_ID'])) { $arFields['CONTACT_ID'] = $arSrcElement['CONTACT_ID']; } if (isset($_POST['COMPANY_ID'])) { $companyID = intval($_POST['COMPANY_ID']); if ($companyID > 0 && CCrmCompany::CheckReadPermission($companyID)) { $arFields['COMPANY_ID'] = $companyID;
// { // $srcExchRate = ($srcCurrency = CCrmCurrency::GetByID($srcCurrencyID)) ? $srcCurrency['EXCH_RATE'] : 1.0; // } $dstCurrencyID = isset($data['DST_CURRENCY_ID']) && strlen(strval($data['DST_CURRENCY_ID'])) > 0 ? strval($data['DST_CURRENCY_ID']) : CCrmCurrency::GetBaseCurrencyID(); // $dstExchRate = ($dstCurrency = CCrmCurrency::GetByID($dstCurrencyID)) ? $dstCurrency['EXCH_RATE'] : 1.0; $arProducts = isset($data['PRODUCTS']) && is_array($data['PRODUCTS']) ? $data['PRODUCTS'] : array(); if (count($arProducts) > 0) { foreach ($arProducts as &$arProduct) { $arProduct['PRICE'] = CCrmCurrency::ConvertMoney(isset($arProduct['PRICE']) ? $arProduct['PRICE'] : 1.0, $srcCurrencyID, $dstCurrencyID); if (isset($arProduct['DISCOUNT_TYPE_ID']) && isset($arProduct['DISCOUNT_VALUE']) && intval($arProduct['DISCOUNT_TYPE_ID']) === \Bitrix\Crm\Discount::MONETARY && abs(doubleval($arProduct['DISCOUNT_VALUE'])) > 0) { $arProduct['DISCOUNT_VALUE'] = CCrmCurrency::ConvertMoney(isset($arProduct['DISCOUNT_VALUE']) ? $arProduct['DISCOUNT_VALUE'] : 0.0, $srcCurrencyID, $dstCurrencyID); } } } Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); echo CUtil::PhpToJsObject(array('CURRENCY_ID' => $dstCurrencyID, 'CURRENCY_FORMAT' => CCrmCurrency::GetCurrencyFormatString($dstCurrencyID), 'EXCH_RATE' => CCrmCurrency::GetExchangeRate($dstCurrencyID), 'PRODUCTS' => $arProducts, 'PRODUCT_POPUP_ITEMS' => CCrmProductHelper::PreparePopupItems($dstCurrencyID))); } elseif ($mode === 'CONVERT_MONEY') { if ($perms->HavePerm($ownerName, BX_CRM_PERM_NONE, 'READ')) { echo CUtil::PhpToJSObject(array('ERROR' => 'PERMISSION_DENIED')); die; } $data = isset($_POST['DATA']) && is_array($_POST['DATA']) ? $_POST['DATA'] : array(); if (count($data) == 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'SOURCE_DATA_NOT_FOUND')); die; } $srcSum = isset($data['SRC_SUM']) ? doubleval($data['SRC_SUM']) : 0.0; $srcCurrencyID = isset($data['SRC_CURRENCY_ID']) && strlen(strval($data['SRC_CURRENCY_ID'])) > 0 ? strval($data['SRC_CURRENCY_ID']) : CCrmCurrency::GetBaseCurrencyID(); $dstCurrencyID = isset($data['DST_CURRENCY_ID']) && strlen(strval($data['DST_CURRENCY_ID'])) > 0 ? strval($data['DST_CURRENCY_ID']) : CCrmCurrency::GetBaseCurrencyID(); echo CUtil::PhpToJSObject(array('SUM' => CCrmCurrency::ConvertMoney($srcSum, $srcCurrencyID, $dstCurrencyID))); } elseif ($mode === 'ADD_PRODUCT') {