• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/product.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Product
  • Вызов: Product::getFields
public function getFields()
{
	if($this->fields === null)
	{
		$currencyId = $this->source['CURRENCY_ID'] ?? null;
		$this->fields = [
			'NAME' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_NAME_TITLE'),
			],
			'DESCRIPTION' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_DESCRIPTION_TITLE'),
				'VALUE' => [$this, 'getIblockValue'],
			],
			'SECTION' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_SECTION_TITLE'),
				'VALUE' => [$this, 'getIblockValue'],
			],
			'PREVIEW_PICTURE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PREVIEW_PICTURE_TITLE'),
				'TYPE' => static::FIELD_TYPE_IMAGE,
				'VALUE' => [$this, 'getIblockValue'],
			],
			'DETAIL_PICTURE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_DETAIL_PICTURE_TITLE'),
				'TYPE' => static::FIELD_TYPE_IMAGE,
				'VALUE' => [$this, 'getIblockValue'],
			],
			'PRODUCT_ID' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_ID_TITLE'),],
			'TITLE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_TITLE_TITLE'),
				'VALUE' => [$this, 'getIblockValue'],
			],
			'TITLE_FULL' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_TITLE_FULL_TITLE'),
				'VALUE' => [$this, 'getTitleFull'],
			],
			'SORT' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_SORT_TITLE'),],
			'PRICE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'QUANTITY' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_QUANTITY_TITLE'),],
			'QUANTITY_WORDS' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_QUANTITY_WORDS_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => [
					'WORDS' => true,
					'NO_SIGN' => true,
				],
				'VALUE' => 'QUANTITY',
			],
			'PRICE_EXCLUSIVE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_EXCLUSIVE_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_EXCLUSIVE_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_EXCLUSIVE_SUM_TITLE'),
				'VALUE' => [$this, 'getSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_NETTO' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_NETTO_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_NETTO_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_NETTO_SUM_TITLE'),
				'VALUE' => [$this, 'getSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_BRUTTO' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_BRUTTO_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_BRUTTO_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_BRUTTO_SUM_TITLE'),
				'VALUE' => [$this, 'getSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'DISCOUNT_RATE' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_DISCOUNT_RATE_TITLE'),],
			'DISCOUNT_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_DISCOUNT_SUM_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'DISCOUNT_TOTAL' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_DISCOUNT_TOTAL_TITLE'),
				'VALUE' => [$this, 'getSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'TAX_RATE' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_TAX_RATE_TITLE'),],
			'TAX_RATE_NAME' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_TAX_RATE_NAME_TITLE'),
				'VALUE' => [$this, 'getTaxRate'],
				'TYPE' => TaxRate::class,
			],
			'TAX_INCLUDED' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_TAX_INCLUDED_TITLE'),],
			'MEASURE_CODE' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_MEASURE_CODE_TITLE'),],
			'MEASURE_NAME' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_MEASURE_NAME_TITLE'),],
			'MEASURE_TITLE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_MEASURE_TITLE_TITLE'),
				'VALUE' => [$this, 'getMeasureTitle'],
			],
			'MEASURE_SYMBOL' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_MEASURE_SYMBOL_TITLE'),
				'VALUE' => [$this, 'getMeasureSymbol'],
			],
			'MEASURE_SYMBOL_INTL' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_MEASURE_SYMBOL_INTL_TITLE'),
				'VALUE' => [$this, 'getMeasureSymbolIntl'],
			],
			'PRICE_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_SUM_TITLE'),
				'VALUE' => [$this, 'getSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'TAX_VALUE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_TAX_VALUE_TITLE'),
				'VALUE' => [$this, 'getTaxValue'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'TAX_VALUE_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_TAX_VALUE_SUM_TITLE'),
				'VALUE' => [$this, 'getTaxValueSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_RAW' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_RAW_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_RAW_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_RAW_SUM_TITLE'),
				'VALUE' => [$this, 'getSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_RAW_NETTO' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_RAW_NETTO_TITLE'),
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'PRICE_RAW_NETTO_SUM' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_PRICE_RAW_NETTO_SUM_TITLE'),
				'VALUE' => [$this, 'getSum'],
				'TYPE' => Money::class,
				'FORMAT' => ['CURRENCY_ID' => $currencyId, 'NO_SIGN' => true, 'WITH_ZEROS' => false],
			],
			'CUSTOMIZED' => [],
			'DISCOUNT_TYPE_ID' => [],
			'CURRENCY_ID' => [],
			'DISCOUNT_TYPE' => [
				'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_PRODUCT_DISCOUNT_TYPE_TITLE'),
				'VALUE' => [$this, 'getDiscountType'],
			],
		];

		$this->fields = array_merge(
			$this->fields,
			DocumentGeneratorManager::getInstance()->getProductLoader()->getFields($this)
		);
	}

	return $this->fields;
}