DuplicateIndexTable::upsert

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. DuplicateIndexTable
  4. upsert
  • Модуль: 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}" : "")
	);
}

Добавить комментарий