• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/model/sessionindex.php
  • Класс: BitrixImopenlinesModelSessionIndexTable
  • Вызов: SessionIndexTable::merge
static function merge(array $data)
    {
        $result = new EntityAddResult();

        $helper = Application::getConnection()->getSqlHelper();
        $insertData = $data;
        $updateData = $data;
        $mergeFields = static::getMergeFields();

        foreach ($mergeFields as $field)
        {
            unset($updateData[$field]);
        }

        $merge = $helper->prepareMerge(
            static::getTableName(),
            static::getMergeFields(),
            $insertData,
            $updateData
        );

        if ($merge[0] != "")
        {
            Application::getConnection()->query($merge[0]);
            $id = Application::getConnection()->getInsertedId();
            $result->setId($id);
            $result->setData($data);
        }
        else
        {
            $result->addError(new Error('Error constructing query'));
        }

        return $result;
    }