CCrmInvoiceReportHelper::setRuntimeFields

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmInvoiceReportHelper
  4. setRuntimeFields
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
  • Класс: \CCrmInvoiceReportHelper
  • Вызов: CCrmInvoiceReportHelper::setRuntimeFields
static function setRuntimeFields(\Bitrix\Main\Entity\Base $entity, $sqlTimeInterval)
{
	global $DB;

	$options = array();

	Crm\InvoiceTable::processQueryOptions($options);

	$entity->addField(array(
		'data_type' => 'float',
		'expression' => array(
			'CASE WHEN %s IN '.$options['WORK_STATUS_IDS'].' THEN %s ELSE 0 END',
			'STATUS_ID', 'PRICE'
		),
		'values' => array(0, 1)
	), 'PRICE_WORK');

	$entity->addField(array(
		'data_type' => 'float',
		'expression' => array(
			'CASE WHEN %s IN '.$options['CANCEL_STATUS_IDS'].' THEN %s ELSE 0 END',
			'STATUS_ID', 'PRICE'
		),
		'values' => array(0, 1)
	), 'PRICE_CANCELED');

	$entity->addField(array(
		'data_type' => 'boolean',
		'expression' => array(
			'CASE WHEN %s IN '.$options['WORK_STATUS_IDS'].' THEN 1 ELSE 0 END',
			'STATUS_ID'
		),
		'values' => array(0, 1)
	), 'IS_WORK');

	$entity->addField(array(
		'data_type' => 'boolean',
		'expression' => array(
			'CASE WHEN %s IN '.$options['CANCEL_STATUS_IDS'].' THEN 1 ELSE 0 END',
			'STATUS_ID'
		),
		'values' => array(0, 1)
	), 'IS_CANCELED');

	$datetimeNull = 'CAST(NULL AS DATETIME)';

	$entity->addField(array(
		'data_type' => 'datetime',
		'expression' => array(
			'CASE WHEN %s = \'P\' THEN '.$DB->datetimeToDateFunction($DB->IsNull('%s', '%s')).
			' WHEN %s IN '.$options['CANCEL_STATUS_IDS'].' THEN '.$DB->datetimeToDateFunction($DB->IsNull('%s', '%s')).
			' ELSE '.$datetimeNull.' END',
			'STATUS_ID', 'PAY_VOUCHER_DATE', 'DATE_INSERT',
			'STATUS_ID', 'DATE_MARKED', 'DATE_INSERT'
		)
	), 'DATE_FINISHED_SHORT');

	self::appendBooleanUserFieldsIfNull($entity);
	self::appendDateTimeUserFieldsAsShort($entity);
	self::appendMoneyUserFieldsAsSeparated($entity);
	self::appendTextUserFieldsAsTrimmed($entity);
	self::appendUTMFields($entity);
}

Добавить комментарий