- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/exchange/integration/entity/b24integrationbindtable.php
- Класс: BitrixSaleExchangeIntegrationEntityB24IntegrationBindTable
- Вызов: B24IntegrationBindTable::upsert
static function upsert(array $data)
{
$result = new MainEntityAddResult();
$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);
}
$result->setId(
$connection->getInsertedId());
return $result;
}