- Модуль: 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;
}