...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/resultentity.php
- Класс: Bitrix\Crm\WebForm\ResultEntity
- Вызов: ResultEntity::fixInvoiceFieldsAnonymousUser
private function fixInvoiceFieldsAnonymousUser ($entityFields) { // invoice properties $companyID = isset($entityFields['UF_COMPANY_ID']) ? (int) $entityFields['UF_COMPANY_ID'] : 0; $contactID = isset($entityFields['UF_CONTACT_ID']) ? (int) $entityFields['UF_CONTACT_ID'] : 0; $entityFields['INVOICE_PROPERTIES'] = array(); $invoiceEntity = new \CCrmInvoice(false); $personTypeID = 0; $personTypes = \CCrmPaySystem::getPersonTypeIDs(); if ($companyID > 0 && isset($personTypes['COMPANY'])) { $personTypeID = (int) $personTypes['COMPANY']; } else if(isset($personTypes['CONTACT'])) { $personTypeID = (int)$personTypes['CONTACT']; } $entityFields['PERSON_TYPE_ID'] = $personTypeID; $requisiteEntityList = array(); $requisite = new \Bitrix\Crm\EntityRequisite(); if ($companyID > 0) { $requisiteEntityList[] = array('ENTITY_TYPE_ID' => \CCrmOwnerType::Company, 'ENTITY_ID' => $companyID); } if ($contactID > 0) { $requisiteEntityList[] = array('ENTITY_TYPE_ID' => \CCrmOwnerType::Contact, 'ENTITY_ID' => $contactID); } $requisiteIdLinked = 0; $requisiteInfoLinked = $requisite->getDefaultRequisiteInfoLinked($requisiteEntityList); if (is_array($requisiteInfoLinked)) { if (isset($requisiteInfoLinked['REQUISITE_ID'])) { $requisiteIdLinked = (int)$requisiteInfoLinked['REQUISITE_ID']; } } unset($requisiteEntityList, $requisite, $requisiteInfoLinked); $properties = $invoiceEntity->GetProperties(0, $personTypeID); if(is_array($properties)) { \CCrmInvoice::__RewritePayerInfo($companyID, $contactID, $properties); if ($entityFields['PERSON_TYPE_ID'] > 0 && $requisiteIdLinked > 0) { \CCrmInvoice::rewritePropsFromRequisite( $entityFields['PERSON_TYPE_ID'], $requisiteIdLinked, $properties ); } foreach($properties as $property) { $entityFields['INVOICE_PROPERTIES'][$property['FIELDS']['ID']] = $property['VALUE']; } } return $entityFields; }