- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_entity_list_builder.php
- Класс: \CCrmEntityListBuilder
- Вызов: CCrmEntityListBuilder::Add2SqlData
private function Add2SqlData($sql, $type, $add2Start = false, $replace = '')
{
$sql = strval($sql);
if($sql === '')
{
return;
}
if($type === 'SELECT')
{
if (isset($this->sqlData['SELECT']) && $this->sqlData['SELECT'] !== '')
{
$this->sqlData['SELECT'] .= $sql;
}
else
{
$this->sqlData['SELECT'] = $sql;
}
}
elseif($type === 'FROM')
{
if (!isset($this->sqlData['FROM']) || $this->sqlData['FROM'] === '')
{
$this->sqlData['FROM'] = $sql;
}
else
{
if($replace !== '' && mb_strpos($this->sqlData['FROM'], $replace) !== false)
{
$this->sqlData['FROM'] = str_replace($replace, $sql, $this->sqlData['FROM']);
}
elseif(mb_stripos($this->sqlData['FROM'], trim($sql)) === false)
{
if($add2Start)
{
$this->sqlData['FROM'] = $sql.' '.$this->sqlData['FROM'];
}
else
{
$this->sqlData['FROM'] .= ' '.$sql;
}
}
}
}
elseif($type === 'WHERE')
{
if (isset($this->sqlData['WHERE']) && $this->sqlData['WHERE'] !== '')
{
$this->sqlData['WHERE'] = "({$this->sqlData['WHERE']}) AND ($sql)";
}
else
{
$this->sqlData['WHERE'] = $sql;
}
}
elseif($type === 'ORDERBY')
{
if (isset($this->sqlData['ORDERBY']) && $this->sqlData['ORDERBY'] !== '')
{
$this->sqlData['ORDERBY'] .= ', '.$sql;
}
else
{
$this->sqlData['ORDERBY'] = $sql;
}
}
}