...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/entity/duplicateindex.php
- Класс: Bitrix\Crm\Integrity\Entity\DuplicateIndexTable
- Вызов: DuplicateIndexTable::upsert
static function upsert(array $data) { $connection = Main\Application::getConnection(); $sqlHelper = $connection->getSqlHelper(); $userID = isset($data['USER_ID']) ? intval($data['USER_ID']) : 0; $entityTypeID = isset($data['ENTITY_TYPE_ID']) ? intval($data['ENTITY_TYPE_ID']) : 0; $typeID = isset($data['TYPE_ID']) ? intval($data['TYPE_ID']) : 0; $matchHash = isset($data['MATCH_HASH']) ? $sqlHelper->forSql($data['MATCH_HASH'], 32) : ''; $scope = isset($data['SCOPE']) ? $data['SCOPE'] : DuplicateIndexType::DEFAULT_SCOPE; $matches = isset($data['MATCHES']) ? $sqlHelper->forSql($data['MATCHES']) : ''; $qty = isset($data['QUANTITY']) ? intval($data['QUANTITY']) : 0; $statusID = isset($data['STATUS_ID']) ? intval($data['STATUS_ID']) : DuplicateStatus::UNDEFINED; $rootEntityID = isset($data['ROOT_ENTITY_ID']) ? intval($data['ROOT_ENTITY_ID']) : 0; $rootEntityName = isset($data['ROOT_ENTITY_NAME']) ? $sqlHelper->forSql($data['ROOT_ENTITY_NAME'], 256) : ''; $rootEntityTitle = isset($data['ROOT_ENTITY_TITLE']) ? $sqlHelper->forSql($data['ROOT_ENTITY_TITLE'], 256) : ''; $rootEntityPhone = isset($data['ROOT_ENTITY_PHONE']) ? $sqlHelper->forSql($data['ROOT_ENTITY_PHONE'], 256) : ''; $rootEntityEmail = isset($data['ROOT_ENTITY_EMAIL']) ? $sqlHelper->forSql($data['ROOT_ENTITY_EMAIL'], 256) : ''; $rootEntityRqInn = isset($data['ROOT_ENTITY_RQ_INN']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_INN'], 15) : ''; $rootEntityRqOgrn = isset($data['ROOT_ENTITY_RQ_OGRN']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_OGRN'], 13) : ''; $rootEntityRqOgrnip = isset($data['ROOT_ENTITY_RQ_OGRNIP']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_OGRNIP'], 15) : ''; $rootEntityRqBin = isset($data['ROOT_ENTITY_RQ_BIN']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_BIN'], 12) : ''; $rootEntityRqEdrpou = isset($data['ROOT_ENTITY_RQ_EDRPOU']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_EDRPOU'], 10) : ''; $rootEntityRqVatId = isset($data['ROOT_ENTITY_RQ_VAT_ID']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_VAT_ID'], 20) : ''; $rootEntityRqAccNum = isset($data['ROOT_ENTITY_RQ_ACC_NUM']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_ACC_NUM'], 34) : ''; $rootEntityRqIban = isset($data['ROOT_ENTITY_RQ_IBAN']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_IBAN'], 34) : ''; $rootEntityRqIik = isset($data['ROOT_ENTITY_RQ_IIK']) ? $sqlHelper->forSql($data['ROOT_ENTITY_RQ_IIK'], 20) : ''; $rootEntityNameFlg = $rootEntityName !== '' ? '0' : '1'; $rootEntityTitleFlg = $rootEntityTitle !== '' ? '0' : '1'; $rootEntityPhoneFlg = $rootEntityPhone !== '' ? '0' : '1'; $rootEntityEmailFlg = $rootEntityEmail !== '' ? '0' : '1'; $rootEntityRqInnFlg = $rootEntityRqInn !== '' ? '0' : '1'; $rootEntityRqOgrnFlg = $rootEntityRqOgrn !== '' ? '0' : '1'; $rootEntityRqOgrnipFlg = $rootEntityRqOgrnip !== '' ? '0' : '1'; $rootEntityRqBinFlg = $rootEntityRqBin !== '' ? '0' : '1'; $rootEntityRqEdrpouFlg = $rootEntityRqEdrpou !== '' ? '0' : '1'; $rootEntityRqVatIdFlg = $rootEntityRqVatId !== '' ? '0' : '1'; $rootEntityRqAccNumFlg = $rootEntityRqAccNum !== '' ? '0' : '1'; $rootEntityRqIbanFlg = $rootEntityRqIban !== '' ? '0' : '1'; $rootEntityRqIikFlg = $rootEntityRqIik !== '' ? '0' : '1'; $connection->queryExecute( "INSERT INTO b_crm_dp_index(USER_ID, ENTITY_TYPE_ID, TYPE_ID, SCOPE, MATCH_HASH, MATCHES, QUANTITY, ROOT_ENTITY_ID, " . "ROOT_ENTITY_NAME_FLAG, ROOT_ENTITY_NAME, ROOT_ENTITY_TITLE_FLAG, ROOT_ENTITY_TITLE, " . "ROOT_ENTITY_PHONE_FLAG, ROOT_ENTITY_PHONE, ROOT_ENTITY_EMAIL_FLAG, ROOT_ENTITY_EMAIL, " . "ROOT_ENTITY_RQ_INN_FLAG, ROOT_ENTITY_RQ_INN, ROOT_ENTITY_RQ_OGRN_FLAG, ROOT_ENTITY_RQ_OGRN, " . "ROOT_ENTITY_RQ_OGRNIP_FLAG, ROOT_ENTITY_RQ_OGRNIP, ROOT_ENTITY_RQ_BIN_FLAG, ROOT_ENTITY_RQ_BIN, " . "ROOT_ENTITY_RQ_EDRPOU_FLAG, ROOT_ENTITY_RQ_EDRPOU, ROOT_ENTITY_RQ_VAT_ID_FLAG, ROOT_ENTITY_RQ_VAT_ID, " . "ROOT_ENTITY_RQ_ACC_NUM_FLAG, ROOT_ENTITY_RQ_ACC_NUM, ROOT_ENTITY_RQ_IBAN_FLAG, ROOT_ENTITY_RQ_IBAN, " . "ROOT_ENTITY_RQ_IIK_FLAG, ROOT_ENTITY_RQ_IIK, " . "STATUS_ID) VALUES({$userID}, {$entityTypeID}, {$typeID}, '{$scope}', '{$matchHash}', '{$matches}', {$qty}, {$rootEntityID}, " . "'{$rootEntityNameFlg}', '{$rootEntityName}', '{$rootEntityTitleFlg}', '{$rootEntityTitle}', " . "'{$rootEntityPhoneFlg}', '{$rootEntityPhone}', '{$rootEntityEmailFlg}', '{$rootEntityEmail}', " . "'{$rootEntityRqInnFlg}', '{$rootEntityRqInn}', '{$rootEntityRqOgrnFlg}', '{$rootEntityRqOgrn}', " . "'{$rootEntityRqOgrnipFlg}', '{$rootEntityRqOgrnip}', '{$rootEntityRqBinFlg}', '{$rootEntityRqBin}', " . "'{$rootEntityRqEdrpouFlg}', '{$rootEntityRqEdrpou}', '{$rootEntityRqVatIdFlg}', '{$rootEntityRqVatId}', " . "'{$rootEntityRqAccNumFlg}', '{$rootEntityRqAccNum}', '{$rootEntityRqIbanFlg}', '{$rootEntityRqIban}', " . "'{$rootEntityRqIikFlg}', '{$rootEntityRqIik}', " . "{$statusID}) ON DUPLICATE KEY UPDATE QUANTITY = {$qty}, ROOT_ENTITY_ID = {$rootEntityID}, " . "ROOT_ENTITY_NAME_FLAG = '{$rootEntityNameFlg}', ROOT_ENTITY_NAME = '{$rootEntityName}', " . "ROOT_ENTITY_TITLE_FLAG = '{$rootEntityTitleFlg}', ROOT_ENTITY_TITLE = '{$rootEntityTitle}', " . "ROOT_ENTITY_PHONE_FLAG = '{$rootEntityPhoneFlg}', ROOT_ENTITY_PHONE = '{$rootEntityPhone}', " . "ROOT_ENTITY_EMAIL_FLAG = '{$rootEntityEmailFlg}', ROOT_ENTITY_EMAIL = '{$rootEntityEmail}', " . "ROOT_ENTITY_RQ_INN_FLAG = '{$rootEntityRqInnFlg}', ROOT_ENTITY_RQ_INN = '{$rootEntityRqInn}', " . "ROOT_ENTITY_RQ_OGRN_FLAG = '{$rootEntityRqOgrnFlg}', ROOT_ENTITY_RQ_OGRN = '{$rootEntityRqOgrn}', " . "ROOT_ENTITY_RQ_OGRNIP_FLAG = '{$rootEntityRqOgrnipFlg}', ROOT_ENTITY_RQ_OGRNIP = '{$rootEntityRqOgrnip}', " . "ROOT_ENTITY_RQ_BIN_FLAG = '{$rootEntityRqBinFlg}', ROOT_ENTITY_RQ_BIN = '{$rootEntityRqBin}', " . "ROOT_ENTITY_RQ_EDRPOU_FLAG = '{$rootEntityRqEdrpouFlg}', ROOT_ENTITY_RQ_EDRPOU = '{$rootEntityRqEdrpou}', " . "ROOT_ENTITY_RQ_VAT_ID_FLAG = '{$rootEntityRqVatIdFlg}', ROOT_ENTITY_RQ_VAT_ID = '{$rootEntityRqVatId}', " . "ROOT_ENTITY_RQ_ACC_NUM_FLAG = '{$rootEntityRqAccNumFlg}', ROOT_ENTITY_RQ_ACC_NUM = '{$rootEntityRqAccNum}', " . "ROOT_ENTITY_RQ_IBAN_FLAG = '{$rootEntityRqIbanFlg}', ROOT_ENTITY_RQ_IBAN = '{$rootEntityRqIban}', " . "ROOT_ENTITY_RQ_IIK_FLAG = '{$rootEntityRqIikFlg}', ROOT_ENTITY_RQ_IIK = '{$rootEntityRqIik}'" . ($statusID !== DuplicateStatus::UNDEFINED ? ", STATUS_ID = {$statusID}" : "") ); }