...Человеческий поиск в разработке...
- Модуль: 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); }