© Tillypad, 2004-2023

© Tillypad, 2004-2023
Для ресторана реализована специальная процедура для счетов, которые нужно частично оплатить посредством баллов. Для корректной работы процедуры перед ее вызовом должна быть создана временная таблица #ClientDiscountPointOperations
, состоящая из полей cdpo_clnt_ID, cdpo_dspt_ID, cdpo_Name, cdpo_Value. Заполняется такая таблица как правило из счета (GuestDiscountPointOperations
).
Как пример: метод формирования гостевого счета. В этом методе в тело запроса помещается нужная структура гостевого счета, в том числе и guestDiscountPointOperations
:
"guestDiscountPointOperations": [ { "gdpo_Value": 100, "gdpo_dspt_ID": "CADA63B6-6833-574F-8427-AB98AE931814" }, { "gdpo_Value": 50, "gdpo_dspt_ID": "480F64A0-B729-3140-B796-678A1CD754F0" } ]
Таким образом формируется счет с заполненной tp_GuestDiscountPointOperations, где:
gdpo_ID формируется на стороне сервера, как NEWID
,
gdpo_gest_ID подхватывается с gest_ID счета,
gdpo_dspt_ID - <GUID> переданного типа баллов,
gdpo_gdpot_ID по умолчанию ставится, как Новые,
gdpo_Date формируется на сервере,
gdpo_Name подхватывается с имени счета,
gdpo_Description null по умолчанию,
gdpo_Value - сумма баллов.
Отсюда заполняется временная таблица #ClientDiscountPointOperations значениями:
cdpo_clnt_ID - берется из gest_clnt_ID счета,
cdpo_dspt_ID - берется из gdpo_dspt_ID, описанного выше,
cdpo_Name - берется из gdpo_Name, описанного выше,
cdpo_Value - берется из gdpo_Value, описанного выше.
Аналогично это работает при оплате: в готовый счет передаются все нужные для заполнения поля операций по баллам, из которых вытягиваются параметры для #ClientDiscountPointOperations по описанной выше схеме.