} else { /*if ($originatorId > 0 && $originId > 0) { $arFields['ORIGINATOR_ID'] = $originatorId; $arFields['ORIGIN_ID'] = $originId; }*/ $ID = $CCrmQuote->Add($arFields, true, array('REGISTER_SONET_EVENT' => false)); $bSuccess = $ID !== false; if ($bSuccess) { $arResult['ELEMENT']['ID'] = $ID; } } if ($bSuccess) { // Save settings if (is_array($productRowSettings) && count($productRowSettings) > 0) { $arSettings = CCrmProductRow::LoadSettings(CCrmQuote::OWNER_TYPE, $arResult['ELEMENT']['ID']); foreach ($productRowSettings as $k => $v) { $arSettings[$k] = $v; } CCrmProductRow::SaveSettings(CCrmQuote::OWNER_TYPE, $arResult['ELEMENT']['ID'], $arSettings); } unset($arSettings); } if ($bSuccess && $processProductRows && ($bEdit || !empty($arProd))) { // Suppress owner synchronization $bSuccess = $CCrmQuote::SaveProductRows($arResult['ELEMENT']['ID'], $arProd, true, true, false); if (!$bSuccess) { $arResult['ERROR_MESSAGE'] = GetMessage('PRODUCT_ROWS_SAVING_ERROR'); } } if ($bSuccess) {
$bSuccess = $CCrmDeal->Update($arResult['ELEMENT']['ID'], $arFields, true, true, array('REGISTER_SONET_EVENT' => true)); } else { if ($originatorId > 0 && $originId > 0) { $arFields['ORIGINATOR_ID'] = $originatorId; $arFields['ORIGIN_ID'] = $originId; } $ID = $CCrmDeal->Add($arFields, true, array('REGISTER_SONET_EVENT' => true)); $bSuccess = $ID !== false; if ($bSuccess) { $arResult['ELEMENT']['ID'] = $ID; } } if ($bSuccess) { // Save settings if (is_array($productRowSettings) && count($productRowSettings) > 0) { $arSettings = CCrmProductRow::LoadSettings('D', $arResult['ELEMENT']['ID']); foreach ($productRowSettings as $k => $v) { $arSettings[$k] = $v; } CCrmProductRow::SaveSettings('D', $arResult['ELEMENT']['ID'], $arSettings); } unset($arSettings); } if ($bSuccess && !$isExternal && $processProductRows && ($bEdit || !empty($arProd))) { // Suppress owner synchronization $bSuccess = $CCrmDeal::SaveProductRows($arResult['ELEMENT']['ID'], $arProd, true, true, false); if (!$bSuccess) { $arResult['ERROR_MESSAGE'] = GetMessage('PRODUCT_ROWS_SAVING_ERROR'); } } if ($bSuccess) {
public static function LoadTotalInfo($ownerType, $ownerID) { $result = array(); $settings = CCrmProductRow::LoadSettings($ownerType, $ownerID); $taxMode = isset($settings['TAX_MODE']) ? intval($settings['TAX_MODE']) : 0; if ($taxMode !== self::TAX_MODE && $taxMode !== self::LD_TAX_MODE) { $taxMode = CCrmTax::isVatMode() ? self::TAX_MODE : self::LD_TAX_MODE; } $result['TAX_MODE'] = $taxMode; if (is_array($settings['TAX_LIST'])) { $result['TAX_LIST'] = $settings['TAX_LIST']; } return $result; }
$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 $measureListItems = array('' => GetMessage('CRM_MEASURE_NOT_SELECTED')); $measures = \Bitrix\Crm\Measure::getMeasures(100); if (is_array($measures)) { foreach ($measures as $measure) { $measureListItems[$measure['ID']] = $measure['SYMBOL'];
$APPLICATION->IncludeComponent('bitrix:crm.company.edit', 'convert', array('ELEMENT_ID' => 0, 'FORM_ID' => $arResult['FORM_ID'], 'INTERNAL_FILTER' => true, 'CONVERT' => true, 'VALUES' => $arResult['ELEMENT']['COMPANY']), false); $sVal = ob_get_contents(); ob_end_clean(); $arResult['FIELDS']['tab_convert'][] = array('id' => 'LEAD_COMPANY_CONVERT', 'name' => GetMessage('CRM_FIELD_LEAD_COMPANY'), 'colspan' => true, 'type' => 'custom', 'value' => $sVal); } if (!$CrmPerms->HavePerm('DEAL', BX_CRM_PERM_NONE, 'ADD')) { $arDealVals = $arResult['ELEMENT']['DEAL']; if (!isset($arDealVals['PRODUCT_ROWS'])) { $arProductRows = CCrmLead::LoadProductRows($arParams['ELEMENT_ID']); if (count($arProductRows) > 0) { $arDealVals['PRODUCT_ROWS'] = $arProductRows; } } $componentSettings = array('ELEMENT_ID' => 0, 'FORM_ID' => $arResult['FORM_ID'], 'INTERNAL_FILTER' => true, 'CONVERT' => true, 'VALUES' => $arDealVals, 'VARS_FROM_FORM' => $bVarsFromForm, 'PATH_TO_PRODUCT_EDIT' => $arResult['PATH_TO_PRODUCT_EDIT'], 'PATH_TO_PRODUCT_SHOW' => $arResult['PATH_TO_PRODUCT_SHOW']); // load product row settings $productRowSettings = CCrmProductRow::LoadSettings('L', $arParams['ELEMENT_ID']); if (isset($productRowSettings['ENABLE_TAX'])) { $componentSettings['ENABLE_TAX'] = (bool) $productRowSettings['ENABLE_TAX'] ? 'Y' : 'N'; } if (isset($productRowSettings['ENABLE_DISCOUNT'])) { $componentSettings['ENABLE_DISCOUNT'] = (bool) $productRowSettings['ENABLE_DISCOUNT'] ? 'Y' : 'N'; } unset($productRowSettings); ob_start(); $APPLICATION->IncludeComponent('bitrix:crm.deal.edit', 'convert', $componentSettings, false); $sVal = ob_get_contents(); ob_end_clean(); $arResult['FIELDS']['tab_convert'][] = array('id' => 'LEAD_DEAL_CONVERT', 'name' => GetMessage('CRM_FIELD_LEAD_DEAL'), 'colspan' => true, 'type' => 'custom', 'value' => $sVal); } $this->IncludeComponentTemplate(); include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/bitrix/crm.lead/include/nav.php';