protected static function ensurePaySystemsLoaded() { $arPersonTypes = CCrmPaySystem::getPersonTypeIDs(); foreach ($arPersonTypes as $personTypeId) { $paySystems = CCrmPaySystem::GetPaySystemsListItems($personTypeId); if (is_array($paySystems)) { self::$PAY_SYSTEMS[$personTypeId] = $paySystems; } } }
public static function PrepareInvoiceItem(&$item, &$params, $enums = array(), $options = array()) { $itemID = intval($item['~ID']); if (isset($params['INVOICE_SHOW_URL_TEMPLATE'])) { $item['SHOW_URL'] = CComponentEngine::makePathFromTemplate($params['INVOICE_SHOW_URL_TEMPLATE'], array('invoice_id' => $itemID)); } if (isset($params['INVOICE_EDIT_URL_TEMPLATE'])) { $item['EDIT_URL'] = CComponentEngine::makePathFromTemplate($params['INVOICE_EDIT_URL_TEMPLATE'], array('invoice_id' => $itemID)); } if (!isset($item['~ACCOUNT_NUMBER'])) { $item['~ACCOUNT_NUMBER'] = $item['ACCOUNT_NUMBER'] = ''; } if (!isset($item['~DATE_BILL'])) { $item['~DATE_BILL'] = $item['DATE_BILL'] = ''; } else { $item['~DATE_BILL'] = ConvertTimeStamp(MakeTimeStamp($item['~DATE_BILL']), 'SHORT', SITE_ID); $item['DATE_BILL'] = htmlspecialcharsbx($item['~DATE_BILL']); } if (!isset($item['~DATE_PAY_BEFORE'])) { $item['~DATE_PAY_BEFORE'] = $item['DATE_PAY_BEFORE'] = ''; $item['DATE_PAY_BEFORE_STAMP'] = 0; } if ($item['~DATE_PAY_BEFORE'] !== '') { $item['~DATE_PAY_BEFORE'] = ConvertTimeStamp(MakeTimeStamp($item['~DATE_PAY_BEFORE']), 'SHORT', SITE_ID); $item['DATE_PAY_BEFORE'] = htmlspecialcharsbx($item['~DATE_PAY_BEFORE']); } if (!isset($item['~ORDER_TOPIC'])) { $item['~ORDER_TOPIC'] = $item['ORDER_TOPIC'] = ''; } // COMMENTS --> if (!isset($item['~COMMENTS'])) { $item['~COMMENTS'] = $item['COMMENTS'] = ''; } if (!isset($item['~USER_DESCRIPTION'])) { $item['~USER_DESCRIPTION'] = $item['USER_DESCRIPTION'] = ''; } //<-- COMMENTS // STATUS --> if (!isset($item['~STATUS_ID'])) { $item['~STATUS_ID'] = $item['STATUS_ID'] = ''; } $statusID = $item['~STATUS_ID']; if ($statusID !== '') { $statuses = self::GetStatusList('INVOICE_STATUS'); if (!isset($statuses[$statusID])) { $item['~STATUS_TEXT'] = $item['STATUS_TEXT']; } else { $item['~STATUS_TEXT'] = $statuses[$statusID]; $item['STATUS_TEXT'] = htmlspecialcharsbx($item['~STATUS_TEXT']); } } //<-- STATUS //PRICE, CURRENCY --> $price = isset($item['~PRICE']) ? doubleval($item['~PRICE']) : 0.0; $item['~PRICE'] = $item['PRICE'] = $price; $currencyID = isset($item['~CURRENCY']) ? $item['~CURRENCY'] : ''; if ($currencyID === '') { $currencyID = $item['~CURRENCY'] = CCrmCurrency::GetBaseCurrencyID(); $item['CURRENCY'] = htmlspecialcharsbx($currencyID); } $item['~CURRENCY_NAME'] = CCrmCurrency::GetCurrencyName($currencyID); $item['CURRENCY_NAME'] = htmlspecialcharsbx($item['~CURRENCY_NAME']); $item['~FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($price, $currencyID); $item['FORMATTED_PRICE'] = strip_tags($item['~FORMATTED_PRICE']); //<-- PRICE, CURRENCY //DEAL --> $dealID = isset($item['~UF_DEAL_ID']) ? intval($item['~UF_DEAL_ID']) : 0; $item['~DEAL_ID'] = $item['DEAL_ID'] = $dealID; if ($dealID <= 0) { $item['~DEAL_TITLE'] = $item['DEAL_TITLE'] = ''; } else { $item['~DEAL_TITLE'] = CCrmOwnerType::GetCaption(CCrmOwnerType::Deal, $dealID); $item['DEAL_TITLE'] = htmlspecialcharsbx($item['~DEAL_TITLE']); } //<-- DEAL // LOCATION --> if (is_array($options) && isset($options['ENABLE_LOCATION']) && $options['ENABLE_LOCATION']) { $properties = is_array($enums) && isset($enums['INVOICE_PROPERTIES']) && is_array($enums['INVOICE_PROPERTIES']) ? $enums['INVOICE_PROPERTIES'] : null; $locationID = is_array($properties) && isset($properties['PR_LOCATION']) ? intval($properties['PR_LOCATION']['VALUE']) : 0; $item['~LOCATION_ID'] = $item['LOCATION_ID'] = $locationID; $item['~LOCATION_NAME'] = $locationID > 0 ? CCrmInvoice::ResolveLocationName($locationID) : ''; $item['LOCATION_NAME'] = htmlspecialcharsbx($item['~LOCATION_NAME']); } //<-- LOCATION $enableMultiFields = is_array($options) && isset($options['ENABLE_MULTI_FIELDS']) && $options['ENABLE_MULTI_FIELDS']; //CONTACT --> $contactID = isset($item['UF_CONTACT_ID']) ? intval($item['UF_CONTACT_ID']) : 0; $item['~CONTACT_ID'] = $item['CONTACT_ID'] = $contactID; $contact = null; if ($contactID > 0) { $dbContact = CCrmContact::GetListEx(array(), array('=ID' => $contactID), false, false, array('NAME', 'SECOND_NAME', 'LAST_NAME', 'POST', 'PHOTO')); $contact = $dbContact ? $dbContact->Fetch() : null; } if (!$contact) { $item['~CONTACT_FULL_NAME'] = $item['CONTACT_FULL_NAME'] = $item['~CONTACT_POST'] = $item['CONTACT_POST'] = ''; $item['~CONTACT_PHOTO'] = $item['CONTACT_PHOTO'] = 0; if ($enableMultiFields) { $item['CONTACT_FM'] = array(); } } else { $item['~CONTACT_FULL_NAME'] = CUser::FormatName(\Bitrix\Crm\Format\PersonNameFormatter::getFormat(), array('LOGIN' => '', 'NAME' => isset($contact['NAME']) ? $contact['NAME'] : '', 'SECOND_NAME' => isset($contact['SECOND_NAME']) ? $contact['SECOND_NAME'] : '', 'LAST_NAME' => isset($contact['LAST_NAME']) ? $contact['LAST_NAME'] : ''), false, false); $item['CONTACT_FULL_NAME'] = htmlspecialcharsbx($item['~CONTACT_FULL_NAME']); $item['~CONTACT_POST'] = isset($contact['POST']) ? $contact['POST'] : ''; $item['CONTACT_POST'] = htmlspecialcharsbx($item['~CONTACT_POST']); $item['~CONTACT_PHOTO'] = $item['CONTACT_PHOTO'] = isset($contact['PHOTO']) ? intval($contact['PHOTO']) : 0; if ($enableMultiFields) { $item['CONTACT_FM'] = array(); $dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'CONTACT', 'ELEMENT_ID' => $contactID)); if ($dbMultiFields) { while ($multiFields = $dbMultiFields->Fetch()) { $item['CONTACT_FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']); } } } } //<-- CONTACT //COMPANY --> $companyID = isset($item['UF_COMPANY_ID']) ? intval($item['UF_COMPANY_ID']) : 0; $item['~COMPANY_ID'] = $item['COMPANY_ID'] = $companyID; $company = null; if ($companyID > 0) { $dbCompany = CCrmCompany::GetListEx(array(), array('=ID' => $companyID), false, false, array('TITLE', 'LOGO')); $company = $dbCompany ? $dbCompany->Fetch() : null; } if (!$company) { $item['~COMPANY_TITLE'] = $item['COMPANY_TITLE'] = ''; $item['~COMPANY_LOGO'] = $item['COMPANY_LOGO'] = 0; } else { $item['~COMPANY_TITLE'] = isset($company['TITLE']) ? $company['TITLE'] : ''; $item['COMPANY_TITLE'] = htmlspecialcharsbx($item['~COMPANY_TITLE']); $item['~COMPANY_LOGO'] = $item['COMPANY_LOGO'] = isset($company['LOGO']) ? intval($company['LOGO']) : 0; if ($enableMultiFields) { $item['COMPANY_FM'] = array(); $dbMultiFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => $companyID)); if ($dbMultiFields) { while ($multiFields = $dbMultiFields->Fetch()) { $item['COMPANY_FM'][$multiFields['TYPE_ID']][] = array('VALUE' => $multiFields['VALUE'], 'VALUE_TYPE' => $multiFields['VALUE_TYPE']); } } } } //<-- COMPANY $personTypeID = CCrmInvoice::ResolvePersonTypeID($companyID, $contactID); // PAYER_INFO --> if (is_array($options) && isset($options['ENABLE_PAYER_INFO']) && $options['ENABLE_PAYER_INFO']) { if ($companyID <= 0 && $contactID <= 0) { $item['~PAYER_INFO'] = $item['PAYER_INFO'] = ''; } else { // Get invoice properties $properties = isset($item['INVOICE_PROPERTIES']) ? $item['INVOICE_PROPERTIES'] : null; if (!is_array($properties) && $personTypeID > 0) { $properties = CCrmInvoice::GetProperties($itemID, $personTypeID); if ($itemID <= 0) { CCrmInvoice::__RewritePayerInfo($companyID, $contactID, $properties); } } $item['~PAYER_INFO'] = is_array($properties) ? CCrmInvoice::__MakePayerInfoString($properties) : ''; $item['PAYER_INFO'] = htmlspecialcharsbx($item['~PAYER_INFO']); } } //<-- PAYER_INFO // PAY_SYSTEM --> if (!isset($item['~PAY_SYSTEM_ID'])) { $item['~PAY_SYSTEM_ID'] = $item['PAY_SYSTEM_ID'] = ''; } $paySystemID = $item['~PAY_SYSTEM_ID']; $paySystems = is_array($enums) && isset($enums['PAY_SYSTEMS']) && is_array($enums['PAY_SYSTEMS']) ? $enums['PAY_SYSTEMS'] : ($personTypeID > 0 ? CCrmPaySystem::GetPaySystemsListItems($personTypeID) : array()); if (isset($paySystems[$paySystemID])) { $item['~PAY_SYSTEM_NAME'] = $paySystems[$paySystemID]; $item['PAY_SYSTEM_NAME'] = htmlspecialcharsbx($item['~PAY_SYSTEM_NAME']); } else { $item['~PAY_SYSTEM_NAME'] = $item['PAY_SYSTEM_NAME'] = ''; } //<-- PAY_SYSTEM // RESPONSIBLE --> $responsibleID = isset($item['~RESPONSIBLE_ID']) ? intval($item['~RESPONSIBLE_ID']) : 0; $item['RESPONSIBLE_SHOW_URL'] = ''; $item['~RESPONSIBLE_FORMATTED_NAME'] = ''; if ($responsibleID > 0) { $item['RESPONSIBLE_SHOW_URL'] = $params['USER_PROFILE_URL_TEMPLATE'] !== '' ? CComponentEngine::makePathFromTemplate($params['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $responsibleID)) : ''; $item['~RESPONSIBLE_FORMATTED_NAME'] = CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => isset($item['~RESPONSIBLE_LOGIN']) ? $item['~RESPONSIBLE_LOGIN'] : '', 'NAME' => isset($item['~RESPONSIBLE_NAME']) ? $item['~RESPONSIBLE_NAME'] : '', 'LAST_NAME' => isset($item['~RESPONSIBLE_LAST_NAME']) ? $item['~RESPONSIBLE_LAST_NAME'] : '', 'SECOND_NAME' => isset($item['~RESPONSIBLE_SECOND_NAME']) ? $item['~RESPONSIBLE_SECOND_NAME'] : ''), true, false); } $item['RESPONSIBLE_FORMATTED_NAME'] = htmlspecialcharsbx($item['~RESPONSIBLE_FORMATTED_NAME']); //<-- RESPONSIBLE }
if (isset($arFields['UF_DEAL_ID'])) { $dealID = intval($arFields['UF_DEAL_ID']); } } $arResult['CURRENCY_ID'] = $currencyID; // PERSON_TYPE_ID --> if ($companyID > 0 && isset($personTypes['COMPANY'])) { $personTypeID = $personTypes['COMPANY']; } elseif ($contactID > 0 && isset($personTypes['CONTACT'])) { $personTypeID = $personTypes['CONTACT']; } $arResult['PERSON_TYPE_ID'] = $personTypeID; $arResult['PAYER_INFO_FORMAT'] = $personTypeID > 0 ? CCrmMobileHelper::PrepareInvoiceClientInfoFormat($personTypeID) : ''; //<-- PERSON_TYPE_ID // PAY_SYSTEM --> $arResult['PAY_SYSTEMS'] = CCrmPaySystem::GetPaySystemsListItems($personTypeID); if ($entityID > 0) { $paySystemID = isset($arFields['~PAY_SYSTEM_ID']) ? intval($arFields['~PAY_SYSTEM_ID']) : 0; } elseif (!empty($arResult['PAY_SYSTEMS'])) { $paySystemID = $arFields['~PAY_SYSTEM_ID'] = $arFields['PAY_SYSTEM_ID'] = array_shift(array_keys($arResult['PAY_SYSTEMS'])); } //<-- PAY_SYSTEM // INVOICE_PROPERTIES --> $arFields['INVOICE_PROPERTIES'] = array(); $properties = CCrmInvoice::GetProperties($entityID, $personTypeID); if (!is_array($properties)) { $properties = array(); } if ($entityID === 0) { CCrmInvoice::__RewritePayerInfo($companyID, $contactID, $properties); }
} // Special logic for ENTITIES_LINKS headers: expand in 3 columns if ($headerID === 'ENTITIES_LINKS') { $showProductRows = true; echo '"' . GetMessage('CRM_COLUMN_DEAL') . '";'; echo '"' . GetMessage('CRM_COLUMN_COMPANY') . '";'; echo '"' . GetMessage('CRM_COLUMN_CONTACT') . '";'; } else { echo '"' . $arHead['name'] . '";'; } } echo "\n"; $arPersonTypes = CCrmPaySystem::getPersonTypesList(); $arPaySystems = array(); foreach (array_keys($arPersonTypes) as $personTypeId) { $arPaySystems[$personTypeId] = CCrmPaySystem::GetPaySystemsListItems($personTypeId); } unset($personTypeId); foreach ($arResult['INVOICE'] as $i => &$arInvoice) { // Serialize each product row as invoice with single product $productRows = $showProductRows && isset($arInvoice['PRODUCT_ROWS']) ? $arInvoice['PRODUCT_ROWS'] : array(); if (count($productRows) == 0) { // Invoice has no product rows (or they are not displayed) - we have to create dummy for next loop by product rows only $productRows[] = array(); } $invoiceData = array(); $personTypeId = $arInvoice['PERSON_TYPE_ID']; foreach ($productRows as $productRow) { foreach ($arResult['SELECTED_HEADERS'] as $headerID) { $arHead = isset($arHeaders[$headerID]) ? $arHeaders[$headerID] : null; if (!$arHead) {
} // Get invoice properties $arInvoiceProperties = array(); if ($arResult['ELEMENT_ID'] > 0) { $tmpArProps = CCrmInvoice::GetProperties($arResult['ELEMENT_ID'], $personTypeID); if ($tmpArProps !== false) { $arInvoiceProperties = $tmpArProps; if ($bTaxMode && !isset($arFields['PR_LOCATION']) && isset($arInvoiceProperties['PR_LOCATION'])) { $arResult['ELEMENT']['PR_LOCATION'] = $arInvoiceProperties['PR_LOCATION']['VALUE']; } } unset($tmpArProps); } $arResult['ELEMENT']['PAYER_INFO'] = CCrmInvoice::__MakePayerInfoString($arInvoiceProperties); } $arResult['PAY_SYSTEM_LIST'] = $personTypeID > 0 ? CCrmPaySystem::GetPaySystemsListItems($personTypeID) : array(); if (isset($arResult['ELEMENT']['PAY_SYSTEM_ID']) && isset($arResult['PAY_SYSTEM_LIST'][$arResult['ELEMENT']['PAY_SYSTEM_ID']])) { $arResult['ELEMENT']['PAY_SYSTEM_NAME'] = $arResult['PAY_SYSTEM_LIST'][$arResult['ELEMENT']['PAY_SYSTEM_ID']]; } $isExternal = $arResult['IS_EXTERNAL'] = isset($arResult['ELEMENT']['ORIGINATOR_ID']) && isset($arResult['ELEMENT']['ORIGIN_ID']) && intval($arResult['ELEMENT']['ORIGINATOR_ID']) > 0 && intval($arResult['ELEMENT']['ORIGIN_ID']) > 0; $arResult['ERROR_MESSAGE'] = ''; $arResult['FORM_ID'] = 'CRM_INVOICE_SHOW_V12' . ($isExternal ? "_E" : ""); $arResult['GRID_ID'] = 'CRM_INVOICE_LIST_V12' . ($isExternal ? "_E" : ""); $arResult['BACK_URL'] = $arParams['PATH_TO_INVOICE_LIST']; $enableInstantEdit = $arResult['ENABLE_INSTANT_EDIT'] = $arResult['CAN_EDIT']; $arResult['FIELDS'] = array(); $readOnlyMode = !$enableInstantEdit || $isExternal; $arResult['FIELDS']['tab_1'][] = array('id' => 'section_invoice_info', 'name' => GetMessage('CRM_SECTION_INVOICE_INFO'), 'type' => 'section', 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'ACCOUNT_NUMBER', 'name' => GetMessage('CRM_FIELD_ACCOUNT_NUMBER'), 'params' => array('size' => 100), 'value' => isset($arResult['ELEMENT']['ACCOUNT_NUMBER']) ? $arResult['ELEMENT']['ACCOUNT_NUMBER'] : '', 'type' => 'label', 'required' => true, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'ORDER_TOPIC', 'name' => GetMessage('CRM_FIELD_ORDER_TOPIC'), 'params' => array('size' => 255), 'value' => isset($arResult['ELEMENT']['ORDER_TOPIC']) ? $arResult['ELEMENT']['ORDER_TOPIC'] : '', 'type' => 'label', 'required' => true, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'STATUS_ID', 'name' => GetMessage('CRM_FIELD_STATUS_ID'), 'type' => 'label', 'value' => $arResult['ELEMENT']['STATUS_TEXT'], 'required' => true, 'isTactile' => true);
} $arResult['PERSON_TYPE_ID'] = $personTypeID; $mode = isset($arParams['MODE']) ? $arParams['MODE'] : ''; if ($mode === '' && isset($_REQUEST['mode'])) { $mode = $_REQUEST['mode']; } $mode = strtoupper(trim($mode)); $arResult['MODE'] = $arParams['MODE'] = $mode; $contextID = isset($arParams['CONTEXT_ID']) ? $arParams['CONTEXT_ID'] : ''; if ($contextID === '' && isset($_REQUEST['context_id'])) { $contextID = $_REQUEST['context_id']; } $arResult['CONTEXT_ID'] = $arParams['CONTEXT_ID'] = $contextID; $UID = isset($arParams['UID']) ? $arParams['UID'] : ''; $UID = $UID === '' ? 'mobile_crm_status_list_' . $personTypeID : str_replace('#PERSON_TYPE_ID#', $personTypeID, $UID); $arResult['UID'] = $arParams['UID'] = $UID; $arResult['ITEMS'] = array(); if ($personTypeID > 0) { $listItems = CCrmPaySystem::GetPaySystemsListItems($personTypeID); foreach ($listItems as $k => &$v) { $arResult['ITEMS'][] = array('ID' => $k, 'NAME' => $v); } unset($v); } $arResult['RELOAD_URL_TEMPLATE'] = $APPLICATION->GetCurPageParam('AJAX_CALL=Y&FORMAT=json&person_type_id=#person_type_id#', array('AJAX_CALL', 'SEARCH', 'FORMAT', 'save', 'apply_filter', 'clear_filter', 'person_type_id')); $format = isset($_REQUEST['FORMAT']) ? strtolower($_REQUEST['FORMAT']) : ''; // Only JSON format is supported if ($format !== '' && $format !== 'json') { $format = ''; } $this->IncludeComponentTemplate($format);
for ($i = 0; $i < $productRowQty; $i++) { $productRows[$i]['IDX'] = $i; } $ID = isset($data['ID']) ? intval($data['ID']) : 0; $companyID = isset($data['COMPANY_ID']) ? intval($data['COMPANY_ID']) : 0; if ($companyID > 0 && !CCrmCompany::CheckReadPermission($companyID, $curUserPrems)) { $companyID = 0; } $contactID = isset($data['CONTACT_ID']) ? intval($data['CONTACT_ID']) : 0; if ($contactID > 0 && !CCrmContact::CheckReadPermission($contactID, $curUserPrems)) { $contactID = 0; } $personTypeID = isset($data['PERSON_TYPE_ID']) ? intval($data['PERSON_TYPE_ID']) : 0; $resolvedPersonTypeID = $companyID > 0 || $contactID > 0 ? CCrmInvoice::ResolvePersonTypeID($companyID, $contactID) : 0; $paySystemID = isset($data['PAY_SYSTEM_ID']) ? intval($data['PAY_SYSTEM_ID']) : 0; $paySystems = CCrmPaySystem::GetPaySystemsListItems($resolvedPersonTypeID); $resolvedPaySystemID = 0; if ($personTypeID === $resolvedPersonTypeID && $paySystemID > 0 && array_key_exists($paySystemID, $paySystems)) { // Pay system does not changed $resolvedPaySystemID = $paySystemID; } elseif (!empty($paySystems)) { // Take first pay system $resolvedPaySystemID = array_shift(array_keys($paySystems)); } $arFields = array('ID' => $ID, 'PRODUCT_ROWS' => $productRows, 'PAY_SYSTEM_ID' => $resolvedPaySystemID, 'PERSON_TYPE_ID' => $resolvedPersonTypeID); $properties = CCrmInvoice::GetProperties($ID, $resolvedPersonTypeID); if (!is_array($properties)) { $properties = array(); } if (isset($data['LOCATION_ID']) && !isset($data['LOC_CITY'])) { //HACK: see CCrmInvoice::ParsePropertiesValuesFromPost
} $dlgSettings['personTypes'] = $arPersonTypes; $dlgSettings['FORM_ID'] = $arResult['FORM_ID']; $dlgSettings['PAYER_INFO_EDIT_LINK_ID'] = $arResult['PAYER_INFO_EDIT_LINK_ID']; $dlgSettings['INVOICE_PROPS_DIV_ID'] = $arResult['INVOICE_PROPS_DIV_ID']; $dlgSettings['PAYER_INFO_FIELD_ID'] = $arResult['PAYER_INFO_FIELD_ID']; $dlgSettings['messages'] = array('TITLE' => GetMessage('CRM_INVOICE_PROPS_DLG_TITLE'), 'SAVE' => GetMessage('CRM_INVOICE_PROPS_DLG_SAVE'), 'CANCEL' => GetMessage('CRM_INVOICE_PROPS_DLG_CANCEL')); $arResult['INVOICE_PROPS_DLG_SETTINGS'] = $dlgSettings; unset($arInvoicePropertiesInfo, $dlgSettings, $person, $props, $code, $v, $index); // <----------- Payer info dialog settings ----------- $strPayerInfo = CCrmInvoice::__MakePayerInfoString($arInvoiceProperties); $arResult['FIELDS']['tab_1'][] = array('id' => $payerInfoFieldId, 'name' => GetMessage('CRM_FIELD_PAYER_INFO'), 'type' => 'custom', 'value' => '<div id="' . $payerInfoFieldId . '" class="bx-crm-edit-crm-entity-field">' . htmlspecialcharsbx($strPayerInfo) . '</div>' . PHP_EOL . '<div id="' . $invoicePropsDivId . '" style="display: none;">' . $htmlInputs . '</div>' . PHP_EOL . '<div><span id="' . $arResult['PAYER_INFO_EDIT_LINK_ID'] . '" class="bx-crm-edit-content-payer-info-edit-link">' . GetMessage('CRM_INVOICE_EDIT_PAYER_INFO') . '</span></div>', 'persistent' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'section_pay_system', 'name' => GetMessage('CRM_SECTION_PAY_SYSTEM'), 'type' => 'section'); // pay system $arResult['PAY_SYSTEM_ID_TITLE'] = GetMessage('CRM_FIELD_PAY_SYSTEM_ID_TITLE'); $arResult['FIELDS']['tab_1'][] = array('id' => $paySystemFieldId, 'name' => GetMessage('CRM_FIELD_PAY_SYSTEM_ID'), 'params' => array('id' => 'PAY_SYSTEM_SELECT'), 'items' => CCrmPaySystem::GetPaySystemsListItems($personTypeId), 'type' => 'list', 'value' => isset($arResult['ELEMENT']['PAY_SYSTEM_ID']) ? $arResult['ELEMENT']['PAY_SYSTEM_ID'] : '', 'required' => true); // COMMENTS // <editor-fold defaultstate="collapsed" desc="COMMENTS ..."> $arResult['FIELDS']['tab_1'][] = array('id' => 'section_comments', 'name' => GetMessage('CRM_SECTION_COMMENTS'), 'type' => 'section'); // $arResult['FIELDS']['tab_1'][] = array( // 'id' => 'COMMENTS', // 'name' => GetMessage('CRM_FIELD_COMMENTS'), // 'params' => array('size' => 2000), // 'value' => isset($arResult['ELEMENT']['COMMENTS']) ? $arResult['ELEMENT']['COMMENTS'] : '', // 'type' => 'textarea' // ); ob_start(); $ar = array('inputName' => 'COMMENTS', 'inputId' => 'COMMENTS', 'height' => '80', 'content' => isset($arResult['ELEMENT']['~COMMENTS']) ? $arResult['ELEMENT']['~COMMENTS'] : '', 'bUseFileDialogs' => false, 'bFloatingToolbar' => false, 'bArisingToolbar' => false, 'bResizable' => true, 'bSaveOnBlur' => true, 'toolbarConfig' => array('Bold', 'Italic', 'Underline', 'Strike', 'BackColor', 'ForeColor', 'CreateLink', 'DeleteLink', 'InsertOrderedList', 'InsertUnorderedList', 'Outdent', 'Indent')); $LHE = new CLightHTMLEditor(); $LHE->Show($ar); $sVal = ob_get_contents();