- Модуль: 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;
}