• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Timeline/Item/Activity/Payment.php
  • Класс: Bitrix\Crm\Service\Timeline\Item\Activity\Payment
  • Вызов: Payment::getPaymentDetailsContentBlock
private function getPaymentDetailsContentBlock(Sale\Payment $payment): ContentBlock
{
	$contentBlock = new LineOfTextBlocks();

	$date = $payment->getField('DATE_BILL');
	$title = Loc::getMessage(
		'CRM_TIMELINE_ECOMMERCE_PAYMENT_ENTITY_TITLE',
		[
			'#NUMBER#' => $payment->getField('ACCOUNT_NUMBER'),
			'#DATE#' =>
				($date instanceof DateTime)
					? FormatDate(
						Context::getCurrent()->getCulture()->getLongDateFormat(),
						$date->getTimestamp()
					)
					: ''
			,
		]
	);

	$openPaymentAction = $this->getOpenPaymentAction();
	if ($openPaymentAction)
	{
		$titleBlock = (new ContentBlock\Link())
			->setValue($title)
			->setAction($openPaymentAction)
		;
	}
	else
	{
		$titleBlock = (new ContentBlock\Text())
			->setValue($title)
			->setColor(ContentBlock\Text::COLOR_BASE_90)
		;
	}
	$contentBlock->addContentBlock('title', $titleBlock);

	$sum = $payment->getField('SUM') ?? null;
	$currency = $payment->getField('CURRENCY') ?? null;
	if ($sum && $currency)
	{
		$amountBlocks = ContentBlockFactory::getBlocksFromTemplate(
			Loc::getMessage('CRM_TIMELINE_ECOMMERCE_FOR_AMOUNT'),
			[
				'#AMOUNT#' =>
					(new Money())
						->setOpportunity((float)$sum)
						->setCurrencyId((string)$currency)
						->setColor(ContentBlock\Text::COLOR_BASE_90)
				,
			]
		);
		foreach ($amountBlocks as $index => $amountBlock)
		{
			if (!$amountBlock instanceof ContentBlock\TextPropertiesInterface)
			{
				continue;
			}

			$contentBlock->addContentBlock(
				'amountBlock' . $index,
				$amountBlock->setColor(ContentBlock\Text::COLOR_BASE_90)
			);
		}
	}

	return
		(new ContentBlockWithTitle())
			->setInline()
			->setTitle(Loc::getMessage('CRM_TIMELINE_ECOMMERCE_PAYMENT_ENTITY_NAME'))
			->setContentBlock($contentBlock)
	;
}