• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/integration/entity/b24integrationrelationtable.php
  • Класс: BitrixSaleExchangeIntegrationEntityB24IntegrationRelationTable
  • Вызов: B24IntegrationRelationTable::upsert
static function upsert(array $data)
{
	$srcEntityTypeID = isset($data['SRC_ENTITY_TYPE_ID']) ? (int)$data['SRC_ENTITY_TYPE_ID'] : CCrmOwnerType::Undefined;
	$srcEntityID = isset($data['SRC_ENTITY_ID']) ? (int)$data['SRC_ENTITY_ID'] : 0;

	$dstEntityTypeID = isset($data['DST_ENTITY_TYPE_ID']) ? (int)$data['DST_ENTITY_TYPE_ID'] : CCrmOwnerType::Undefined;
	$dstEntityID = isset($data['DST_ENTITY_ID']) ? (int)$data['DST_ENTITY_ID'] : 0;

	$now = MainTypeDateTime::createFromTimestamp(time() + CTimeZone::GetOffset());

	$insertFields = [
		'SRC_ENTITY_TYPE_ID' => $srcEntityTypeID,
		'SRC_ENTITY_ID' => $srcEntityID,
		'DST_ENTITY_TYPE_ID' => $dstEntityTypeID,
		'DST_ENTITY_ID' => $dstEntityID,
		'CREATED_TIME' => $now,
		'LAST_UPDATED_TIME' => $now
	];

	$updateFields = [
		'LAST_UPDATED_TIME' => $now,
		'SRC_ENTITY_TYPE_ID' => $srcEntityTypeID,
		'SRC_ENTITY_ID' => $srcEntityID,
		'DST_ENTITY_TYPE_ID' => $dstEntityTypeID,
		'DST_ENTITY_ID' => $dstEntityID
	];

	$connection = MainApplication::getConnection();
	$queries = $connection->getSqlHelper()->prepareMerge(
		static::getTableName(),
		[
			'SRC_ENTITY_TYPE_ID',
			'SRC_ENTITY_ID',
			'DST_ENTITY_TYPE_ID',
			'DST_ENTITY_ID'
		],
		$insertFields,
		$updateFields
	);

	foreach($queries as $query)
	{
		$connection->queryExecute($query);
	}
}