Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Доработка стандартного скрипта добавляющего блюдо в заказ

  1. #1
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)

    Post Доработка стандартного скрипта добавляющего блюдо в заказ

    Ребят помогите доработать скрипт. Есть дисконтная карта, которая дариться клиенту при определенной сумме заказа, так как кассиры частенько забывают её подарить, решили использовать стандартный скрипт:

    procedure ProcessOperation1001304(Parameter: integer);
    begin
    if not RKCheck.Valid then
    exit //important checking
    else
    begin
    if RKCheck.CurrentOrder.UnpaidSum >= 300 then // Order sum checking
    if GUI.RKMessageDlg('Do You want add bonus dish?', 0, 3, 10000) = 6 then
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(39), '1'); // add dish with code 39
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;

    Он проверяет сумму заказа и если она равна или превышает установленное значение, появляется сообщение, добавить карту в заказ или нет. Возможно ли сделать так, чтобы сообщение с вопросом не появлялось, если в заказе есть любая скидка? Что в него нужно добавить?

  2. #2
    Разбирающийся
    Регистрация
    27.02.2017
    Адрес
    Москва
    Сообщений
    279
    Поблагодарил(а)
    8
    Благодарностей: 101 (сообщений: 66)
    Пройти по списку и выяснить есть ли скидки?
    It : TCheckItem;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then

    //Ну и здесь либо счетчик, либо bool
    end;
    А дальше на основании счетчика/bool уже либо запускать, либо нет скрипт на показ предупреждения.

  3. #3
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Цитата Сообщение от SLion Посмотреть сообщение
    Пройти по списку и выяснить есть ли скидки?
    Да, чтоб проверка наличия скидок в заказе прошла до проверки суммы и если они есть - предупреждение не выводиться. В скриптах совсем не силен, помогите этот код правильно срастить

    Поясную, если клиент сделал заказ на сумму 1000 и более и дал кассиру дисконтную карту, кассир ее прокатал, то в заказ прикрепляется скидка, стало быть, в сообщении о выдаче карты нет необходимости.
    Последний раз редактировалось pixnet; 03.02.2020 в 11:01.

  4. #4
    Разбирающийся
    Регистрация
    27.02.2017
    Адрес
    Москва
    Сообщений
    279
    Поблагодарил(а)
    8
    Благодарностей: 101 (сообщений: 66)
    Что-то вроде такого, будет работать со скидками на заказ.

    var
    it : TCheckItem;
    flag : boolean;
    j : integer;


    begin
    if not RKCheck.Valid then
    exit //important checking
    else begin
    flag := false;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then
    flag := true;
    end;
    if ((RKCheck.CurrentOrder.UnpaidSum >= 1000) and (flag = false)) then // Order sum checking
    GUI.ShowMessage('Есть карта применить?' + #13#10 + 'А если найду?');
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;

  5. 1 пользователь сказал cпасибо SLion за это полезное сообщение::

    pixnet (03.02.2020)

  6. #5
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Большое СПАСИБО! Разобрался!

    Вот такой получился код:

    procedure ProcessOperation1009002(Parameter: integer);
    var
    it : TCheckItem;
    flag : boolean;
    j : integer;
    begin
    if not RKCheck.Valid then
    exit //important checking
    else begin
    flag := false;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then
    flag := true;
    end;
    if ((RKCheck.CurrentOrder.UnpaidSum >= 1000) and (flag = false)) then // проверка суммы заказа
    if GUI.RKMessageDlg('Добавить?', 0, 3, 10000) = 6 then
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;
    Последний раз редактировалось pixnet; 03.02.2020 в 13:46.

  7. #6
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Еще один маленький вопросик
    Возможно ли в данный скрипт вставить команду на открытие денежного ящика, при нажатии кнопки "ДА" в запросе?

    Пробовал вот так:

    procedure ProcessOperation1009005(Parameter: integer);
    var
    it : TCheckItem;
    flag : boolean;
    j : integer;
    begin
    if not RKCheck.Valid then
    exit //important checking
    else begin
    flag := false;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then
    flag := true;
    end;
    if ((RKCheck.CurrentOrder.UnpaidSum >= 1000) and (flag = false)) then // проверка суммы заказа
    if GUI.RKMessageDlg('Добавить Карту в заказ?', 0, 3, 10000) = 6 then
    RK7.PerformOperation(rkoOpenDrawer, 0);
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;

    При нажатии "ДА" ящик открывается, но при этом блюдо в заказ добавляется и по "ДА" и по "НЕТ"

  8. #7
    Разбирающийся
    Регистрация
    28.06.2013
    Адрес
    Краснодар
    Сообщений
    1,333
    Поблагодарил(а)
    23
    Благодарностей: 143 (сообщений: 101)
    Цитата Сообщение от pixnet Посмотреть сообщение
    if GUI.RKMessageDlg('Добавить Карту в заказ?', 0, 3, 10000) = 6 then
    begin
    RK7.PerformOperation(rkoOpenDrawer, 0);
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    Наверное, так надо

  9. #8
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Цитата Сообщение от satan Посмотреть сообщение
    Наверное, так надо
    Ошибка в коде

  10. #9
    Разбирающийся
    Регистрация
    27.02.2017
    Адрес
    Москва
    Сообщений
    279
    Поблагодарил(а)
    8
    Благодарностей: 101 (сообщений: 66)
    Баланс begin и end нарушен, одного end; недостает
    Потому ошибка.

  11. #10
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Цитата Сообщение от SLion Посмотреть сообщение
    Баланс begin и end нарушен, одного end; недостает
    Потому ошибка.
    procedure ProcessOperation1009005(Parameter: integer);
    var
    it : TCheckItem;
    flag : boolean;
    j : integer;
    begin
    if not RKCheck.Valid then
    exit //important checking
    else begin
    flag := false;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then
    flag := true;
    end;
    if ((RKCheck.CurrentOrder.UnpaidSum >= 1000) and (flag = false)) then // проверка суммы заказа
    if GUI.RKMessageDlg('Добавить Карту в заказ?', 0, 3, 10000) = 6 then
    begin
    RK7.PerformOperation(rkoOpenDrawer, 0);
    end;

    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;

    Ящик открывает, но карту добавляет и по да и по нет.

Похожие темы

  1. Блюдо под заказ
    от Виктория122436 в разделе R-Keeper 7 и фискальные регистраторы, а также чеки и пречеки
    Ответов: 6
    Последнее сообщение: 25.04.2019, 09:02
  2. Создание скрипта
    от VINNI87 в разделе Работа с заказами на станциях в R-Keeper 7
    Ответов: 0
    Последнее сообщение: 16.07.2018, 15:33
  3. Не открывается заказ
    от Ninja в разделе R-Keeper 7
    Ответов: 7
    Последнее сообщение: 01.03.2017, 17:31
  4. Ответов: 2
    Последнее сообщение: 03.09.2016, 10:44
  5. исполнения скрипта
    от Anubis в разделе GameKeeper
    Ответов: 5
    Последнее сообщение: 16.12.2012, 00:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •