• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/integration/entity/b24integrationstattable.php
  • Класс: BitrixSaleExchangeIntegrationEntityB24integrationStatTable
  • Вызов: B24integrationStatTable::modify
static function modify(array $items)
{
	$connection = MainApplication::getConnection();
	$sqlHelper = $connection->getSqlHelper();

	$r = static::checkModifyFields($items);
	if($r->isSuccess() == false)
	{
		return $r;
	}

	$names = [
		'ENTITY_TYPE_ID',
		'ENTITY_ID',
		'DATE_UPDATE',
		'TIMESTAMP_X',
		'PROVIDER_ID',
		'CURRENCY',
		'STATUS',
		'XML_ID',
		'AMOUNT'
	];

	foreach ($names as $name)
	{
		$duplicate[] = $name.' = VALUES('.$name.')';
	}

	foreach ($items as $item)
	{
		$fields = static::upsertPrepareParams($item);

		$valuesData = [
			$fields['ENTITY_TYPE_ID'],
			$fields['ENTITY_ID'],
			$sqlHelper->convertToDbDateTime($fields['DATE_UPDATE']),
			$sqlHelper->convertToDbDateTime($fields['TIMESTAMP_X']),
			$fields['PROVIDER_ID'],
			'''.$sqlHelper->forSql($fields['CURRENCY']).''',
			'''.$sqlHelper->forSql($fields['STATUS']).''',
			'''.$sqlHelper->forSql($fields['XML_ID']).''',
			'''.$fields['AMOUNT'].'''
		];
		$values[] = '('.implode(',', $valuesData).')';
	}

	$query = '
			INSERT INTO '.static::getTableName().'
				('.implode(', ', $names).')
				VALUES '.implode(',', $values).'
				ON DUPLICATE KEY UPDATE
			'.implode(', ', $duplicate).'
		';

	Application::getConnection()->query($query);

	return $r;
}