ResultEntity::fixInvoiceFieldsAnonymousUser

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. ResultEntity
  4. fixInvoiceFieldsAnonymousUser
  • Модуль: 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;
}

Добавить комментарий