Просмотр полной версии : Удаляем наценку, если проводим определенную скидку
Удаляем наценку, если проводим определенную скидку
RK7.5.2.409
Имеется наценка "Обслуживание 10%", которая действует только на официантов и рассчитывается от суммы заказа.
Имеется набор скидок (5%, 10%, Сотрудник, Приват), который рассчитывается от суммы заказа.
Это все работает.
Теперь задача.
Необходимо удалять наценку при проведении скидок "Сотрудник" и "Приват". Как?
"Композиция скидок" не работает с наценками.
http://tracker.ucs.ru:8080/redmine/issues/20459?tab=history_comments
на основании этого сделать не получится?
http://tracker.ucs.ru:8080/redmine/issues/20459?tab=history_comments
на основании этого сделать не получится?
Опыта работы со скриптами очень мал, так что пока не получилось.
По-первому варианту, более правильному, ни фига не понял куда нужно это скрипт добавить, перерыл все формы млин, где это.
По-второму варианту не сработало правильным образом, т.е. почему-то при создании заказа в стол добавляются скидка сотрудник, затем удаляется, при чем выводит кучу окон при этом, да и еще права для этого требуются для официанта на эти скидки, в топку такой вариант.
В общем отработал по второму варианту, работает как надо и ни каких прав не надо.
У меня в условии 2 скидки под кодами 5 и 6.
Скрипт создать в "Правила применения скидок", например "Авто с удал. наценки". В использовании для наценки вместо "Автоматически" указываем свое создание "Авто с удал. наценки".
Вот скрипт без первой строки:
var i: integer;
it: TCheckItem;
begin
UsageParameters.UsageMode := umAuto;
for i := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do begin
it := RKCheck.CurrentOrder.Sessions.Lines[i];
if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') and ((it.CODE = 5) or (it.CODE = 6))
then
Begin
UsageParameters.UsageMode := umDeny;
Exit;
End;
end;
end;
Powered by vBulletin® Version 4.2.6 LTS Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot