CCrmInvoiceRestService::getInvoiceDataByID

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmInvoiceRestService
  4. getInvoiceDataByID
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice_invoice.php
  • Класс: \CCrmInvoiceRestService
  • Вызов: CCrmInvoiceRestService::getInvoiceDataByID
static function getInvoiceDataByID($ID)
{
	$arInvoice = CCrmInvoice::GetByID($ID);
	if(!is_array($arInvoice))
		throw new RestException('Not found.');

	$arProperties = CCrmInvoice::GetProperties($ID, $arInvoice['PERSON_TYPE_ID']);
	$arAllowedProperties = CCrmInvoice::GetPropertiesInfo($arInvoice['PERSON_TYPE_ID'], true);
	$arAllowedProperties = is_array($arAllowedProperties[$arInvoice['PERSON_TYPE_ID']]) ?
		array_keys($arAllowedProperties[$arInvoice['PERSON_TYPE_ID']]) : array();
	$arPropertiesResult = array();
	foreach ($arProperties as $k => $v)
	{
		if ($k !== 'PR_LOCATION')
		{
			if (in_array($v['FIELDS']['CODE'], $arAllowedProperties))
				$arPropertiesResult[$v['FIELDS']['CODE']] = $v['VALUE'];
		}
		else
			$arInvoice['PR_LOCATION'] = $v['VALUE'];
	}

	$arProducts = CCrmInvoice::GetProductRows($ID);

	$result = $arInvoice;
	if (count($arPropertiesResult) > 0)
	{
		// ua company name hack
		if (!isset($arPropertiesResult['COMPANY']) && isset($arPropertiesResult['COMPANY_NAME']))
		{
			$arPropertiesResult['COMPANY'] = $arPropertiesResult['COMPANY_NAME'];
			unset($arPropertiesResult['COMPANY_NAME']);
		}

		$result['INVOICE_PROPERTIES'] = $arPropertiesResult;
	}
	if (count($arProducts) > 0)
		$result['PRODUCT_ROWS'] = $arProducts;

	return $result;
}

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