- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
- Класс: \CCrmActivityReportHelper
- Вызов: CCrmActivityReportHelper::beforeViewDataQuery
static function beforeViewDataQuery(&$select, &$filter, &$group, &$order, &$limit, &$options, &$runtime = null)
{
parent::beforeViewDataQuery($select, $filter, $group, $order, $limit, $options, $runtime);
static::rewriteTaskActivityFilter($filter);
// Dynamic data setup
//Crm\ActivityTable::ProcessQueryOptions($options);
if(!isset($select['CRM_ACTIVITY_COMPANY_BY_ID']))
{
foreach($select as $k => $v)
{
if(mb_strpos($k, 'CRM_ACTIVITY_COMPANY_BY_') === 0)
{
$select['CRM_ACTIVITY_COMPANY_BY_ID'] = 'COMPANY_BY.ID';
break;
}
}
}
// permission
$addClause = CCrmActivity::BuildPermSql('crm_activity');
if($addClause === false)
{
// access dinied
$filter = array($filter, '=ID' => '0');
}
elseif(!empty($addClause))
{
global $DB;
// HACK: add escape chars for ORM
$addClause = str_replace('crm_activity.ID', $DB->escL.'crm_activity'.$DB->escR.'.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')
);
}
}