• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/crmentitydataprovider.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\CrmEntityDataProvider
  • Вызов: CrmEntityDataProvider::getAdditionalDocumentInfo
public function getAdditionalDocumentInfo(Document $document)
{
	$data = parent::getAdditionalDocumentInfo($document);

	$stampPlaceholders = [];
	$data['changeStampsEnabled'] = false;
	$template = $document->getTemplate();
	if ($template)
	{
		$stampPlaceholders = $this->getTemplateStampsFields($template);
	}
	if (empty($stampPlaceholders))
	{
		$data['changeStampsDisabledReason'] = GetMessage('CRM_DOCGEN_CRMENTITYDATAPROVIDER_STAMPS_DISABLED_NO_TEMPLATE_V2');
	}
	else
	{
		$documentStampFields = $this->getDocumentFieldsValues($document, $stampPlaceholders);
		foreach ($stampPlaceholders as $placeholder)
		{
			if (
				!empty($documentStampFields[$placeholder])
				&& $documentStampFields[$placeholder] != false
			)
			{
				$data['changeStampsEnabled'] = true;
				break;
			}
		}
	}
	$templateFields = $template->getFields();
	$qrPlaceholder = 'PaymentQrCode';
	$data['changeQrCodeEnabled'] = false;
	$data['qrCodeEnabled'] = false;
	if (!isset($templateFields[$qrPlaceholder]))
	{
		$data['changeQrCodeDisabledReason'] = GetMessage('CRM_DOCGEN_CRMENTITYDATAPROVIDER_PAYMENT_QR_CODE_DISABLED_NO_TEMPLATE');
	}
	else
	{
		if (empty($this->getPaymentQrCode()))
		{
			$data['changeQrCodeDisabledReason'] = GetMessage('CRM_DOCGEN_CRMENTITYDATAPROVIDER_PAYMENT_QR_CODE_DISABLED_NO_DATA');
		}
		else
		{
			$documentQrCodeFields = $this->getDocumentFieldsValues($document, [$qrPlaceholder]);
			$data['changeQrCodeEnabled'] = true;
			$data['qrCodeEnabled'] = (
				!empty($documentQrCodeFields[$qrPlaceholder])
				&& $documentQrCodeFields[$qrPlaceholder] != false
			);
		}
	}
	if (!$data['changeStampsEnabled'] && !empty($stampPlaceholders))
	{
		$data['changeStampsDisabledReason'] = GetMessage('CRM_DOCGEN_CRMENTITYDATAPROVIDER_STAMPS_DISABLED_EMPTY_FIELDS');
		$data['myCompanyEditUrl'] = $this->getMyCompanyEditUrl();
		if($data['myCompanyEditUrl'])
		{
			$data['changeStampsDisabledReason'] .= '
'.GetMessage('CRM_DOCGEN_CRMENTITYDATAPROVIDER_EDIT_MY_COMPANY', ['#URL#' => $data['myCompanyEditUrl']]); } } $products = []; $currencyId = $this->getRawValue('CURRENCY_ID'); $products['currencyId'] = is_string($currencyId) ? $currencyId : null; $totalSum = $this->getRawValue('TOTAL_SUM'); $products['totalSum'] = is_numeric($totalSum) ? $totalSum : null; $totalRows = $this->getRawValue('TOTAL_ROWS'); $products['totalRows'] = is_numeric($totalRows) ? $totalRows : null; $productsWithNotNullValues = array_filter($products, fn($value) => !is_null($value)); if (!empty($productsWithNotNullValues)) { $data['products'] = $products; } return $data; }