- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/address.php
- Класс: Bitrix\Crm\AddressTable
- Вызов: AddressTable::upsert
static function upsert(array $data)
{
$typeID = isset($data['TYPE_ID']) ? (int)$data['TYPE_ID'] : 0;
$entityTypeID = isset($data['ENTITY_TYPE_ID']) ? (int)$data['ENTITY_TYPE_ID'] : 0;
$entityID = isset($data['ENTITY_ID']) ? (int)$data['ENTITY_ID'] : 0;
$fields = [
'ANCHOR_TYPE_ID' => isset($data['ANCHOR_TYPE_ID']) ? (int)$data['ANCHOR_TYPE_ID'] : $entityTypeID,
'ANCHOR_ID' => isset($data['ANCHOR_ID']) ? (int)$data['ANCHOR_ID'] : $entityID,
'ADDRESS_1' => isset($data['ADDRESS_1']) && $data['ADDRESS_1'] !== '' ? $data['ADDRESS_1'] : null,
'ADDRESS_2' => isset($data['ADDRESS_2']) && $data['ADDRESS_2'] !== '' ? $data['ADDRESS_2'] : null,
'CITY' => isset($data['CITY']) && $data['CITY'] !== '' ? $data['CITY'] : null,
'POSTAL_CODE' => isset($data['POSTAL_CODE']) && $data['POSTAL_CODE'] !== '' ? $data['POSTAL_CODE'] : null,
'REGION' => isset($data['REGION']) && $data['REGION'] !== '' ? $data['REGION'] : null,
'PROVINCE' => isset($data['PROVINCE']) && $data['PROVINCE'] !== '' ? $data['PROVINCE'] : null,
'COUNTRY' => isset($data['COUNTRY']) && $data['COUNTRY'] !== '' ? $data['COUNTRY'] : null,
'COUNTRY_CODE' => isset($data['COUNTRY_CODE']) && $data['COUNTRY_CODE'] !== '' ?
$data['COUNTRY_CODE'] : null,
'LOC_ADDR_ID' => isset($data['LOC_ADDR_ID']) ? (int)$data['LOC_ADDR_ID'] : 0,
'IS_DEF' => (isset($data['IS_DEF']) && $data['IS_DEF'] === true) ? 1 : 0
];
$connection = Application::getConnection();
$queries = $connection->getSqlHelper()->prepareMerge(
'b_crm_addr',
['TYPE_ID', 'ENTITY_TYPE_ID', 'ENTITY_ID'],
array_merge(
$fields,
['TYPE_ID' => $typeID, 'ENTITY_TYPE_ID' => $entityTypeID, 'ENTITY_ID' => $entityID]
),
$fields
);
foreach($queries as $query)
{
$connection->queryExecute($query);
}
}