Это старая версия документа!
Либо начисление бонуса, либо оплата бонусами
Бывают случаи, когда программа лояльности предполагает запрет на оплату бонусами в заказе, где они начисляются. Т. е. можно либо оплатить заказ или его часть бонусами, либо начислить бонусы.
Такая задача решается с помощью кассового скрипта, размещаемого на форме «Редактирование заказа» и/или «Редактирование заказа (быстрый чек)».
Скрипт, полностью запрещающий оплату бонусами при наличии в заказе любой скидки (или начисления бонусов, как частного случая скидки):
procedure CheckViewOnBeforeCheckViewEdit(Sender: TObject; AEditType: TEditType; AObjectBef, AObjectAft: TObject; var AAllow: boolean; var AMessage: string);
var i, currCode:integer;
discPresent:boolean;
it: TCheckItem;
begin
discPresent := false;
currCode := 96;
for i := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
begin
it := RKCheck.CurrentOrder.Sessions.Lines[i];
if SYS.ObjectInheritsFrom(it, 'TDiscountItem') then
if TDiscountItem(it).CalcAmount<>0 then
discPresent := true;
end;
if SYS.ObjectInheritsFrom(AObjectAft, 'TPayLine') then
if ((TPayLine(AObjectAft).code=currCode) and discPresent) then
begin
AAllow := false;
AMessage := 'Для оплаты бонусами удалите скидки из заказа';
end;
end;
в данном примере 96 - это код валюты «Оплата бонусами».
Добавить страницу в книгу
Удалить страницу из книги
Показать или изменить шаблон книги (
Помощь