<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die; } global $APPLICATION; CCrmComponentHelper::RegisterScriptLink('/bitrix/js/crm/activity.js'); CCrmComponentHelper::RegisterScriptLink('/bitrix/js/crm/interface_grid.js'); if ($arResult['NEED_FOR_REBUILD_DUP_INDEX']) { ?> <div id="rebuildLeadDupIndexMsg" class="crm-view-message"> <?php echo GetMessage('CRM_LEAD_REBUILD_DUP_INDEX', array('#ID#' => 'rebuildLeadDupIndexLink', '#URL#' => '#')); ?> </div><?php } if ($arResult['NEED_FOR_REBUILD_LEAD_ATTRS']) { ?> <div id="rebuildLeadAttrsMsg" class="crm-view-message"> <?php echo GetMessage('CRM_LEAD_REBUILD_ACCESS_ATTRS', array('#ID#' => 'rebuildLeadAttrsLink', '#URL#' => $arResult['PATH_TO_PRM_LIST'])); ?> </div><?php } if (isset($arResult['ERROR_HTML'])) { ShowError($arResult['ERROR_HTML']); } $currentUserID = $arResult['CURRENT_USER_ID']; $isInternal = $arResult['INTERNAL']; $activityEditorID = ''; if (!$isInternal) {
'actionName': '<?php echo CUtil::JSEscape($actionName); ?> ', 'dialog': <?php echo CUtil::PhpToJSObject($dialogSettings); ?> } ); } ); </script><?php } break; case 'crm_client_selector': CCrmComponentHelper::RegisterScriptLink('/bitrix/js/crm/crm.js'); $params = isset($field['componentParams']) ? $field['componentParams'] : array(); if (!empty($params)) { $entityID = $inputValue = isset($params['INPUT_VALUE']) ? $params['INPUT_VALUE'] : ''; $entityType = isset($params['ENTITY_TYPE']) ? $params['ENTITY_TYPE'] : ''; switch (substr($entityID, 0, 2)) { case 'C_': $valEntityType = 'contact'; break; case 'CO': $valEntityType = 'company'; break; default: $valEntityType = ''; } $entityID = intval(substr($entityID, intval(strpos($entityID, '_')) + 1));
$jsCoreInit[] = 'uploader'; $jsCoreInit[] = 'file_dialog'; } CJSCore::Init($jsCoreInit); if ($arResult['ENABLE_DISK']) { CCrmComponentHelper::RegisterScriptLink('/bitrix/js/crm/disk_uploader.js'); $APPLICATION->SetAdditionalCSS('/bitrix/components/bitrix/disk.uf.file/templates/.default/style.css'); } if ($arResult['ENABLE_WEBDAV']) { $APPLICATION->SetAdditionalCSS('/bitrix/components/bitrix/webdav/templates/.default/style.css'); $APPLICATION->SetAdditionalCSS('/bitrix/components/bitrix/webdav.user.field/templates/.default/style.css'); $APPLICATION->SetAdditionalCSS('/bitrix/js/webdav/css/file_dialog.css'); CCrmComponentHelper::RegisterScriptLink('/bitrix/js/main/core/core_dd.js'); CCrmComponentHelper::RegisterScriptLink('/bitrix/js/main/file_upload_agent.js'); CCrmComponentHelper::RegisterScriptLink('/bitrix/js/webdav/file_dialog.js'); CCrmComponentHelper::RegisterScriptLink('/bitrix/js/crm/webdav_uploader.js'); } $elementID = isset($arResult['ELEMENT']['ID']) ? $arResult['ELEMENT']['ID'] : 0; $arResult['CRM_CUSTOM_PAGE_TITLE'] = GetMessage($elementID > 0 ? 'CRM_QUOTE_SHOW_TITLE' : 'CRM_QUOTE_SHOW_NEW_TITLE', array('#QUOTE_NUMBER#' => !empty($arResult['ELEMENT']['QUOTE_NUMBER']) ? $arResult['ELEMENT']['QUOTE_NUMBER'] : '-', '#BEGINDATE#' => !empty($arResult['ELEMENT']['BEGINDATE']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arResult['ELEMENT']['BEGINDATE']), 'SHORT', SITE_ID)) : '-')); $arTabs = array(); $arTabs[] = array('id' => 'tab_1', 'name' => GetMessage('CRM_TAB_1'), 'title' => GetMessage('CRM_TAB_1_TITLE'), 'icon' => '', 'fields' => $arResult['FIELDS']['tab_1']); $productFieldset = array(); foreach ($arTabs[0]['fields'] as $k => &$field) { if ($field['id'] === 'section_product_rows') { $productFieldset['NAME'] = $field['name']; unset($arTabs[0]['fields'][$k]); } if ($field['id'] === 'PRODUCT_ROWS') { $productFieldset['HTML'] = $field['value']; unset($arTabs[0]['fields'][$k]); break;
public static function RenderProgressControl($arParams) { if (!is_array($arParams)) { return ''; } CCrmComponentHelper::RegisterScriptLink('/bitrix/js/crm/progress_control.js'); $entityTypeName = isset($arParams['ENTITY_TYPE_NAME']) ? $arParams['ENTITY_TYPE_NAME'] : ''; $leadTypeName = CCrmOwnerType::ResolveName(CCrmOwnerType::Lead); $dealTypeName = CCrmOwnerType::ResolveName(CCrmOwnerType::Deal); $invoiceTypeName = CCrmOwnerType::ResolveName(CCrmOwnerType::Invoice); $quoteTypeName = CCrmOwnerType::ResolveName(CCrmOwnerType::Quote); $infos = isset($arParams['INFOS']) ? $arParams['INFOS'] : null; if (!is_array($infos) || empty($infos)) { if ($entityTypeName === $leadTypeName) { if (!self::$LEAD_STATUSES) { self::$LEAD_STATUSES = CCrmStatus::GetStatus('STATUS'); } $infos = self::$LEAD_STATUSES; } elseif ($entityTypeName === $dealTypeName) { if (!self::$DEAL_STAGES) { self::$DEAL_STAGES = CCrmStatus::GetStatus('DEAL_STAGE'); } $infos = self::$DEAL_STAGES; } elseif ($entityTypeName === $quoteTypeName) { if (!self::$QUOTE_STATUSES) { self::$QUOTE_STATUSES = CCrmStatus::GetStatus('QUOTE_STATUS'); } $infos = self::$QUOTE_STATUSES; } elseif ($entityTypeName === $invoiceTypeName) { if (!self::$INVOICE_STATUSES) { self::$INVOICE_STATUSES = CCrmStatus::GetStatus('INVOICE_STATUS'); } $infos = self::$INVOICE_STATUSES; } } if (!is_array($infos) || empty($infos)) { return ''; } $registerSettings = isset($arParams['REGISTER_SETTINGS']) && is_bool($arParams['REGISTER_SETTINGS']) ? $arParams['REGISTER_SETTINGS'] : false; $registrationScript = ''; if ($registerSettings) { if ($entityTypeName === $leadTypeName) { $registrationScript = self::RenderLeadStatusSettings(); } elseif ($entityTypeName === $dealTypeName) { $registrationScript = self::RenderDealStageSettings(); } elseif ($entityTypeName === $quoteTypeName) { $registrationScript = self::RenderQuoteStatusSettings(); } elseif ($entityTypeName === $invoiceTypeName) { $registrationScript = self::RenderInvoiceStatusSettings(); } } $finalID = isset($arParams['FINAL_ID']) ? $arParams['FINAL_ID'] : ''; if ($finalID === '') { if ($entityTypeName === $leadTypeName) { $finalID = 'CONVERTED'; } elseif ($entityTypeName === $dealTypeName) { $finalID = 'WON'; } elseif ($entityTypeName === $quoteTypeName) { $finalID = 'APPROVED'; } elseif ($entityTypeName === $invoiceTypeName) { $finalID = 'P'; } } $finalUrl = isset($arParams['FINAL_URL']) ? $arParams['FINAL_URL'] : ''; if ($finalUrl === '' && $entityTypeName === $leadTypeName) { $arParams['FINAL_URL'] = isset($arParams['LEAD_CONVERT_URL']) ? $arParams['LEAD_CONVERT_URL'] : ''; } $currentInfo = null; $currentID = isset($arParams['CURRENT_ID']) ? $arParams['CURRENT_ID'] : ''; if ($currentID !== '' && isset($infos[$currentID])) { $currentInfo = $infos[$currentID]; } $currentSort = is_array($currentInfo) && isset($currentInfo['SORT']) ? intval($currentInfo['SORT']) : -1; $finalInfo = null; if ($finalID !== '' && isset($infos[$finalID])) { $finalInfo = $infos[$finalID]; } $finalSort = is_array($finalInfo) && isset($finalInfo['SORT']) ? intval($finalInfo['SORT']) : -1; $isSuccessful = $currentSort === $finalSort; $isFailed = $currentSort > $finalSort; $stepHtml = ''; foreach ($infos as &$info) { $ID = isset($info['STATUS_ID']) ? $info['STATUS_ID'] : ''; $sort = isset($info['SORT']) ? intval($info['SORT']) : 0; if ($sort > $finalSort) { break; } $stepHtml .= '<td class="crm-list-stage-bar-part'; if ($sort <= $currentSort) { $stepHtml .= ' crm-list-stage-passed'; } $stepHtml .= '"><div class="crm-list-stage-bar-block crm-stage-' . htmlspecialcharsbx(strtolower($ID)) . '"><div class="crm-list-stage-bar-btn"></div></div></td>'; } unset($info); $wrapperClass = ''; if ($isSuccessful) { $wrapperClass = ' crm-list-stage-end-good'; } elseif ($isFailed) { $wrapperClass = ' crm-list-stage-end-bad'; } $prefix = isset($arParams['PREFIX']) ? $arParams['PREFIX'] : ''; $entityID = isset($arParams['ENTITY_ID']) ? intval($arParams['ENTITY_ID']) : 0; $controlID = isset($arParams['CONTROL_ID']) ? $arParams['CONTROL_ID'] : ''; if ($controlID === '') { $controlID = $entityTypeName !== '' && $entityID > 0 ? "{$prefix}{$entityTypeName}_{$entityID}" : uniqid($prefix); } $isReadOnly = isset($arParams['READ_ONLY']) ? (bool) $arParams['READ_ONLY'] : false; $legendContainerID = isset($arParams['LEGEND_CONTAINER_ID']) ? $arParams['LEGEND_CONTAINER_ID'] : ''; $displayLegend = $legendContainerID === '' && (!isset($arParams['DISPLAY_LEGEND']) || $arParams['DISPLAY_LEGEND']); $legendHtml = ''; if ($displayLegend) { $legendHtml = '<div class="crm-list-stage-bar-title">' . htmlspecialcharsbx(isset($infos[$currentID]) && isset($infos[$currentID]['NAME']) ? $infos[$currentID]['NAME'] : $currentID) . '</div>'; } return $registrationScript . '<div class="crm-list-stage-bar' . $wrapperClass . '" id="' . htmlspecialcharsbx($controlID) . '"><table class="crm-list-stage-bar-table"><tr>' . $stepHtml . '</tr></table>' . '<script type="text/javascript">BX.ready(function(){ BX.CrmProgressControl.create("' . CUtil::JSEscape($controlID) . '"' . ', BX.CrmParamBag.create({"containerId": "' . CUtil::JSEscape($controlID) . '"' . ', "entityType":"' . CUtil::JSEscape($entityTypeName) . '"' . ', "entityId":"' . CUtil::JSEscape($entityID) . '"' . ', "legendContainerId":"' . CUtil::JSEscape($legendContainerID) . '"' . ', "serviceUrl":"' . (isset($arParams['SERVICE_URL']) ? CUtil::JSEscape($arParams['SERVICE_URL']) : '') . '"' . ', "finalUrl":"' . (isset($arParams['FINAL_URL']) ? CUtil::JSEscape($arParams['FINAL_URL']) : '') . '"' . ', "finalScript":"' . (isset($arParams['FINAL_SCRIPT']) ? CUtil::JSEscape($arParams['FINAL_SCRIPT']) : '') . '"' . ', "currentStepId":"' . CUtil::JSEscape($currentID) . '"' . ', "readOnly":' . ($isReadOnly ? 'true' : 'false') . ' }));});</script>' . '</div>' . $legendHtml; }