• Модуль: 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;
		}
	}
}