<?php $defaultMeasure = \Bitrix\Crm\Measure::getDefaultMeasure(); $defaultTax = CCrmTax::GetDefaultVatRateInfo(); $measures = \Bitrix\Crm\Measure::getMeasures(100); $productTotalContainerID = $arResult['PREFIX'] . '_product_sum_total_container'; $rowIdPrefix = $arResult['PREFIX'] . '_product_row_'; $productEditorCfg = array('sessid' => bitrix_sessid(), 'serviceUrl' => '/bitrix/components/bitrix/crm.product_row.list/ajax.php?' . bitrix_sessid_get(), 'productSearchUrl' => '/bitrix/components/bitrix/crm.product.list/list.ajax.php?' . bitrix_sessid_get(), 'pathToProductShow' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_PRODUCT_SHOW']), 'pathToProductEdit' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_PRODUCT_EDIT']), 'ownerType' => $arResult['OWNER_TYPE'], 'invoiceMode' => $arResult['INVOICE_MODE'], 'ownerID' => $arResult['OWNER_ID'], 'currencyID' => $arResult['CURRENCY_ID'], 'locationID' => $arResult['LOCATION_ID'], 'currencyFormat' => $arResult['CURRENCY_FORMAT'], 'formID' => $arResult['FORM_ID'], 'productRowsTabID' => $arResult['TAB_ID'], 'containerID' => $containerID, 'productContainerID' => $productContainerID, 'productTotalContainerID' => $productTotalContainerID, 'choiceBtnID' => $choiceProductBtnID, 'addBtnID' => $addProductBtnID, 'productCreateDialogSettings' => isset($arResult['PRODUCT_CREATE_DLG_SETTINGS']) ? $arResult['PRODUCT_CREATE_DLG_SETTINGS'] : null, 'modeBtnID' => $modeBtnID, 'addRowBtnID' => $addRowBtnID, 'canAddProduct' => $bCanAddProduct, 'taxValueID' => $arResult['PREFIX'] . '_tax_value', 'hideModeButton' => $bHideModeButton, 'dataFieldName' => $arResult['PRODUCT_DATA_FIELD_NAME'], 'readOnly' => $readOnly, 'initEditable' => $bInitEditable, 'enableRawCatalogPricing' => $arResult['ENABLE_RAW_CATALOG_PRICING'], 'defaultMeasure' => $defaultMeasure, 'measures' => $measures, 'priceTitleId' => $priceTitleId, 'discountTypeText' => array(\Bitrix\Crm\Discount::UNDEFINED => '-', \Bitrix\Crm\Discount::PERCENTAGE => '%', \Bitrix\Crm\Discount::MONETARY => $currencyText), 'siteId' => $arResult['SITE_ID'], 'clientTypeName' => $arResult['CLIENT_TYPE_NAME'], 'productFields' => array('PRODUCT_NAME', 'PRICE', 'QUANTITY', 'MEASURE', 'DISCOUNT', 'DISCOUNT_SUBTOTAL', 'TAX_RATE', 'TAX_INCLUDED', 'TAX_SUM', 'SUM'), 'rowIdPrefix' => $rowIdPrefix, 'items' => array(), 'jsEventsManagerId' => $jsEventsManagerId); $productEditorCfg['hideTaxIncludedColumn'] = $arResult['HIDE_TAX_INCLUDED_COLUMN']; $productEditorCfg['hideAllTaxes'] = $arResult['HIDE_ALL_TAXES']; $productEditorCfg['allowTax'] = $arResult['ALLOW_TAX']; $productEditorCfg['taxUniform'] = $arResult['PRODUCT_ROW_TAX_UNIFORM']; $productEditorCfg['defaultTax'] = $defaultTax; $productEditorCfg['allowLDTax'] = $arResult['ALLOW_LD_TAX']; $taxes = array(); if ($arResult['ALLOW_TAX']) { $productEditorCfg['taxes'] = $taxes = CCrmTax::GetVatRateInfos(); } $taxRatesOrig = array(); foreach ($taxes as $tax) { $taxRatesOrig[] = $tax['VALUE']; } $productEditorCfg['enableTax'] = $arResult['ENABLE_TAX']; $productEditorCfg['enableDiscount'] = $arResult['ENABLE_DISCOUNT']; for ($i = 0; $i < $nProductRows; $i++) { $row = $arResult['PRODUCT_ROWS'][$i]; $rowID = $rowIdPrefix . strval($i); $productID = intval($row['PRODUCT_ID']); $productName = isset($row['PRODUCT_NAME']) ? $row['PRODUCT_NAME'] : ''; if ($productName === '') { $productName = $productID > 0 && isset($row['ORIGINAL_PRODUCT_NAME']) ? $row['ORIGINAL_PRODUCT_NAME'] : "[{$productID}]"; }
unset($totalSum, $totalTax); $arResult['FORM_ID'] = isset($arParams['FORM_ID']) ? $arParams['FORM_ID'] : ''; $arResult['TAB_ID'] = isset($arParams['TAB_ID']) ? $arParams['TAB_ID'] : ''; $arResult['PREFIX'] = isset($arParams['PREFIX']) ? $arParams['PREFIX'] : ''; if ($arResult['PREFIX'] === '') { $arResult['PREFIX'] = htmlspecialcharsbx($ownerID > 0 ? strtolower($ownerName) . '_' . strval($ownerID) : 'new_' . strtolower($ownerName)); } $arResult['ID'] = isset($arParams['ID']) ? $arParams['ID'] : ''; if ($arResult['ID'] === '') { $arResult['ID'] = $arResult['PREFIX'] . '_product_editor'; } //$arResult['CONTAINER_CLASS'] = htmlspecialcharsbx(strtolower($ownerName).'-product-rows'); $arResult['PRODUCT_DATA_FIELD_NAME'] = isset($arParams['PRODUCT_DATA_FIELD_NAME']) ? $arParams['PRODUCT_DATA_FIELD_NAME'] : 'PRODUCT_ROW_DATA'; $arResult['ENABLE_CUSTOM_PRODUCTS'] = isset($arParams['ENABLE_CUSTOM_PRODUCTS']) ? strtoupper($arParams['ENABLE_CUSTOM_PRODUCTS']) === 'Y' : true; $arResult['ENABLE_RAW_CATALOG_PRICING'] = !isset($arParams['ENABLE_RAW_CATALOG_PRICING']) || strtoupper($arParams['ENABLE_RAW_CATALOG_PRICING']) === 'Y'; $arResult['TAX_INFOS'] = $arResult['ALLOW_TAX'] ? CCrmTax::GetVatRateInfos() : array(); $arResult['ENABLE_TAX'] = isset($arParams['ENABLE_TAX']) ? $arParams['ENABLE_TAX'] === 'Y' : false; $arResult['ENABLE_DISCOUNT'] = isset($arParams['ENABLE_DISCOUNT']) ? $arParams['ENABLE_DISCOUNT'] === 'Y' : false; $settings = array(); if ($ownerID > 0) { $settings = CCrmProductRow::LoadSettings($ownerType, $ownerID); if (isset($settings['ENABLE_TAX'])) { $arResult['ENABLE_TAX'] = (bool) $settings['ENABLE_TAX']; } if (isset($settings['ENABLE_DISCOUNT'])) { $arResult['ENABLE_DISCOUNT'] = (bool) $settings['ENABLE_DISCOUNT']; } } $arResult['SITE_ID'] = SITE_ID; $arResult['CAN_ADD_PRODUCT'] = $perms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'WRITE'); // measure list items