Содержание

Загрузка потрат по счетам в БД

Описанное ниже устарело. В актуальной версии нужно использовать функциональность Импорт потрат.

Может быть полезно при переходе с другой системы лояльности в том случае, когда от потрат гостя зависит текущий уровень его скидки или бонуса. В данном контексте «потраты» — это сумма оплаченных им денег в заказах, где была применена лояльность. Это не сумма списанных с его счёта бонусов.

Для ProBonus существует возможность загрузить в БД такую информацию напрямую SQL-запросом. Обычно это нужно сделать один раз, сразу после переноса списка счетов (карт через импорт из файла).

Особенности:

Пример скрипта

Пример SQL-скрипта для импорта потрат:

declare @identifier_id int = null
declare @account_id int = null	
declare @date datetime = GETDATE()

select @identifier_id = [id], @account_id = [account_id] from [identifier] where ([is_deleted] = 0) and ([is_sys_code] = 0) and ([code] = '100002')
if @identifier_id is not null and @account_id is not null begin
	insert into [dbo].[transaction] ([account_id], [identifier_id], [date], [sum_3])
	values (@account_id, @identifier_id, @date, 654300)
end
select @identifier_id = [id], @account_id = [account_id] from [identifier] where ([is_deleted] = 0) and ([is_sys_code] = 0) and ([code] = '100003')
if @identifier_id is not null and @account_id is not null begin
	insert into [dbo].[transaction] ([account_id], [identifier_id], [date], [sum_3])
	values (@account_id, @identifier_id, @date, 369700)
end

В данном примере:

Как сделать скрипт

Чтобы не писать скрипт на тысячи строк вручную, можно воспользоваться Excel-шаблоном, который сгенерирует скрипт.

Ссылка на шаблон: https://disk.yandex.ru/i/DISjT17acnzx_w

Как это сделать:

0. Перед манипуляциями сделайте резервную копию SQL-базы ProBonus.

1. Выгрузите из другой системы лояльности информацию в 2 столбца. Первый столбец — номер карты (или другого идентификатора). Второй столбец — потраты в рублях (не в копейках).

2. Возьмите приложенный к статье Excel-файл и скопируйте в него эти данные. Область, в которую нужно копировать, выделена зелёным фоном.

3. Скопируйте скрипт из ячейки C5 нужное количество раз по строкам: сколько строк с данными, столько раз и скрипт. В примере всего 3 строки, и скрипт скопирован 3 раза. Скрипт содержит формулу, ссылающуюся на столбцы A и B.

4. Скопируйте готовый скрипт, включая три строки, в которых объявляются переменные (см. красную рамку на скриншоте).

5. В SQL Server Management Studio вставьте этот скрипт в готовом виде и выполните.

6. Проверьте результат в веб-админке ProBonus, посмотрев «Транзакции по счёту». На скриншоте ниже пример: для карты 21959073 добавлена «потрата» в 123 руб.