- Модуль: 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)
;
}