- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/binding/quotecontact.php
- Класс: Bitrix\Crm\Binding\QuoteContactTable
- Вызов: QuoteContactTable::upsert
static function upsert(array $data)
{
$quoteID = isset($data['QUOTE_ID']) ? (int)$data['QUOTE_ID'] : 0;
if($quoteID <= 0)
{
throw new Main\ArgumentException('Must contains QUOTE_ID field.', 'data');
}
$contactID = isset($data['CONTACT_ID']) ? (int)$data['CONTACT_ID'] : 0;
if($contactID <= 0)
{
throw new Main\ArgumentException('Must contains CONTACT_ID field.', 'data');
}
$sort = isset($data['SORT']) ? (int)$data['SORT'] : 0;
$roleID = isset($data['ROLE_ID']) ? (int)$data['ROLE_ID'] : 0;
$primary = isset($data['IS_PRIMARY']) && mb_strtoupper($data['IS_PRIMARY']) === 'Y' ? 'Y' : 'N';
$connection = Main\Application::getConnection();
$queries = $connection->getSqlHelper()->prepareMerge(
'b_crm_quote_contact',
array('QUOTE_ID', 'CONTACT_ID'),
array('QUOTE_ID' => $quoteID, 'CONTACT_ID' => $contactID, 'SORT' => $sort, 'ROLE_ID' => $roleID, 'IS_PRIMARY' => $primary),
array('SORT' => $sort, 'ROLE_ID' => $roleID, 'IS_PRIMARY' => $primary)
);
foreach($queries as $query)
{
$connection->queryExecute($query);
}
}