Exemplo n.º 1
0
$arResult['ALLOW_LD_TAX'] = $arResult['ALLOW_LD_TAX'] || $arResult['HIDE_ALL_TAXES'];
$arResult['LOCATION_ID'] = isset($arParams['LOCATION_ID']) ? $arParams['LOCATION_ID'] : '';
$arResult['PRODUCT_ROW_TAX_UNIFORM'] = COption::GetOptionString('crm', 'product_row_tax_uniform', 'Y') === 'Y';
$arResult['INVOICE_MODE'] = $ownerType === 'I';
$arResult['HIDE_TAX_INCLUDED_COLUMN'] = $arResult['INVOICE_MODE'];
$arResult['CATALOG_TYPE_ID'] = CCrmCatalog::GetCatalogTypeID();
// copy flag
$bCopy = $arParams['COPY_FLAG'] === 'Y' ? true : false;
// Check currency (national currency by default)
$currencyID = $arResult['CURRENCY_ID'] = isset($arParams['CURRENCY_ID']) ? (string) $arParams['CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID();
$currency = CCrmCurrency::GetByID($currencyID);
if (!$currency) {
    ShowError(GetMessage('CRM_CURRENCY_IS_NOT_FOUND', array('#CURRENCY_ID#' => $currencyID)));
    return;
}
$arResult['CURRENCY_FORMAT'] = CCrmCurrency::GetCurrencyFormatString($currencyID);
//$exchRate = $arResult['EXCH_RATE'] = isset($arParams['EXCH_RATE']) ? (double)$arParams['EXCH_RATE'] : 1.0;
//$arResult['CURRENCY_DISPLAY_NAME'] = $currency['ID']; //ID is ISO 4217
// Prepare source data
if (isset($arParams['PRODUCT_ROWS']) && is_array($arParams['PRODUCT_ROWS'])) {
    $arResult['PRODUCT_ROWS'] = $arParams['PRODUCT_ROWS'];
    foreach ($arResult['PRODUCT_ROWS'] as &$arProdRow) {
        $productID = intval($arProdRow['PRODUCT_ID']);
        if (isset($arProdRow['PRODUCT_NAME'])) {
            continue;
        }
        $dbRes = CCrmProduct::GetList(array(), array('ID' => $productID), array('NAME'));
        $arProdRow['PRODUCT_NAME'] = is_array($arRes = $dbRes->Fetch()) ? $arRes['NAME'] : '[' . strval($productID) . ']';
    }
    unset($arProdRow);
} else {
Exemplo n.º 2
0
    //	{
    //		$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') {