• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
  • Класс: \CCrmProductReportHelper
  • Вызов: CCrmProductReportHelper::beforeViewDataQuery
static function beforeViewDataQuery(&$select, &$filter, &$group, &$order, &$limit, &$options, &$runtime = null)
{
	parent::beforeViewDataQuery($select, $filter, $group, $order, $limit, $options, $runtime);

	// permission
	$addClause = CCrmDeal::BuildPermSql('crm_product_row_deal_owner');
	if($addClause === false)
	{
		// access dinied
		$filter = array($filter, '=OWNER_ID' => '0');
	}
	elseif(!empty($addClause))
	{
		global $DB;
		// HACK: add escape chars for ORM
		$addClause = str_replace('crm_product_row_deal_owner.ID', '`crm_product_row`.`OWNER_ID`', $addClause);

		$filter = array($filter,
			'=IS_ALLOWED' => '1'
		);

		$runtime['IS_ALLOWED'] = array(
			'data_type' => 'integer',
			'expression' => array('CASE WHEN '.$addClause.' THEN 1 ELSE 0 END')
		);
	}

	if(!isset($select['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_ID']))
	{
		$select['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_ID'] = 'IBLOCK_ELEMENT.ID';
	}

	if(!isset($select['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_IBLOCK_ID']))
	{
		$select['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_IBLOCK_ID'] = 'IBLOCK_ELEMENT.IBLOCK_ID';
	}
}