...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/resultentity.php
- Класс: Bitrix\Crm\WebForm\ResultEntity
- Вызов: ResultEntity::addInvoice
protected function addInvoice($params = []) { if (Manager::isOrdersAvailable()) { $this->addOrder(); return; } if(!isset($params['FIELDS'])) { $params['FIELDS'] = []; } $personTypes = \CCrmPaySystem::getPersonTypeIDs(); $currentPersonTypeId = (int)$personTypes['CONTACT']; $isPersonTypeSet = false; if($this->companyId && $this->isInvoiceSettingsPayerCompany()) { $isPersonTypeSet = true; $currentPersonTypeId = (int)$personTypes['COMPANY']; $params['FIELDS']['PERSON_TYPE_ID'] = $currentPersonTypeId; $params['FIELDS']['UF_COMPANY_ID'] = $this->companyId; $params['FIELDS']['INVOICE_PROPERTIES'] = array('COMPANY' => '-'); } if($this->contactId && $this->isInvoiceSettingsPayerContact()) { $isPersonTypeSet = true; $params['FIELDS']['UF_CONTACT_ID'] = $this->contactId; if(!$params['FIELDS']['PERSON_TYPE_ID']) { $currentPersonTypeId = (int)$personTypes['CONTACT']; $params['FIELDS']['PERSON_TYPE_ID'] = $currentPersonTypeId; } $params['FIELDS']['INVOICE_PROPERTIES'] = array('CONTACT' => '-'); } if($this->dealId) { $params['FIELDS']['UF_DEAL_ID'] = $this->dealId; } if($this->quoteId) { $params['FIELDS']['UF_QUOTE_ID'] = $this->quoteId; } if(!$isPersonTypeSet) { return; } $billList = \CCrmPaySystem::GetPaySystemsListItems($currentPersonTypeId); if ($billList) { foreach ($billList as $billId => $billName) { $params['FIELDS']['PAY_SYSTEM_ID'] = $billId; break; } } else { if (Loader::includeModule('sale')) { $dbRes = \Bitrix\Sale\PaySystem\Manager::getList([ 'filter' => [ '=PERSON_TYPE_ID' => $currentPersonTypeId, '=ENTITY_REGISTRY_TYPE' => REGISTRY_TYPE_CRM_INVOICE, '%ACTION_FILE' => ['bill', 'invoicedocument'] ] ]); while ($data = $dbRes->fetch()) { $params['FIELDS']['PAY_SYSTEM_ID'] = $data['ID']; break; } } } $params['SET_PRODUCTS'] = true; $this->invoiceId = $this->addByEntityName(\CCrmOwnerType::InvoiceName, $params); }