• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/order.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Order
  • Вызов: Order::getFields
public function getFields()
{
	if($this->fields === null)
	{
		parent::getFields();

		$orderProperties = static::getProperties();
		foreach($orderProperties as &$property)
		{
			$property['VALUE'] = [$this, 'getPropertyValue'];
		}
		unset($property);
		$this->fields = array_merge($this->fields, $orderProperties);

		$this->fields['DATE_INSERT']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['DATE_UPDATE']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['DATE_PAYED']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['DATE_DEDUCTED']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['DATE_STATUS']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['PAY_VOUCHER_DATE']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['DATE_CANCELED']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['DELIVERY_DOC_DATE']['TYPE'] = static::FIELD_TYPE_DATE;
		$this->fields['ACCOUNT_NUMBER']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_ACCOUNT_NUMBER_TITLE');
		$this->fields['TRACKING_NUMBER']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_TRACKING_NUMBER_TITLE');
		$this->fields['USER'] = [
			'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_USER_TITLE'),
			'PROVIDER' => User::class,
			'VALUE' => 'USER_ID',
		];
		$this->fields['DATE_PAYED']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_DATE_PAYED_TITLE');
		$this->fields['DATE_DEDUCTED']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_DATE_DEDUCTED_TITLE');
		$this->fields['REASON_UNDO_DEDUCTED']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_REASON_UNDO_DEDUCTED_TITLE');
		$this->fields['STATUS']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_STATUS_TITLE');
		$this->fields['STATUS']['VALUE'] = [$this, 'getStatus'];
		$this->fields['USER_DESCRIPTION']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_USER_DESCRIPTION_TITLE');
		$this->fields['COMMENTS']['TITLE'] = Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_COMMENTS_TITLE');
		$this->fields['COMPANY']['OPTIONS'] = [
			'DISABLE_MY_COMPANY' => true,
			'VALUES' => [
				'REQUISITE' => $this->getBuyerRequisiteId(),
				'BANK_DETAIL' => $this->getBuyerBankDetailId(),
			]
		];
		if (!$this->isLightMode())
		{
			$this->fields['CONTACTS'] = [
				'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_DEAL_CONTACTS_TITLE'),
				'PROVIDER' => ArrayDataProvider::class,
				'OPTIONS' => [
					'ITEM_PROVIDER' => Contact::class,
					'ITEM_NAME' => 'CONTACT',
					'ITEM_TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_DEAL_CONTACT_TITLE'),
					'ITEM_OPTIONS' => [
						'DISABLE_MY_COMPANY' => true,
						'isLightMode' => true,
					],
				],
				'VALUE' => [$this, 'getContacts'],
			];

			$this->fields['PAYMENTS'] = [
				'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_PAYMENTS_TITLE'),
				'PROVIDER' => ArrayDataProvider::class,
				'OPTIONS' => [
					'ITEM_PROVIDER' => Payment::class,
					'ITEM_NAME' => 'PAYMENT',
					'ITEM_TITLE' => Payment::getLangName(),
					'ITEM_OPTIONS' => [
						'isLightMode' => true,
					],
				],
				'VALUE' => [$this, 'getPayments'],
			];

			$this->fields['SHIPMENTS'] = [
				'TITLE' => GetMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_SHIPMENTS_TITLE'),
				'PROVIDER' => ArrayDataProvider::class,
				'OPTIONS' => [
					'ITEM_PROVIDER' => Shipment::class,
					'ITEM_NAME' => 'SHIPMENT',
					'ITEM_TITLE' => Shipment::getLangName(),
					'ITEM_OPTIONS' => [
						'isLightMode' => true,
					],
				],
				'VALUE' => [$this, 'getShipments'],
			];
		}
	}

	return $this->fields;
}